/*
* Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
package org.opendaylight.groupbasedpolicy.renderer.ofoverlay.statistics.flowcache;
import java.util.ArrayList;
import java.util.List;
import com.google.common.base.Joiner;
import com.google.common.base.Preconditions;
public final class FlowCacheFilter {
private static final String AND = "&";
private static final String LB = "(";
private static final String RB = ")";
private String value;
private FlowCacheFilter(FlowCacheFilterBuilder builder) {
this.value = Joiner.on(AND).join(builder.getValues());
}
public String getValue() {
return value;
}
public static FlowCacheFilterBuilder builder(){
return new FlowCacheFilterBuilder();
}
public static class FlowCacheFilterBuilder {
private List<String> values = new ArrayList<>();
public List<String> getValues() {
return values;
}
public FlowCacheFilterBuilder setValues(List<String> values) {
this.values = Preconditions.checkNotNull(values);
return this;
}
public FlowCacheFilterBuilder addValue(String value) {
values.add(LB + Preconditions.checkNotNull(value) + RB);
return this;
}
public FlowCacheFilter build() {
return new FlowCacheFilter(this);
}
}
}