/**
* Copyright (c) Codice Foundation
* <p/>
* This is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser
* General Public License as published by the Free Software Foundation, either version 3 of the
* License, or any later version.
* <p/>
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
* even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details. A copy of the GNU Lesser General Public License
* is distributed along with this program and can be found at
* <http://www.gnu.org/licenses/lgpl.html>.
*/
package ddf.action;
import java.net.URL;
/**
* An {@link Action} has a {@link URL} meant to be used in a browser or be able to be invoked to
* provide some resource or business logic. An example would be providing a link to a product or a
* link to calculate information about a specific resource.
*
* @author Ashraf Barakat
* @author ddf.isgs@lmco.com
*
*/
public interface Action {
/**
*
* @return the unique identifier of the {@link ActionProvider} that supplied the {@link Action}
*
* @see ActionProvider
*/
public String getId();
/**
*
* @return {@link URL} object that provides business logic when invoked. This could be used as
* the href of a html hyperlink.
*/
public URL getUrl();
/**
*
* @return a title that provides a brief name or label for this {@link Action}. Title can be
* used as the hyperlink text for a HTML hyperlink.
*/
public String getTitle();
/**
*
* @return a description or concise statement of what this {@link Action} does and the expected
* result when the {@link Action} is invoked. The description, for example, could be
* used to provide more information when a link is hovered upon.
*/
public String getDescription();
}