diff options
Diffstat (limited to 'framework/src/onos/core/api/src/main/java/org/onosproject/net/flow/instructions/L1ModificationInstruction.java')
-rw-r--r-- | framework/src/onos/core/api/src/main/java/org/onosproject/net/flow/instructions/L1ModificationInstruction.java | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/net/flow/instructions/L1ModificationInstruction.java b/framework/src/onos/core/api/src/main/java/org/onosproject/net/flow/instructions/L1ModificationInstruction.java new file mode 100644 index 00000000..c6847d1c --- /dev/null +++ b/framework/src/onos/core/api/src/main/java/org/onosproject/net/flow/instructions/L1ModificationInstruction.java @@ -0,0 +1,88 @@ +/* + * Copyright 2014-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.net.flow.instructions; + +import org.onosproject.net.OduSignalId; + +import static com.google.common.base.MoreObjects.toStringHelper; + +import java.util.Objects; + +public abstract class L1ModificationInstruction implements Instruction { + + /** + * Represents the type of traffic treatment. + */ + public enum L1SubType { + /** + * ODU (Optical channel Data Unit) Signal Id modification. + */ + ODU_SIGID + } + + public abstract L1SubType subtype(); + + @Override + public final Type type() { + return Type.L1MODIFICATION; + } + + /** + * Represents an L1 ODU (Optical channel Data Unit) Signal Id modification instruction. + */ + public static final class ModOduSignalIdInstruction extends L1ModificationInstruction { + + private final OduSignalId oduSignalId; + + ModOduSignalIdInstruction(OduSignalId oduSignalId) { + this.oduSignalId = oduSignalId; + } + + @Override + public L1SubType subtype() { + return L1SubType.ODU_SIGID; + } + + public OduSignalId oduSignalId() { + return oduSignalId; + } + + @Override + public int hashCode() { + return Objects.hash(oduSignalId); + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (!(obj instanceof ModOduSignalIdInstruction)) { + return false; + } + final ModOduSignalIdInstruction that = (ModOduSignalIdInstruction) obj; + return Objects.equals(this.oduSignalId, that.oduSignalId); + } + + @Override + public String toString() { + return toStringHelper(this) + .add("oduSignalId", oduSignalId) + .toString(); + } + } + +} |