blob: 21f0b72b8b2aa553fdcd6dd4519d0299c7e3a7aa [file] [log] [blame]
/*
* Copyright 2015 Open Networking Laboratory
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.onosproject.ovsdb.rfc.notation;
import static com.google.common.base.MoreObjects.toStringHelper;
import static com.google.common.base.Preconditions.checkNotNull;
import java.util.Objects;
import java.util.Set;
import org.onosproject.ovsdb.rfc.notation.json.OvsdbSetSerializer;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
/**
* OvsdbSet is either an atom, representing a set with exactly one element, or
* a 2-element JSON array that represents a database set value.
*
*/
@JsonSerialize(using = OvsdbSetSerializer.class)
public final class OvsdbSet {
private final Set set;
/**
* OvsdbSet constructor.
* @param set java.util.Set
*/
private OvsdbSet(Set set) {
checkNotNull(set, "set cannot be null");
this.set = set;
}
/**
* Returns set.
* @return set
*/
public Set set() {
return set;
}
/**
* convert Set into OvsdbSet.
* @param set java.util.Set
* @return OvsdbSet
*/
public static OvsdbSet ovsdbSet(Set set) {
return new OvsdbSet(set);
}
@Override
public int hashCode() {
return set.hashCode();
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj instanceof OvsdbSet) {
final OvsdbSet other = (OvsdbSet) obj;
return Objects.equals(this.set, other.set);
}
return false;
}
@Override
public String toString() {
return toStringHelper(this).add("set", set).toString();
}
}