2 * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.groupbasedpolicy.renderer.ofoverlay.statistics.flowcache;
10 import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.statistics.flowcache.FlowCacheFilter.FlowCacheFilterBuilder;
11 import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.statistics.flowcache.FlowCacheKeys.FlowCacheKeysBuilder;
13 import com.google.common.base.Preconditions;
16 * An object to handle flow-cache parameters for JSON conversion
18 public final class FlowCacheDefinition {
22 private String filter;
25 private FlowCacheDefinition() {
28 private FlowCacheDefinition(FlowCacheDefinitionBuilder builder) {
29 this.keys = builder.getKeysBuilder().build().getValue();
30 this.value = builder.getValue();
31 this.filter = builder.getFilterBuilder().build().getValue();
32 this.log = builder.isLog();
35 public String getKeys() {
39 public String getValue() {
43 public String getFilter() {
47 public boolean getLog() {
51 public static FlowCacheDefinitionBuilder builder(){
52 return new FlowCacheDefinitionBuilder();
56 public String toString() {
57 return "FlowCacheDefinition [keys=" + keys + ", value=" + value + ", filter=" + filter + ", log=" + log + "]";
60 public static class FlowCacheDefinitionBuilder {
63 private boolean log = false;
64 private final FlowCacheKeysBuilder keysBuilder = new FlowCacheKeysBuilder();
65 private final FlowCacheFilterBuilder filterBuilder = new FlowCacheFilterBuilder();
67 public FlowCacheKeysBuilder getKeysBuilder() {
71 public String getValue() {
75 public FlowCacheDefinitionBuilder setValue(String value) {
76 Preconditions.checkNotNull(value);
81 public FlowCacheFilterBuilder getFilterBuilder() {
85 public boolean isLog() {
89 public FlowCacheDefinitionBuilder setLog(boolean log) {
94 public FlowCacheDefinition build() {
95 return new FlowCacheDefinition(this);