Extract interface consisting of read-only operations
Change-Id: I0e43b25ea5feba6af882addb0e734d0662f3808f
diff --git a/core/api/src/main/java/org/onosproject/net/resource/ResourceService.java b/core/api/src/main/java/org/onosproject/net/resource/ResourceService.java
index ad0c29b..deb5c18 100644
--- a/core/api/src/main/java/org/onosproject/net/resource/ResourceService.java
+++ b/core/api/src/main/java/org/onosproject/net/resource/ResourceService.java
@@ -20,10 +20,8 @@
import org.onosproject.event.ListenerService;
import java.util.Arrays;
-import java.util.Collection;
import java.util.List;
import java.util.Optional;
-import java.util.Set;
import static com.google.common.base.Preconditions.checkNotNull;
@@ -31,7 +29,7 @@
* Service for allocating/releasing resource(s) and retrieving allocation(s) and availability.
*/
@Beta
-public interface ResourceService extends ListenerService<ResourceEvent, ResourceListener> {
+public interface ResourceService extends ResourceQueryService, ListenerService<ResourceEvent, ResourceListener> {
/**
* Allocates the specified resource to the specified user.
*
@@ -62,7 +60,7 @@
* Transactionally allocates the specified resources to the specified user.
* All allocations are made when this method succeeds, or no allocation is made when this method fails.
*
- * @param consumer resource user which the resources are allocated to
+ * @param consumer resource user which the resources are allocated to
* @param resources resources to be allocated
* @return non-empty list of allocation information if succeeded, otherwise empty list
*/
@@ -72,7 +70,7 @@
* Transactionally allocates the specified resources to the specified user.
* All allocations are made when this method succeeds, or no allocation is made when this method fails.
*
- * @param consumer resource user which the resources are allocated to
+ * @param consumer resource user which the resources are allocated to
* @param resources resources to be allocated
* @return non-empty list of allocation information if succeeded, otherwise empty list
*/
@@ -126,78 +124,5 @@
*/
boolean release(ResourceConsumer consumer);
- /**
- * Returns resource allocations of the specified resource.
- *
- * @param id ID of the resource to check the allocation
- * @return list of allocation information.
- * If the resource is not allocated, the return value is an empty list.
- */
- List<ResourceAllocation> getResourceAllocations(ResourceId id);
-
- /**
- * Returns allocated resources being as children of the specified parent and being the specified resource type.
- *
- * @param parent parent resource ID
- * @param cls class to specify a type of resource
- * @param <T> type of the resource
- * @return non-empty collection of resource allocations if resources are allocated with the subject and type,
- * empty collection if no resource is allocated with the subject and type
- */
- <T> Collection<ResourceAllocation> getResourceAllocations(DiscreteResourceId parent, Class<T> cls);
-
- /**
- * Returns resources allocated to the specified consumer.
- *
- * @param consumer consumer whose allocated resources are to be returned
- * @return resources allocated to the consumer
- */
- Collection<ResourceAllocation> getResourceAllocations(ResourceConsumer consumer);
-
- /**
- * Returns resources that point available child resources under the specified resource.
- *
- * @param parent parent resource ID
- * @return available resources under the specified resource
- */
- Set<Resource> getAvailableResources(DiscreteResourceId parent);
-
- /**
- * Returns available resources which are child resources of the specified parent and
- * whose type is the specified type.
- *
- * @param parent parent resource ID
- * @param cls class to specify a type of resource
- * @param <T> type of the resource
- * @return available resources of the specified type under the specified parent resource
- */
- <T> Set<Resource> getAvailableResources(DiscreteResourceId parent, Class<T> cls);
-
- /**
- * Returns available resource values which are the values of the child resource of
- * the specified parent and whose type is the specified type.
- *
- * @param parent parent resource ID
- * @param cls class to specify a type of resource
- * @param <T> type of the resource
- * @return available resource value of the specified type under the specified parent resource
- */
- <T> Set<T> getAvailableResourceValues(DiscreteResourceId parent, Class<T> cls);
- /**
- * Returns resources registered under the specified resource.
- *
- * @param parent parent resource ID
- * @return registered resources under the specified resource
- */
- Set<Resource> getRegisteredResources(DiscreteResourceId parent);
-
- /**
- * Returns the availability of the specified resource.
- *
- * @param resource resource to check the availability
- * @return true if available, otherwise false
- */
- boolean isAvailable(Resource resource);
-
// TODO: listener and event mechanism need to be considered
}