|
@@ -0,0 +1,103 @@
|
|
|
|
+/**
|
|
|
|
+ * Licensed to the Apache Software Foundation (ASF) under one
|
|
|
|
+ * or more contributor license agreements. See the NOTICE file
|
|
|
|
+ * distributed with this work for additional information
|
|
|
|
+ * regarding copyright ownership. The ASF licenses this file
|
|
|
|
+ * to you 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.apache.ambari.view;
|
|
|
|
+
|
|
|
|
+import java.util.Map;
|
|
|
|
+import java.util.Set;
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * Class used to access view sub-resources.
|
|
|
|
+ *
|
|
|
|
+ * @param <T> the type of the resource class provided by this ResourceProvider object.
|
|
|
|
+ */
|
|
|
|
+public interface ResourceProvider<T> {
|
|
|
|
+ /**
|
|
|
|
+ * Get a single resource from the given id. The resource should be
|
|
|
|
+ * populated with the given properties.
|
|
|
|
+ *
|
|
|
|
+ * @param resourceId the id of the requested resource
|
|
|
|
+ * @param properties the set of requested property ids
|
|
|
|
+ *
|
|
|
|
+ * @throws SystemException an internal system exception occurred
|
|
|
|
+ * @throws NoSuchResourceException a requested resource doesn't exist
|
|
|
|
+ * @throws UnsupportedPropertyException the request contains unsupported property ids
|
|
|
|
+ *
|
|
|
|
+ * @return the resource
|
|
|
|
+ */
|
|
|
|
+ public T getResource(String resourceId, Set<String> properties) throws
|
|
|
|
+ SystemException, NoSuchResourceException, UnsupportedPropertyException;
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * Get all of the resources. The resources should be populated with
|
|
|
|
+ * the given resources.
|
|
|
|
+ *
|
|
|
|
+ * @param request the read request
|
|
|
|
+ *
|
|
|
|
+ * @throws SystemException an internal system exception occurred
|
|
|
|
+ * @throws NoSuchResourceException a requested resource doesn't exist
|
|
|
|
+ * @throws UnsupportedPropertyException the request contains unsupported property ids
|
|
|
|
+ *
|
|
|
|
+ * @return a set containing all the resources
|
|
|
|
+ */
|
|
|
|
+ public Set<T> getResources(ReadRequest request) throws
|
|
|
|
+ SystemException, NoSuchResourceException, UnsupportedPropertyException;
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * Create a resource with the given id and given property values.
|
|
|
|
+ *
|
|
|
|
+ * @param resourceId the id of the requested resource
|
|
|
|
+ * @param properties the map of property values to set on the new resource
|
|
|
|
+ *
|
|
|
|
+ * @throws SystemException an internal system exception occurred
|
|
|
|
+ * @throws ResourceAlreadyExistsException attempted to create a resource which already exists
|
|
|
|
+ * @throws NoSuchResourceException a parent resource doesn't exist
|
|
|
|
+ * @throws UnsupportedPropertyException the request contains unsupported property ids
|
|
|
|
+ */
|
|
|
|
+ public void createResource(String resourceId, Map<String, Object> properties) throws
|
|
|
|
+ SystemException, ResourceAlreadyExistsException, NoSuchResourceException, UnsupportedPropertyException;
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * Update the resource identified by given resource id with the given property values.
|
|
|
|
+ *
|
|
|
|
+ * @param resourceId the id of the requested resource
|
|
|
|
+ * @param properties the map of property values to update on the resource
|
|
|
|
+ *
|
|
|
|
+ * @throws SystemException an internal system exception occurred
|
|
|
|
+ * @throws NoSuchResourceException a requested resource doesn't exist
|
|
|
|
+ * @throws UnsupportedPropertyException the request contains unsupported property ids
|
|
|
|
+ *
|
|
|
|
+ * @return true if the resource was successfully updated
|
|
|
|
+ */
|
|
|
|
+ public boolean updateResource(String resourceId, Map<String, Object> properties) throws
|
|
|
|
+ SystemException, NoSuchResourceException, UnsupportedPropertyException;
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * Delete the resource identified by the given resource id.
|
|
|
|
+ *
|
|
|
|
+ * @param resourceId the id of the requested resource
|
|
|
|
+ *
|
|
|
|
+ * @throws SystemException an internal system exception occurred
|
|
|
|
+ * @throws NoSuchResourceException the resource instance to be deleted doesn't exist
|
|
|
|
+ * @throws UnsupportedPropertyException the request contains unsupported property ids
|
|
|
|
+ *
|
|
|
|
+ * @return true if the resource was successfully deleted
|
|
|
|
+ */
|
|
|
|
+ public boolean deleteResource(String resourceId) throws
|
|
|
|
+ SystemException, NoSuchResourceException, UnsupportedPropertyException;
|
|
|
|
+}
|