Change the APIs to instantiate Resource and ResourceId
Now, DiscreteResource/DiscreteResourceId is provided by DiscreteFactory.
Similarly, ContinuousResource/ContinuousResourceId is provided by
ContinuousFactory. These factory instances can be obtained by static
factory method such as Resource.discrete(...) or Resource.continuous(...).
Change-Id: Ic94f7336c0e1f74cf2dddcac899de300362aff3e
diff --git a/core/api/src/main/java/org/onosproject/net/newresource/ContinuousFactory.java b/core/api/src/main/java/org/onosproject/net/newresource/ContinuousFactory.java
new file mode 100644
index 0000000..2acd726
--- /dev/null
+++ b/core/api/src/main/java/org/onosproject/net/newresource/ContinuousFactory.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright 2016 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.newresource;
+
+import com.google.common.annotations.Beta;
+
+/**
+ * Factory class for continuous-type resource related instances.
+ */
+@Beta
+public final class ContinuousFactory {
+ private final ContinuousResourceId id;
+
+ /**
+ * Creates an instance with the specified resource ID.
+ *
+ * @param id resource ID that is associated with the resource related instances
+ * which will be created from this instance
+ */
+ ContinuousFactory(ContinuousResourceId id) {
+ this.id = id;
+ }
+
+ /**
+ * Returns the resource ID for continuous-type.
+ *
+ * @return continuous-type resource ID
+ */
+ public ContinuousResourceId id() {
+ return id;
+ }
+
+ /**
+ * Returns the resource for continuous-type specified by the given value.
+ *
+ * @param volume volume of the returned resource
+ * @return continuous-type resource
+ */
+ public ContinuousResource resource(double volume) {
+ return new ContinuousResource(id(), volume);
+ }
+}
diff --git a/core/api/src/main/java/org/onosproject/net/newresource/ContinuousResource.java b/core/api/src/main/java/org/onosproject/net/newresource/ContinuousResource.java
index af34bc5..f5301f7 100644
--- a/core/api/src/main/java/org/onosproject/net/newresource/ContinuousResource.java
+++ b/core/api/src/main/java/org/onosproject/net/newresource/ContinuousResource.java
@@ -98,7 +98,7 @@
@Override
public Optional<DiscreteResource> parent() {
- return id.parent().map(DiscreteResource::new);
+ return id.parent().map(x -> Resource.discrete(x).resource());
}
@Override
diff --git a/core/api/src/main/java/org/onosproject/net/newresource/ContinuousResourceId.java b/core/api/src/main/java/org/onosproject/net/newresource/ContinuousResourceId.java
index 5870106..4dadacf 100644
--- a/core/api/src/main/java/org/onosproject/net/newresource/ContinuousResourceId.java
+++ b/core/api/src/main/java/org/onosproject/net/newresource/ContinuousResourceId.java
@@ -21,8 +21,6 @@
import java.util.Objects;
import java.util.Optional;
-import static com.google.common.base.Preconditions.checkNotNull;
-
/**
* ResourceId for {@link ContinuousResource}
*
@@ -36,11 +34,6 @@
// for printing purpose only (used in toString() implementation)
private final String name;
- ContinuousResourceId(ImmutableList<Object> components, String name) {
- this.components = components;
- this.name = checkNotNull(name);
- }
-
ContinuousResourceId(ImmutableList.Builder<Object> parentComponents, Class<?> last) {
this.components = parentComponents.add(last.getCanonicalName()).build();
this.name = last.getSimpleName();
diff --git a/core/api/src/main/java/org/onosproject/net/newresource/DiscreteFactory.java b/core/api/src/main/java/org/onosproject/net/newresource/DiscreteFactory.java
new file mode 100644
index 0000000..b285641
--- /dev/null
+++ b/core/api/src/main/java/org/onosproject/net/newresource/DiscreteFactory.java
@@ -0,0 +1,54 @@
+/*
+ * Copyright 2016 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.newresource;
+
+import com.google.common.annotations.Beta;
+
+/**
+ * Factory class for discrete-type resource related instances.
+ */
+@Beta
+public final class DiscreteFactory {
+ private final DiscreteResourceId id;
+
+ /**
+ * Create an instance with the specified resource ID.
+ *
+ * @param id resource ID that is associated with the resource related instances
+ * which will be created from this instance
+ */
+ DiscreteFactory(DiscreteResourceId id) {
+ this.id = id;
+ }
+
+ /**
+ * Returns the resource ID for discrete-type.
+ *
+ * @return discrete-type resource ID
+ */
+ public DiscreteResourceId id() {
+ return id;
+ }
+
+ /**
+ * Returns the resource for discrete-type.
+ *
+ * @return discrete-type resource
+ */
+ public DiscreteResource resource() {
+ return new DiscreteResource(id);
+ }
+}
diff --git a/core/api/src/main/java/org/onosproject/net/newresource/DiscreteResource.java b/core/api/src/main/java/org/onosproject/net/newresource/DiscreteResource.java
index c8839a6..f1876d5 100644
--- a/core/api/src/main/java/org/onosproject/net/newresource/DiscreteResource.java
+++ b/core/api/src/main/java/org/onosproject/net/newresource/DiscreteResource.java
@@ -40,7 +40,7 @@
this.id = id;
}
- protected DiscreteResource() {
+ DiscreteResource() {
this.id = ResourceId.ROOT;
}
@@ -80,17 +80,17 @@
public DiscreteResource child(Object child) {
checkArgument(!(child instanceof Class<?>));
- return new DiscreteResource(id.child(child));
+ return Resource.discrete(id.child(child)).resource();
}
@Override
public ContinuousResource child(Class<?> child, double value) {
- return new ContinuousResource(id.child(child), value);
+ return Resource.continuous(id.child(child)).resource(value);
}
@Override
public Optional<DiscreteResource> parent() {
- return id.parent().map(DiscreteResource::new);
+ return id.parent().map(x -> Resource.discrete(x).resource());
}
@Override
diff --git a/core/api/src/main/java/org/onosproject/net/newresource/DiscreteResourceId.java b/core/api/src/main/java/org/onosproject/net/newresource/DiscreteResourceId.java
index 80c8f59..804dfba 100644
--- a/core/api/src/main/java/org/onosproject/net/newresource/DiscreteResourceId.java
+++ b/core/api/src/main/java/org/onosproject/net/newresource/DiscreteResourceId.java
@@ -50,17 +50,14 @@
public DiscreteResourceId child(Object child) {
checkArgument(!(child instanceof Class<?>));
- return new DiscreteResourceId(ImmutableList.builder()
- .addAll(components)
- .add(child)
- .build());
+ return Resource.discrete(this, child).id();
}
@Override
public ContinuousResourceId child(Class<?> child) {
checkNotNull(child);
- return new ContinuousResourceId(ImmutableList.builder().addAll(components), child);
+ return Resource.continuous(this, child).id();
}
@Override
diff --git a/core/api/src/main/java/org/onosproject/net/newresource/Resource.java b/core/api/src/main/java/org/onosproject/net/newresource/Resource.java
index e3c5c47..749d87e 100644
--- a/core/api/src/main/java/org/onosproject/net/newresource/Resource.java
+++ b/core/api/src/main/java/org/onosproject/net/newresource/Resource.java
@@ -16,14 +16,16 @@
package org.onosproject.net.newresource;
import com.google.common.annotations.Beta;
-
+import com.google.common.collect.ImmutableList;
import org.onosproject.net.DeviceId;
import org.onosproject.net.PortNumber;
+import java.util.Arrays;
import java.util.List;
import java.util.Optional;
import static com.google.common.base.Preconditions.checkArgument;
+import static com.google.common.base.Preconditions.checkNotNull;
/**
* An object that represent a resource in a network.
@@ -46,65 +48,6 @@
DiscreteResource ROOT = new DiscreteResource();
- static DiscreteResource discrete(DeviceId device) {
- return new DiscreteResource(ResourceId.discrete(device));
- }
-
- /**
- * Creates an resource path which represents a discrete-type resource from the specified components.
- *
- * @param device device ID which is the first component of the path
- * @param components following components of the path. The order represents hierarchical structure of the resource.
- * @return resource path instance
- */
- static DiscreteResource discrete(DeviceId device, Object... components) {
- return new DiscreteResource(ResourceId.discrete(device, components));
- }
-
- /**
- * Creates an resource path which represents a discrete-type resource from the specified components.
- *
- * @param device device ID which is the first component of the path
- * @param port port number which is the second component of the path
- * @param components following components of the path. The order represents hierarchical structure of the resource.
- * @return resource path instance
- */
- static DiscreteResource discrete(DeviceId device, PortNumber port, Object... components) {
- return new DiscreteResource(ResourceId.discrete(device, port, components));
- }
-
- /**
- * Creates an resource path which represents a continuous-type resource from the specified components.
- *
- * @param value amount of the resource
- * @param device device ID which is the first component of the path
- * @param components following components of the path. The order represents hierarchical structure of the resource.
- * The last element of this list must be an {@link Class} instance. Otherwise, this method throws
- * an IllegalArgumentException.
- * @return resource path instance
- */
- static ContinuousResource continuous(double value, DeviceId device, Object... components) {
- checkArgument(components.length > 0,
- "Length of components must be greater thant 0, but " + components.length);
-
- return new ContinuousResource(ResourceId.continuous(device, components), value);
- }
-
- /**
- * Creates an resource path which represents a continuous-type resource from the specified components.
- *
- * @param value amount of the resource
- * @param device device ID which is the first component of the path.
- * @param port port number which is the second component of the path.
- * @param components following components of the path. The order represents hierarchical structure of the resource.
- * The last element of this list must be an {@link Class} instance. Otherwise, this method throws
- * an IllegalArgumentException.
- * @return resource path instance
- */
- static ContinuousResource continuous(double value, DeviceId device, PortNumber port, Object... components) {
- return new ContinuousResource(ResourceId.continuous(device, port, components), value);
- }
-
/**
* Returns the components of this resource path.
*
@@ -163,4 +106,189 @@
* @return the ID of this resource path
*/
ResourceId id();
+
+ /**
+ * Create a factory for discrete-type with the specified resource ID.
+ *
+ * @param id resource ID
+ * @return {@link DiscreteFactory}
+ */
+ static DiscreteFactory discrete(DiscreteResourceId id) {
+ checkNotNull(id);
+
+ return new DiscreteFactory(id);
+ }
+
+ /**
+ * Creates a factory for discrete-type with the specified parent ID and child.
+ *
+ * @param parent ID of the parent
+ * @param child child
+ * @return {@link DiscreteFactory}
+ */
+ static DiscreteFactory discrete(DiscreteResourceId parent, Object child) {
+ checkNotNull(parent);
+ checkNotNull(child);
+ checkArgument(!(child instanceof Class<?>));
+
+ return new DiscreteFactory(new DiscreteResourceId(ImmutableList.builder()
+ .addAll(parent.components())
+ .add(child)
+ .build()));
+ }
+
+ /**
+ * Create a factory for discrete-type with the specified device ID.
+ *
+ * @param device device ID
+ * @return {@link DiscreteFactory}
+ */
+ static DiscreteFactory discrete(DeviceId device) {
+ checkNotNull(device);
+
+ return new DiscreteFactory(new DiscreteResourceId(ImmutableList.of(device)));
+ }
+
+ /**
+ * Create a factory for discrete-type with the specified device ID and components.
+ *
+ * @param device device ID
+ * @param components resource ID components other than the device ID
+ * @return {@link DiscreteFactory}
+ */
+ static DiscreteFactory discrete(DeviceId device, Object... components) {
+ checkNotNull(device);
+ checkNotNull(components);
+
+ return new DiscreteFactory(new DiscreteResourceId(ImmutableList.builder()
+ .add(device)
+ .add(components)
+ .build()));
+ }
+
+ /**
+ * Create a factory for discrete-type with the specified device ID, port number and components.
+ *
+ * @param device device ID
+ * @param port port number
+ * @param components resource ID components other than the device ID and port number
+ * @return {@link DiscreteFactory}
+ */
+ static DiscreteFactory discrete(DeviceId device, PortNumber port, Object... components) {
+ checkNotNull(device);
+ checkNotNull(port);
+ checkNotNull(components);
+
+ return new DiscreteFactory(new DiscreteResourceId(ImmutableList.builder()
+ .add(device)
+ .add(port)
+ .add(components)
+ .build()));
+ }
+
+ /**
+ * Create a factory for continuous-type with the specified resource ID.
+ *
+ * @param id resource ID
+ * @return {@link ContinuousFactory}
+ */
+ static ContinuousFactory continuous(ContinuousResourceId id) {
+ checkNotNull(id);
+
+ return new ContinuousFactory(id);
+ }
+
+ /**
+ * Creates a factory for continuous-type wit the specified parent ID and child.
+ *
+ * @param parent ID of the parent
+ * @param child child
+ * @return {@link ContinuousFactory}
+ */
+ static ContinuousFactory continuous(DiscreteResourceId parent, Class<?> child) {
+ checkNotNull(parent);
+ checkNotNull(child);
+
+ return new ContinuousFactory(new ContinuousResourceId(ImmutableList.builder()
+ .addAll(parent.components()), child));
+ }
+
+ /**
+ * Create a factory for continuous-type with the specified device ID and type.
+ *
+ * @param device device ID
+ * @param cls type of resource the returned factory will create
+ * @return {@link ContinuousFactory}
+ */
+ static ContinuousFactory continuous(DeviceId device, Class<?> cls) {
+ checkNotNull(device);
+ checkNotNull(cls);
+
+ return new ContinuousFactory(new ContinuousResourceId(ImmutableList.builder().add(device), cls));
+ }
+
+ /**
+ * Create a factory for continuous-type with the specified device ID and components.
+ * The last element of the components must be a {@link Class} instance. Otherwise,
+ * an {@link IllegalArgumentException} is thrown.
+ *
+ * @param device device ID
+ * @param components resource ID components other than the device ID.
+ * @return {@link ContinuousFactory}
+ */
+ static ContinuousFactory continuous(DeviceId device, Object... components) {
+ checkNotNull(device);
+ checkNotNull(components);
+ checkArgument(components.length > 1);
+
+ Object last = components[components.length - 1];
+ checkArgument(last instanceof Class<?>);
+
+ return new ContinuousFactory(new ContinuousResourceId(ImmutableList.builder()
+ .add(device)
+ .add(Arrays.copyOfRange(components, 0, components.length - 1)), (Class<?>) last));
+ }
+
+ /**
+ * Create a factory for continuous-type with the specified device ID, port number and type.
+ *
+ * @param device device ID
+ * @param port port number
+ * @param cls type of resource the returned factory will create
+ * @return {@link ContinuousFactory}
+ */
+ static ContinuousFactory continuous(DeviceId device, PortNumber port, Class<?> cls) {
+ checkNotNull(device);
+ checkNotNull(port);
+ checkNotNull(cls);
+
+ return new ContinuousFactory(new ContinuousResourceId(ImmutableList.builder()
+ .add(device)
+ .add(port), cls));
+ }
+
+ /**
+ * Create a factory for continuous-type with the specified device ID and components.
+ * The last element of the components must be a {@link Class} instance. Otherwise,
+ * an {@link IllegalArgumentException} is thrown.
+ *
+ * @param device device ID
+ * @param port port number
+ * @param components resource ID components other than the device ID and port number.
+ * @return {@link ContinuousFactory}
+ */
+ static ContinuousFactory continuous(DeviceId device, PortNumber port, Object... components) {
+ checkNotNull(device);
+ checkNotNull(port);
+ checkNotNull(components);
+ checkArgument(components.length > 1);
+
+ Object last = components[components.length - 1];
+ checkArgument(last instanceof Class<?>);
+
+ return new ContinuousFactory(new ContinuousResourceId(ImmutableList.builder()
+ .add(device)
+ .add(port)
+ .add(Arrays.copyOfRange(components, 0, components.length - 1)), (Class<?>) last));
+ }
}
diff --git a/core/api/src/main/java/org/onosproject/net/newresource/ResourceId.java b/core/api/src/main/java/org/onosproject/net/newresource/ResourceId.java
index 6f785df..ee1660d 100644
--- a/core/api/src/main/java/org/onosproject/net/newresource/ResourceId.java
+++ b/core/api/src/main/java/org/onosproject/net/newresource/ResourceId.java
@@ -16,15 +16,9 @@
package org.onosproject.net.newresource;
import com.google.common.annotations.Beta;
-import com.google.common.collect.ImmutableList;
-import org.onosproject.net.DeviceId;
-import org.onosproject.net.PortNumber;
-import java.util.Arrays;
import java.util.Optional;
-import static com.google.common.base.Preconditions.checkArgument;
-
/**
* Represents identifier of resource.
* This class is exposed to public, but intended to use only in ResourceStore implementations.
@@ -33,40 +27,6 @@
public abstract class ResourceId {
static final DiscreteResourceId ROOT = new DiscreteResourceId();
- static DiscreteResourceId discrete(DeviceId device, Object... components) {
- return new DiscreteResourceId(ImmutableList.builder()
- .add(device)
- .add(components)
- .build());
- }
-
- static DiscreteResourceId discrete(DeviceId device, PortNumber port, Object... components) {
- return new DiscreteResourceId(ImmutableList.builder()
- .add(device)
- .add(port)
- .add(components)
- .build());
- }
-
- static ContinuousResourceId continuous(DeviceId device, Object... components) {
- Object last = components[components.length - 1];
- checkArgument(last instanceof Class<?>);
-
- return new ContinuousResourceId(ImmutableList.builder()
- .add(device)
- .add(Arrays.copyOfRange(components, 0, components.length - 1)), (Class<?>) last);
- }
-
- static ContinuousResourceId continuous(DeviceId device, PortNumber port, Object... components) {
- Object last = components[components.length - 1];
- checkArgument(last instanceof Class<?>);
-
- return new ContinuousResourceId(ImmutableList.builder()
- .add(device)
- .add(port)
- .add(Arrays.copyOfRange(components, 0, components.length - 1)), (Class<?>) last);
- }
-
/**
* Returns the parent resource ID of this instance.
*
diff --git a/core/api/src/test/java/org/onosproject/net/newresource/ResourceAllocationTest.java b/core/api/src/test/java/org/onosproject/net/newresource/ResourceAllocationTest.java
index a9a8ed2..c8c1b17 100644
--- a/core/api/src/test/java/org/onosproject/net/newresource/ResourceAllocationTest.java
+++ b/core/api/src/test/java/org/onosproject/net/newresource/ResourceAllocationTest.java
@@ -32,9 +32,9 @@
@Test
public void testEquals() {
- ResourceAllocation alloc1 = new ResourceAllocation(Resource.discrete(D1, P1, VLAN1), IID1);
- ResourceAllocation sameAsAlloc1 = new ResourceAllocation(Resource.discrete(D1, P1, VLAN1), IID1);
- ResourceAllocation alloc2 = new ResourceAllocation(Resource.discrete(D2, P1, VLAN1), IID1);
+ ResourceAllocation alloc1 = new ResourceAllocation(Resource.discrete(D1, P1, VLAN1).resource(), IID1);
+ ResourceAllocation sameAsAlloc1 = new ResourceAllocation(Resource.discrete(D1, P1, VLAN1).resource(), IID1);
+ ResourceAllocation alloc2 = new ResourceAllocation(Resource.discrete(D2, P1, VLAN1).resource(), IID1);
new EqualsTester()
.addEqualityGroup(alloc1, sameAsAlloc1)
diff --git a/core/api/src/test/java/org/onosproject/net/newresource/ResourceIdTest.java b/core/api/src/test/java/org/onosproject/net/newresource/ResourceIdTest.java
index 7a37d30..1d2257b 100644
--- a/core/api/src/test/java/org/onosproject/net/newresource/ResourceIdTest.java
+++ b/core/api/src/test/java/org/onosproject/net/newresource/ResourceIdTest.java
@@ -32,20 +32,20 @@
@Test
public void testDiscreteToString() {
- ResourceId resource = ResourceId.discrete(D1, P1);
+ ResourceId resource = Resource.discrete(D1, P1).id();
assertThat(resource.toString(), is(Arrays.asList(D1, P1).toString()));
}
@Test
public void testContinuousToString() {
- ResourceId resource = ResourceId.continuous(D1, P1, Bandwidth.class);
+ ResourceId resource = Resource.continuous(D1, P1, Bandwidth.class).id();
assertThat(resource.toString(), is(Arrays.asList(D1, P1, Bandwidth.class.getSimpleName()).toString()));
}
@Test(expected = IllegalArgumentException.class)
public void testInitWithNonClassInstance() {
- ResourceId.continuous(D1, P1, BW1);
+ Resource.continuous(D1, P1, BW1).id();
}
}
diff --git a/core/api/src/test/java/org/onosproject/net/newresource/ResourceTest.java b/core/api/src/test/java/org/onosproject/net/newresource/ResourceTest.java
index f7c165e..a14b947 100644
--- a/core/api/src/test/java/org/onosproject/net/newresource/ResourceTest.java
+++ b/core/api/src/test/java/org/onosproject/net/newresource/ResourceTest.java
@@ -39,11 +39,11 @@
@Test
public void testEquals() {
- Resource resource1 = Resource.discrete(D1, P1, VLAN1);
- Resource sameAsResource1 = Resource.discrete(D1, P1, VLAN1);
- Resource resource2 = Resource.discrete(D2, P1, VLAN1);
- Resource resource3 = Resource.continuous(BW1.bps(), D1, P1, Bandwidth.class);
- Resource sameAsResource3 = Resource.continuous(BW1.bps(), D1, P1, Bandwidth.class);
+ Resource resource1 = Resource.discrete(D1, P1, VLAN1).resource();
+ Resource sameAsResource1 = Resource.discrete(D1, P1, VLAN1).resource();
+ Resource resource2 = Resource.discrete(D2, P1, VLAN1).resource();
+ Resource resource3 = Resource.continuous(D1, P1, Bandwidth.class).resource(BW1.bps());
+ Resource sameAsResource3 = Resource.continuous(D1, P1, Bandwidth.class).resource(BW1.bps());
new EqualsTester()
.addEqualityGroup(resource1, sameAsResource1)
@@ -54,7 +54,7 @@
@Test
public void testComponents() {
- Resource port = Resource.discrete(D1, P1);
+ Resource port = Resource.discrete(D1, P1).resource();
assertThat(port.components(), contains(D1, P1));
}
@@ -64,9 +64,9 @@
ResourceId id1 = Resource.discrete(D1, P1, VLAN1).id();
ResourceId sameAsId1 = Resource.discrete(D1, P1, VLAN1).id();
ResourceId id2 = Resource.discrete(D2, P1, VLAN1).id();
- ResourceId id3 = Resource.continuous(BW1.bps(), D1, P1, Bandwidth.class).id();
+ ResourceId id3 = Resource.continuous(D1, P1, Bandwidth.class).resource(BW1.bps()).id();
// intentionally set a different value
- ResourceId sameAsId3 = Resource.continuous(BW2.bps(), D1, P1, Bandwidth.class).id();
+ ResourceId sameAsId3 = Resource.continuous(D1, P1, Bandwidth.class).resource(BW2.bps()).id();
new EqualsTester()
.addEqualityGroup(id1, sameAsId1)
@@ -76,30 +76,30 @@
@Test
public void testChild() {
- Resource r1 = Resource.discrete(D1).child(P1);
- Resource sameAsR2 = Resource.discrete(D1, P1);
+ Resource r1 = Resource.discrete(D1).resource().child(P1);
+ Resource sameAsR2 = Resource.discrete(D1, P1).resource();
assertThat(r1, is(sameAsR2));
}
@Test
public void testThereIsParent() {
- Resource resource = Resource.discrete(D1, P1, VLAN1);
- Resource parent = Resource.discrete(D1, P1);
+ Resource resource = Resource.discrete(D1, P1, VLAN1).resource();
+ Resource parent = Resource.discrete(D1, P1).resource();
assertThat(resource.parent(), is(Optional.of(parent)));
}
@Test
public void testNoParent() {
- Resource resource = Resource.discrete(D1);
+ Resource resource = Resource.discrete(D1).resource();
assertThat(resource.parent(), is(Optional.of(Resource.ROOT)));
}
@Test
public void testBase() {
- Resource resource = Resource.discrete(D1);
+ Resource resource = Resource.discrete(D1).resource();
DeviceId child = (DeviceId) resource.last();
assertThat(child, is(D1));
@@ -107,7 +107,7 @@
@Test
public void testVolumeOfDiscrete() {
- Resource resource = Resource.discrete(D1);
+ Resource resource = Resource.discrete(D1).resource();
DeviceId volume = resource.volume();
assertThat(volume, is(D1));
@@ -115,7 +115,7 @@
@Test
public void testVolumeOfContinuous() {
- Resource resource = Resource.continuous(BW1.bps(), D1, P1, Bandwidth.class);
+ Resource resource = Resource.continuous(D1, P1, Bandwidth.class).resource(BW1.bps());
double volume = resource.volume();
assertThat(volume, is(BW1.bps()));