Response addListener()

in taverna-server-webapp/src/main/java/org/apache/taverna/server/master/rest/TavernaServerListenersREST.java [103:217]


	Response addListener(@Nonnull ListenerDefinition typeAndConfiguration,
			@Nonnull @Context UriInfo ui) throws NoUpdateException,
			NoListenerException;

	/** Get an outline of the operations supported. */
	@OPTIONS
	@Path("/")
	@Description("Produces the description of the run listeners' operations.")
	Response listenersOptions();

	/**
	 * Resolve a particular listener from its name.
	 * 
	 * @param name
	 *            The name of the listener to look up.
	 * @return The listener's delegate in the REST world.
	 * @throws NoListenerException
	 *             If no listener with the given name exists.
	 */
	@Path("{name}")
	@Description("Resolve a particular listener from its name.")
	@Nonnull
	TavernaServerListenerREST getListener(
			@Nonnull @PathParam("name") String name) throws NoListenerException;

	/**
	 * This represents a single event listener attached to a workflow run.
	 * 
	 * @author Donal Fellows
	 * @see TavernaServerListenersREST
	 * @see Property
	 */
	@RolesAllowed(USER)
	@Description("This represents a single event listener attached to a "
			+ "workflow run.")
	public interface TavernaServerListenerREST {
		/**
		 * Get the description of this listener.
		 * 
		 * @param ui
		 *            Information about this request.
		 * @return A description document.
		 */
		@GET
		@Path("/")
		@Produces({ XML, JSON })
		@Description("Get the description of this listener.")
		@Nonnull
		ListenerDescription getDescription(@Nonnull @Context UriInfo ui);

		/** Get an outline of the operations supported. */
		@OPTIONS
		@Path("/")
		@Description("Produces the description of one run listener's operations.")
		Response listenerOptions();

		/**
		 * Get the configuration for the given event listener that is attached
		 * to a workflow run.
		 * 
		 * @return The configuration of the listener.
		 */
		@GET
		@Path("configuration")
		@Produces(TEXT)
		@Description("Get the configuration for the given event listener that "
				+ "is attached to a workflow run.")
		@Nonnull
		String getConfiguration();

		/** Get an outline of the operations supported. */
		@OPTIONS
		@Path("configuration")
		@Description("Produces the description of one run listener's "
				+ "configuration's operations.")
		Response configurationOptions();

		/**
		 * Get the list of properties supported by a given event listener
		 * attached to a workflow run.
		 * 
		 * @param ui
		 *            Information about this request.
		 * @return The list of property names.
		 */
		@GET
		@Path("properties")
		@Produces({ XML, JSON })
		@Description("Get the list of properties supported by a given event "
				+ "listener attached to a workflow run.")
		@Nonnull
		Properties getProperties(@Nonnull @Context UriInfo ui);

		/** Get an outline of the operations supported. */
		@OPTIONS
		@Path("properties")
		@Description("Produces the description of one run listener's "
				+ "properties' operations.")
		Response propertiesOptions();

		/**
		 * Get an object representing a particular property.
		 * 
		 * @param propertyName
		 * @return The property delegate.
		 * @throws NoListenerException
		 *             If there is no such property.
		 */
		@Path("properties/{propertyName}")
		@Description("Get an object representing a particular property.")
		@Nonnull
		Property getProperty(
				@Nonnull @PathParam("propertyName") String propertyName)
				throws NoListenerException;
	}