Committed by
Gerrit Code Review
Add default implementation for Resource/ResourceAllocation
- Instantiation of the implementations are needed in an implementation of ResourceService - Device and link specific implementations are removed because the default implementations cover what these classes can do Change-Id: Ia50b495e4d3bc21bf8f55f77a01f0532fae72720
Showing
6 changed files
with
12 additions
and
168 deletions
... | @@ -22,24 +22,24 @@ import java.util.Objects; | ... | @@ -22,24 +22,24 @@ import java.util.Objects; |
22 | import static com.google.common.base.Preconditions.checkNotNull; | 22 | import static com.google.common.base.Preconditions.checkNotNull; |
23 | 23 | ||
24 | /** | 24 | /** |
25 | - * Base implementation of a class representing resource which belongs to a particular subject. | 25 | + * Default implementation of a class representing resource which belongs to a particular subject. |
26 | * | 26 | * |
27 | * @param <S> type of the subject | 27 | * @param <S> type of the subject |
28 | * @param <T> type of the resource | 28 | * @param <T> type of the resource |
29 | */ | 29 | */ |
30 | @Beta | 30 | @Beta |
31 | -public abstract class AbstractResource<S, T> implements Resource<S, T> { | 31 | +public class DefaultResource<S, T> implements Resource<S, T> { |
32 | 32 | ||
33 | private final S subject; | 33 | private final S subject; |
34 | private final T resource; | 34 | private final T resource; |
35 | 35 | ||
36 | /** | 36 | /** |
37 | - * Constructor expected to be called by constructors of the sub-classes. | 37 | + * Creates a resource with the specified subject and resource. |
38 | * | 38 | * |
39 | * @param subject identifier which this resource belongs to | 39 | * @param subject identifier which this resource belongs to |
40 | * @param resource resource of the subject | 40 | * @param resource resource of the subject |
41 | */ | 41 | */ |
42 | - protected AbstractResource(S subject, T resource) { | 42 | + public DefaultResource(S subject, T resource) { |
43 | this.subject = checkNotNull(subject); | 43 | this.subject = checkNotNull(subject); |
44 | this.resource = checkNotNull(resource); | 44 | this.resource = checkNotNull(resource); |
45 | } | 45 | } |
... | @@ -64,10 +64,10 @@ public abstract class AbstractResource<S, T> implements Resource<S, T> { | ... | @@ -64,10 +64,10 @@ public abstract class AbstractResource<S, T> implements Resource<S, T> { |
64 | if (this == obj) { | 64 | if (this == obj) { |
65 | return true; | 65 | return true; |
66 | } | 66 | } |
67 | - if (!(obj instanceof AbstractResource)) { | 67 | + if (!(obj instanceof DefaultResource)) { |
68 | return false; | 68 | return false; |
69 | } | 69 | } |
70 | - final AbstractResource that = (AbstractResource) obj; | 70 | + final DefaultResource that = (DefaultResource) obj; |
71 | return Objects.equals(this.subject, that.subject) | 71 | return Objects.equals(this.subject, that.subject) |
72 | && Objects.equals(this.resource, that.resource); | 72 | && Objects.equals(this.resource, that.resource); |
73 | } | 73 | } | ... | ... |
... | @@ -22,26 +22,26 @@ import java.util.Objects; | ... | @@ -22,26 +22,26 @@ import java.util.Objects; |
22 | import static com.google.common.base.Preconditions.checkNotNull; | 22 | import static com.google.common.base.Preconditions.checkNotNull; |
23 | 23 | ||
24 | /** | 24 | /** |
25 | - * Base implementation of a class representing allocation of resource which belongs to a particular subject. | 25 | + * Default implementation of a class representing allocation of resource which belongs to a particular subject. |
26 | * | 26 | * |
27 | * @param <S> type of the subject | 27 | * @param <S> type of the subject |
28 | * @param <T> type of the resource | 28 | * @param <T> type of the resource |
29 | */ | 29 | */ |
30 | @Beta | 30 | @Beta |
31 | -public abstract class AbstractResourceAllocation<S, T> implements ResourceAllocation<S, T> { | 31 | +public class DefaultResourceAllocation<S, T> implements ResourceAllocation<S, T> { |
32 | 32 | ||
33 | private final S subject; | 33 | private final S subject; |
34 | private final T resource; | 34 | private final T resource; |
35 | private final ResourceConsumer consumer; | 35 | private final ResourceConsumer consumer; |
36 | 36 | ||
37 | /** | 37 | /** |
38 | - * Constructor expected to be called by constructors of the sub-classes. | 38 | + * Creates an instance with the specified subject, resource and consumer. |
39 | * | 39 | * |
40 | * @param subject identifier which this resource belongs to | 40 | * @param subject identifier which this resource belongs to |
41 | * @param resource resource of the subject | 41 | * @param resource resource of the subject |
42 | * @param consumer consumer ot this resource | 42 | * @param consumer consumer ot this resource |
43 | */ | 43 | */ |
44 | - protected AbstractResourceAllocation(S subject, T resource, ResourceConsumer consumer) { | 44 | + public DefaultResourceAllocation(S subject, T resource, ResourceConsumer consumer) { |
45 | this.subject = checkNotNull(subject); | 45 | this.subject = checkNotNull(subject); |
46 | this.resource = checkNotNull(resource); | 46 | this.resource = checkNotNull(resource); |
47 | this.consumer = consumer; | 47 | this.consumer = consumer; |
... | @@ -72,10 +72,10 @@ public abstract class AbstractResourceAllocation<S, T> implements ResourceAlloca | ... | @@ -72,10 +72,10 @@ public abstract class AbstractResourceAllocation<S, T> implements ResourceAlloca |
72 | if (this == obj) { | 72 | if (this == obj) { |
73 | return true; | 73 | return true; |
74 | } | 74 | } |
75 | - if (!(obj instanceof AbstractResourceAllocation)) { | 75 | + if (!(obj instanceof DefaultResourceAllocation)) { |
76 | return false; | 76 | return false; |
77 | } | 77 | } |
78 | - final AbstractResourceAllocation that = (AbstractResourceAllocation) obj; | 78 | + final DefaultResourceAllocation that = (DefaultResourceAllocation) obj; |
79 | return Objects.equals(this.subject, that.subject) | 79 | return Objects.equals(this.subject, that.subject) |
80 | && Objects.equals(this.resource, that.resource) | 80 | && Objects.equals(this.resource, that.resource) |
81 | && Objects.equals(this.consumer, that.consumer); | 81 | && Objects.equals(this.consumer, that.consumer); | ... | ... |
1 | -/* | ||
2 | - * Copyright 2015 Open Networking Laboratory | ||
3 | - * | ||
4 | - * Licensed under the Apache License, Version 2.0 (the "License"); | ||
5 | - * you may not use this file except in compliance with the License. | ||
6 | - * You may obtain a copy of the License at | ||
7 | - * | ||
8 | - * http://www.apache.org/licenses/LICENSE-2.0 | ||
9 | - * | ||
10 | - * Unless required by applicable law or agreed to in writing, software | ||
11 | - * distributed under the License is distributed on an "AS IS" BASIS, | ||
12 | - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
13 | - * See the License for the specific language governing permissions and | ||
14 | - * limitations under the License. | ||
15 | - */ | ||
16 | -package org.onosproject.net.newresource; | ||
17 | - | ||
18 | -import com.google.common.annotations.Beta; | ||
19 | -import org.onosproject.net.DeviceId; | ||
20 | - | ||
21 | -/** | ||
22 | - * Represents resource which belongs to a particular device. | ||
23 | - * | ||
24 | - * @param <T> represents the type of the resource | ||
25 | - */ | ||
26 | -@Beta | ||
27 | -public final class DeviceResource<T> extends AbstractResource<DeviceId, T> { | ||
28 | - | ||
29 | - /** | ||
30 | - * Creates a new device resource from the specified device identifier and resource. | ||
31 | - * (deviceId, resource) signifies a resource identifier which is globally unique. | ||
32 | - * | ||
33 | - * @param deviceId device identifier which this resource belongs to | ||
34 | - * @param resource resource of the device | ||
35 | - */ | ||
36 | - public DeviceResource(DeviceId deviceId, T resource) { | ||
37 | - super(deviceId, resource); | ||
38 | - } | ||
39 | -} |
core/api/src/main/java/org/onosproject/net/newresource/DeviceResourceAllocation.java
deleted
100644 → 0
1 | -/* | ||
2 | - * Copyright 2015 Open Networking Laboratory | ||
3 | - * | ||
4 | - * Licensed under the Apache License, Version 2.0 (the "License"); | ||
5 | - * you may not use this file except in compliance with the License. | ||
6 | - * You may obtain a copy of the License at | ||
7 | - * | ||
8 | - * http://www.apache.org/licenses/LICENSE-2.0 | ||
9 | - * | ||
10 | - * Unless required by applicable law or agreed to in writing, software | ||
11 | - * distributed under the License is distributed on an "AS IS" BASIS, | ||
12 | - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
13 | - * See the License for the specific language governing permissions and | ||
14 | - * limitations under the License. | ||
15 | - */ | ||
16 | -package org.onosproject.net.newresource; | ||
17 | - | ||
18 | -import com.google.common.annotations.Beta; | ||
19 | -import org.onosproject.net.DeviceId; | ||
20 | - | ||
21 | -/** | ||
22 | - * Represents allocation of resource bound to device. | ||
23 | - * | ||
24 | - * @param <T> type of the resource | ||
25 | - */ | ||
26 | -@Beta | ||
27 | -public final class DeviceResourceAllocation<T> extends AbstractResourceAllocation<DeviceId, T> { | ||
28 | - | ||
29 | - /** | ||
30 | - * Creates a new allocation of resource bound to the specified device and consumed by the specified user. | ||
31 | - * | ||
32 | - * @param device device identifier which this resource belongs to | ||
33 | - * @param resource resource of the device | ||
34 | - * @param consumer consumer of this resource | ||
35 | - */ | ||
36 | - public DeviceResourceAllocation(DeviceId device, T resource, ResourceConsumer consumer) { | ||
37 | - super(device, resource, consumer); | ||
38 | - } | ||
39 | -} |
1 | -/* | ||
2 | - * Copyright 2015 Open Networking Laboratory | ||
3 | - * | ||
4 | - * Licensed under the Apache License, Version 2.0 (the "License"); | ||
5 | - * you may not use this file except in compliance with the License. | ||
6 | - * You may obtain a copy of the License at | ||
7 | - * | ||
8 | - * http://www.apache.org/licenses/LICENSE-2.0 | ||
9 | - * | ||
10 | - * Unless required by applicable law or agreed to in writing, software | ||
11 | - * distributed under the License is distributed on an "AS IS" BASIS, | ||
12 | - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
13 | - * See the License for the specific language governing permissions and | ||
14 | - * limitations under the License. | ||
15 | - */ | ||
16 | -package org.onosproject.net.newresource; | ||
17 | - | ||
18 | -import com.google.common.annotations.Beta; | ||
19 | -import org.onosproject.net.LinkKey; | ||
20 | - | ||
21 | -/** | ||
22 | - * Represents resource which belongs to a particular link. | ||
23 | - * | ||
24 | - * @param <T> represents the type of the resource | ||
25 | - */ | ||
26 | -@Beta | ||
27 | -public final class LinkResource<T> extends AbstractResource<LinkKey, T> { | ||
28 | - | ||
29 | - /** | ||
30 | - * Creates a new link resource from the specified link identifier and resource. | ||
31 | - * (linkKey, resource) signifies a resource identifier which is globally unique. | ||
32 | - * | ||
33 | - * @param linkKey link identifier which this resource belongs to | ||
34 | - * @param resource resource of the link | ||
35 | - */ | ||
36 | - public LinkResource(LinkKey linkKey, T resource) { | ||
37 | - super(linkKey, resource); | ||
38 | - } | ||
39 | -} |
core/api/src/main/java/org/onosproject/net/newresource/LinkResourceAllocation.java
deleted
100644 → 0
1 | -/* | ||
2 | - * Copyright 2015 Open Networking Laboratory | ||
3 | - * | ||
4 | - * Licensed under the Apache License, Version 2.0 (the "License"); | ||
5 | - * you may not use this file except in compliance with the License. | ||
6 | - * You may obtain a copy of the License at | ||
7 | - * | ||
8 | - * http://www.apache.org/licenses/LICENSE-2.0 | ||
9 | - * | ||
10 | - * Unless required by applicable law or agreed to in writing, software | ||
11 | - * distributed under the License is distributed on an "AS IS" BASIS, | ||
12 | - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
13 | - * See the License for the specific language governing permissions and | ||
14 | - * limitations under the License. | ||
15 | - */ | ||
16 | -package org.onosproject.net.newresource; | ||
17 | - | ||
18 | -import com.google.common.annotations.Beta; | ||
19 | -import org.onosproject.net.LinkKey; | ||
20 | - | ||
21 | -/** | ||
22 | - * Represents allocation of resource bound to link. | ||
23 | - * | ||
24 | - * @param <T> type of the resource | ||
25 | - */ | ||
26 | -@Beta | ||
27 | -public final class LinkResourceAllocation<T> extends AbstractResourceAllocation<LinkKey, T> { | ||
28 | - | ||
29 | - /** | ||
30 | - * Creates a new allocation of resource bound to the specified device and consumed by the specified user. | ||
31 | - * | ||
32 | - * @param link device identifier which this resource belongs to | ||
33 | - * @param resource resource of the device | ||
34 | - * @param consumer consumer of this resource | ||
35 | - */ | ||
36 | - public LinkResourceAllocation(LinkKey link, T resource, ResourceConsumer consumer) { | ||
37 | - super(link, resource, consumer); | ||
38 | - } | ||
39 | -} |
-
Please register or login to post a comment