/** * $Id: Describeable.java 105077 2012-02-24 22:54:29Z ottenhoff@longsight.com $ * $URL: https://source.sakaiproject.org/svn/entitybroker/trunk/api/src/java/org/sakaiproject/entitybroker/entityprovider/capabilities/Describeable.java $ * Describeable.java - entity-broker - Jul 18, 2008 5:15:58 PM - azeckoski ************************************************************************** * Copyright (c) 2008 The Sakai Foundation * * Licensed under the Educational Community 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.opensource.org/licenses/ECL-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.sakaiproject.entitybroker.entityprovider.capabilities; import org.sakaiproject.entitybroker.EntityView; import org.sakaiproject.entitybroker.entityprovider.EntityProvider; import org.sakaiproject.entitybroker.entityprovider.annotations.EntityCustomAction; import org.sakaiproject.entitybroker.entityprovider.annotations.EntityURLRedirect; /** * This entity will describe itself, * this description can be accessed for display in interfaces, * the description should generally be targeted at developers * (in particular, those using REST or web services)<br/> * This is the convention interface, it will simply look for the properties file * in the classloader which your {@link EntityProvider} is located in, * the file must be named <b><entity-prefix>.properties</b> (e.g. myentity.properties)<br/> * The keys inside the file must be as follows:<br/> * <entity-prefix> = This is the main description of the entity, appears at the top <br/> * <entity-prefix>.view.<viewKey> = This is a description about a particular view for an entity (viewKey from entity view constants {@link EntityView#VIEW_LIST}) <br/> * <entity-prefix>.action.<actionKey> = This is a description of a custom action for this entity (see {@link ActionsExecutable} or {@link EntityCustomAction}) <br/> * <entity-prefix>.field.<fieldName> = This is a description about a particular entity field for this entity object (see {@link Resolvable} or {@link CollectionResolvable}) <br/> * <entity-prefix>.redirect.<redirectTemplate> = This is a description about a particular redirect rule for this entity URL space (see {@link Redirectable} or {@link EntityURLRedirect}) <br/> * <entity-prefix>.<capability> = This is a description about a particular capability for this entity <br/> * <b>Example:</b><xmp> myentity = This is my entity, it is used for <b>examples</b> only myentity.view.show = this shows a single instance of my entity myentity.action.copy = this makes a copy of an instance of a myentity myentity.field.name = this is the name of the entity, it is a user displayable name myentity.redirect./{prefix}/xml/{id} = redirects to an xml view of a myentity myentity.Inputable = <i>extra</i> notes about the Inputable implementation for myentity * </xmp> * <br/> * If you need to define the location of your properties file then use: {@link DescribePropertiesable} * <br/> * This is one of the capability extensions for the {@link EntityProvider} interface<br/> * * @author Aaron Zeckoski (azeckoski @ gmail.com) */ public interface Describeable extends EntityProvider { // this space left blank intentionally }