Make Instructions.modL0Lambda(short) deprecated
Integrate static factory method for indexed lambda and OCh Change-Id: I80074f7ce2e1703a4ebc7d6f552b52bffc970193
Showing
2 changed files
with
30 additions
and
9 deletions
| ... | @@ -22,20 +22,29 @@ import com.google.common.base.MoreObjects; | ... | @@ -22,20 +22,29 @@ import com.google.common.base.MoreObjects; |
| 22 | */ | 22 | */ |
| 23 | public class IndexedLambda implements Lambda { | 23 | public class IndexedLambda implements Lambda { |
| 24 | 24 | ||
| 25 | - private final long lambda; | 25 | + private final long index; |
| 26 | 26 | ||
| 27 | /** | 27 | /** |
| 28 | * Creates an instance representing the wavelength specified by the given index number. | 28 | * Creates an instance representing the wavelength specified by the given index number. |
| 29 | * | 29 | * |
| 30 | - * @param lambda index number of wavelength | 30 | + * @param index index number of wavelength |
| 31 | */ | 31 | */ |
| 32 | - IndexedLambda(long lambda) { | 32 | + IndexedLambda(long index) { |
| 33 | - this.lambda = lambda; | 33 | + this.index = index; |
| 34 | + } | ||
| 35 | + | ||
| 36 | + /** | ||
| 37 | + * Returns the index number of lambda. | ||
| 38 | + * | ||
| 39 | + * @return the index number of lambda | ||
| 40 | + */ | ||
| 41 | + public long index() { | ||
| 42 | + return index; | ||
| 34 | } | 43 | } |
| 35 | 44 | ||
| 36 | @Override | 45 | @Override |
| 37 | public int hashCode() { | 46 | public int hashCode() { |
| 38 | - return (int) (lambda ^ (lambda >>> 32)); | 47 | + return (int) (index ^ (index >>> 32)); |
| 39 | } | 48 | } |
| 40 | 49 | ||
| 41 | @Override | 50 | @Override |
| ... | @@ -48,13 +57,13 @@ public class IndexedLambda implements Lambda { | ... | @@ -48,13 +57,13 @@ public class IndexedLambda implements Lambda { |
| 48 | } | 57 | } |
| 49 | 58 | ||
| 50 | final IndexedLambda that = (IndexedLambda) obj; | 59 | final IndexedLambda that = (IndexedLambda) obj; |
| 51 | - return this.lambda == that.lambda; | 60 | + return this.index == that.index; |
| 52 | } | 61 | } |
| 53 | 62 | ||
| 54 | @Override | 63 | @Override |
| 55 | public String toString() { | 64 | public String toString() { |
| 56 | return MoreObjects.toStringHelper(this) | 65 | return MoreObjects.toStringHelper(this) |
| 57 | - .add("lambda", lambda) | 66 | + .add("lambda", index) |
| 58 | .toString(); | 67 | .toString(); |
| 59 | } | 68 | } |
| 60 | } | 69 | } | ... | ... |
| ... | @@ -21,10 +21,13 @@ import org.onlab.packet.MacAddress; | ... | @@ -21,10 +21,13 @@ import org.onlab.packet.MacAddress; |
| 21 | import org.onlab.packet.MplsLabel; | 21 | import org.onlab.packet.MplsLabel; |
| 22 | import org.onlab.packet.VlanId; | 22 | import org.onlab.packet.VlanId; |
| 23 | import org.onosproject.core.GroupId; | 23 | import org.onosproject.core.GroupId; |
| 24 | +import org.onosproject.net.IndexedLambda; | ||
| 25 | +import org.onosproject.net.Lambda; | ||
| 24 | import org.onosproject.net.OchSignal; | 26 | import org.onosproject.net.OchSignal; |
| 25 | import org.onosproject.net.PortNumber; | 27 | import org.onosproject.net.PortNumber; |
| 26 | import org.onosproject.net.flow.instructions.L0ModificationInstruction.L0SubType; | 28 | import org.onosproject.net.flow.instructions.L0ModificationInstruction.L0SubType; |
| 27 | import org.onosproject.net.flow.instructions.L0ModificationInstruction.ModLambdaInstruction; | 29 | import org.onosproject.net.flow.instructions.L0ModificationInstruction.ModLambdaInstruction; |
| 30 | +import org.onosproject.net.flow.instructions.L0ModificationInstruction.ModOchSignalInstruction; | ||
| 28 | import org.onosproject.net.flow.instructions.L3ModificationInstruction.L3SubType; | 31 | import org.onosproject.net.flow.instructions.L3ModificationInstruction.L3SubType; |
| 29 | import org.onosproject.net.flow.instructions.L3ModificationInstruction.ModIPInstruction; | 32 | import org.onosproject.net.flow.instructions.L3ModificationInstruction.ModIPInstruction; |
| 30 | import org.onosproject.net.flow.instructions.L3ModificationInstruction.ModIPv6FlowLabelInstruction; | 33 | import org.onosproject.net.flow.instructions.L3ModificationInstruction.ModIPv6FlowLabelInstruction; |
| ... | @@ -81,7 +84,9 @@ public final class Instructions { | ... | @@ -81,7 +84,9 @@ public final class Instructions { |
| 81 | * | 84 | * |
| 82 | * @param lambda the lambda to modify to | 85 | * @param lambda the lambda to modify to |
| 83 | * @return a l0 modification | 86 | * @return a l0 modification |
| 87 | + * @deprecated in Cardinal Release. Use {@link #modL0Lambda(Lambda)} instead. | ||
| 84 | */ | 88 | */ |
| 89 | + @Deprecated | ||
| 85 | public static L0ModificationInstruction modL0Lambda(short lambda) { | 90 | public static L0ModificationInstruction modL0Lambda(short lambda) { |
| 86 | checkNotNull(lambda, "L0 lambda cannot be null"); | 91 | checkNotNull(lambda, "L0 lambda cannot be null"); |
| 87 | return new ModLambdaInstruction(L0SubType.LAMBDA, lambda); | 92 | return new ModLambdaInstruction(L0SubType.LAMBDA, lambda); |
| ... | @@ -93,9 +98,16 @@ public final class Instructions { | ... | @@ -93,9 +98,16 @@ public final class Instructions { |
| 93 | * @param lambda OCh signal | 98 | * @param lambda OCh signal |
| 94 | * @return an L0 modification | 99 | * @return an L0 modification |
| 95 | */ | 100 | */ |
| 96 | - public static L0ModificationInstruction modL0OchSignal(OchSignal lambda) { | 101 | + public static L0ModificationInstruction modL0Lambda(Lambda lambda) { |
| 97 | checkNotNull(lambda, "L0 OCh signal cannot be null"); | 102 | checkNotNull(lambda, "L0 OCh signal cannot be null"); |
| 98 | - return new L0ModificationInstruction.ModOchSignalInstruction(lambda); | 103 | + |
| 104 | + if (lambda instanceof IndexedLambda) { | ||
| 105 | + return new ModLambdaInstruction(L0SubType.LAMBDA, (short) ((IndexedLambda) lambda).index()); | ||
| 106 | + } else if (lambda instanceof OchSignal) { | ||
| 107 | + return new ModOchSignalInstruction((OchSignal) lambda); | ||
| 108 | + } else { | ||
| 109 | + throw new UnsupportedOperationException(String.format("Unsupported type: %s", lambda)); | ||
| 110 | + } | ||
| 99 | } | 111 | } |
| 100 | 112 | ||
| 101 | /** | 113 | /** | ... | ... |
-
Please register or login to post a comment