blob: 5ce989f4c9b37498f6431c0db2a74b452a58960a [file] [log] [blame]
/**
* 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;
}