| package org.onlab.onos.net.device; |
| |
| import org.onlab.onos.net.AbstractDescription; |
| import org.onlab.onos.net.PortNumber; |
| import org.onlab.onos.net.SparseAnnotations; |
| |
| import com.google.common.base.MoreObjects; |
| |
| /** |
| * Default implementation of immutable port description. |
| */ |
| public class DefaultPortDescription extends AbstractDescription |
| implements PortDescription { |
| |
| private final PortNumber number; |
| private final boolean isEnabled; |
| |
| /** |
| * Creates a port description using the supplied information. |
| * |
| * @param number port number |
| * @param isEnabled port enabled state |
| * @param annotations optional key/value annotations map |
| */ |
| public DefaultPortDescription(PortNumber number, boolean isEnabled, |
| SparseAnnotations... annotations) { |
| super(annotations); |
| this.number = number; |
| this.isEnabled = isEnabled; |
| } |
| |
| /** |
| * Creates a port description using the supplied information. |
| * |
| * @param base PortDescription to get basic information from |
| * @param annotations optional key/value annotations map |
| */ |
| public DefaultPortDescription(PortDescription base, |
| SparseAnnotations annotations) { |
| this(base.portNumber(), base.isEnabled(), annotations); |
| } |
| |
| @Override |
| public PortNumber portNumber() { |
| return number; |
| } |
| |
| @Override |
| public boolean isEnabled() { |
| return isEnabled; |
| } |
| |
| @Override |
| public String toString() { |
| return MoreObjects.toStringHelper(getClass()) |
| .add("number", number) |
| .add("isEnabled", isEnabled) |
| .add("annotations", annotations()) |
| .toString(); |
| } |
| |
| // default constructor for serialization |
| private DefaultPortDescription() { |
| this.number = null; |
| this.isEnabled = false; |
| } |
| } |