Committed by
Gerrit Code Review
Populate IndexedLambda with LambdaResource
Change-Id: Id809f3a55b7c89bab2e4e99c0447ae97f27f5557
Showing
3 changed files
with
30 additions
and
12 deletions
| ... | @@ -26,10 +26,12 @@ public class IndexedLambda implements Lambda { | ... | @@ -26,10 +26,12 @@ public class IndexedLambda implements Lambda { |
| 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 | + * It is recommended to use {@link Lambda#indexedLambda(long)} unless you want to use the | ||
| 30 | + * concrete type, IndexedLambda, directly. | ||
| 29 | * | 31 | * |
| 30 | * @param index index number of wavelength | 32 | * @param index index number of wavelength |
| 31 | */ | 33 | */ |
| 32 | - IndexedLambda(long index) { | 34 | + public IndexedLambda(long index) { |
| 33 | this.index = index; | 35 | this.index = index; |
| 34 | } | 36 | } |
| 35 | 37 | ... | ... |
| ... | @@ -45,13 +45,15 @@ public class OchSignal implements Lambda { | ... | @@ -45,13 +45,15 @@ public class OchSignal implements Lambda { |
| 45 | 45 | ||
| 46 | /** | 46 | /** |
| 47 | * Creates an instance with the specified arguments. | 47 | * Creates an instance with the specified arguments. |
| 48 | + * It it recommended to use {@link Lambda#ochSignal(GridType, ChannelSpacing, int, int)} | ||
| 49 | + * unless you want to use the concrete type, OchSignal, directly. | ||
| 48 | * | 50 | * |
| 49 | * @param gridType grid type | 51 | * @param gridType grid type |
| 50 | * @param channelSpacing channel spacing | 52 | * @param channelSpacing channel spacing |
| 51 | * @param spacingMultiplier channel spacing multiplier | 53 | * @param spacingMultiplier channel spacing multiplier |
| 52 | * @param slotGranularity slot width granularity | 54 | * @param slotGranularity slot width granularity |
| 53 | */ | 55 | */ |
| 54 | - OchSignal(GridType gridType, ChannelSpacing channelSpacing, | 56 | + public OchSignal(GridType gridType, ChannelSpacing channelSpacing, |
| 55 | int spacingMultiplier, int slotGranularity) { | 57 | int spacingMultiplier, int slotGranularity) { |
| 56 | this.gridType = checkNotNull(gridType); | 58 | this.gridType = checkNotNull(gridType); |
| 57 | this.channelSpacing = checkNotNull(channelSpacing); | 59 | this.channelSpacing = checkNotNull(channelSpacing); | ... | ... |
| ... | @@ -15,36 +15,50 @@ | ... | @@ -15,36 +15,50 @@ |
| 15 | */ | 15 | */ |
| 16 | package org.onosproject.net.resource; | 16 | package org.onosproject.net.resource; |
| 17 | 17 | ||
| 18 | +import org.onosproject.net.IndexedLambda; | ||
| 19 | + | ||
| 18 | import java.util.Objects; | 20 | import java.util.Objects; |
| 19 | 21 | ||
| 22 | +import static com.google.common.base.Preconditions.checkNotNull; | ||
| 23 | + | ||
| 20 | /** | 24 | /** |
| 21 | * Representation of lambda resource. | 25 | * Representation of lambda resource. |
| 22 | */ | 26 | */ |
| 23 | public final class LambdaResource extends LinkResource { | 27 | public final class LambdaResource extends LinkResource { |
| 24 | 28 | ||
| 25 | - private final int lambda; | 29 | + private final IndexedLambda lambda; |
| 26 | 30 | ||
| 27 | /** | 31 | /** |
| 28 | * Creates a new instance with given lambda. | 32 | * Creates a new instance with given lambda. |
| 29 | * | 33 | * |
| 30 | - * @param lambda lambda value to be assigned | 34 | + * @param lambda lambda to be assigned |
| 31 | */ | 35 | */ |
| 32 | - private LambdaResource(int lambda) { | 36 | + private LambdaResource(IndexedLambda lambda) { |
| 33 | - this.lambda = lambda; | 37 | + this.lambda = checkNotNull(lambda); |
| 34 | } | 38 | } |
| 35 | 39 | ||
| 36 | // Constructor for serialization | 40 | // Constructor for serialization |
| 37 | private LambdaResource() { | 41 | private LambdaResource() { |
| 38 | - this.lambda = 0; | 42 | + this.lambda = null; |
| 39 | } | 43 | } |
| 40 | 44 | ||
| 41 | /** | 45 | /** |
| 42 | - * Creates a new instance with given lambda. | 46 | + * Creates a new instance with the given index of lambda. |
| 43 | * | 47 | * |
| 44 | - * @param lambda lambda value to be assigned | 48 | + * @param lambda index value of lambda to be assigned |
| 45 | - * @return {@link LambdaResource} instance with given lambda | 49 | + * @return {@link LambdaResource} instance with the given lambda |
| 46 | */ | 50 | */ |
| 47 | public static LambdaResource valueOf(int lambda) { | 51 | public static LambdaResource valueOf(int lambda) { |
| 52 | + return valueOf(new IndexedLambda(lambda)); | ||
| 53 | + } | ||
| 54 | + | ||
| 55 | + /** | ||
| 56 | + * Creates a new instance with the given lambda. | ||
| 57 | + * | ||
| 58 | + * @param lambda lambda to be assigned | ||
| 59 | + * @return {@link LambdaResource} instance with the given lambda | ||
| 60 | + */ | ||
| 61 | + public static LambdaResource valueOf(IndexedLambda lambda) { | ||
| 48 | return new LambdaResource(lambda); | 62 | return new LambdaResource(lambda); |
| 49 | } | 63 | } |
| 50 | 64 | ||
| ... | @@ -54,7 +68,7 @@ public final class LambdaResource extends LinkResource { | ... | @@ -54,7 +68,7 @@ public final class LambdaResource extends LinkResource { |
| 54 | * @return lambda as an int value | 68 | * @return lambda as an int value |
| 55 | */ | 69 | */ |
| 56 | public int toInt() { | 70 | public int toInt() { |
| 57 | - return lambda; | 71 | + return (int) lambda.index(); |
| 58 | } | 72 | } |
| 59 | 73 | ||
| 60 | @Override | 74 | @Override |
| ... | @@ -68,7 +82,7 @@ public final class LambdaResource extends LinkResource { | ... | @@ -68,7 +82,7 @@ public final class LambdaResource extends LinkResource { |
| 68 | 82 | ||
| 69 | @Override | 83 | @Override |
| 70 | public int hashCode() { | 84 | public int hashCode() { |
| 71 | - return lambda; | 85 | + return lambda.hashCode(); |
| 72 | } | 86 | } |
| 73 | 87 | ||
| 74 | @Override | 88 | @Override | ... | ... |
-
Please register or login to post a comment