Files
alfresco-community-repo/source/java/org/alfresco/web/scripts/WebScriptDescription.java
Derek Hulley 4ba65b9950 Merged V2.1 to V2.0
6435: AR-1644 Web Scripts do not provide any control over caching
   6469: Replaced EUPL licence with standard license header
   6526: AR-1685 Error creating workflow with no document associated
   6565: Fix for issue with file Upload in main web-client portlet for JBoss/Liferay portal integration.
   6578: AR-1620: Upgraded One-Jar to 0.96-RC4


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@6581 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2007-08-20 15:46:59 +00:00

197 lines
5.1 KiB
Java

/*
* Copyright (C) 2005-2007 Alfresco Software Limited.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
* 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 General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
* As a special exception to the terms and conditions of version 2.0 of
* the GPL, you may redistribute this Program in connection with Free/Libre
* and Open Source Software ("FLOSS") applications as described in Alfresco's
* FLOSS exception. You should have recieved a copy of the text describing
* the FLOSS exception, and it is also available here:
* http://www.alfresco.com/legal/licensing"
*/
package org.alfresco.web.scripts;
import java.io.IOException;
import java.io.InputStream;
/**
* Web Script Description
*
* @author davidc
*/
public interface WebScriptDescription
{
/**
* Enumeration of "required" Authentication level
*/
public enum RequiredAuthentication
{
none,
guest,
user,
admin
}
/**
* Enumeration of "required" Transaction level
*/
public enum RequiredTransaction
{
none,
required,
requiresnew
}
/**
* Caching requirements
*/
public interface RequiredCache
{
/**
* Determine if Web Script should ever be cached
*
* @return true => do not cache, false => caching may or not occur
*/
public boolean getNeverCache();
/**
* Determine if Web Script content is for public caching
*
* @return true => content is public, so allow cache
*/
public boolean getIsPublic();
/**
* Must cache re-validate to ensure content is fresh
*
* @return true => must re-validate
*/
public boolean getMustRevalidate();
}
/**
* Enumeration of ways to specify format
*/
public enum FormatStyle
{
any, // any of the following styles
extension, // /a/b/c.x
argument // /a/b/c?format=x
}
/**
* Gets the root path of the store of this web script
*
* @return root path of store
*/
public String getStorePath();
/**
* Gets the path within the store of this web script
*
* @return path within store
*/
public String getScriptPath();
/**
* Gets the path of the description xml document for this web script
*
* @return document location (path)
*/
public String getDescPath();
/**
* Gets the description xml document for this web script
*
* @return source document
*/
public InputStream getDescDocument()
throws IOException;
/**
* Gets the id of this service
*
* @return service id
*/
public String getId();
/**
* Gets the short name of this service
*
* @return service short name
*/
public String getShortName();
/**
* Gets the description of this service
*/
public String getDescription();
/**
* Gets the required authentication level for execution of this service
*
* @return the required authentication level
*/
public RequiredAuthentication getRequiredAuthentication();
/**
* Gets the required transaction level
*
* @return the required transaction level
*/
public RequiredTransaction getRequiredTransaction();
/**
* Gets the required level of caching
* @return
*/
public RequiredCache getRequiredCache();
/**
* Gets the HTTP method this service is bound to
*
* @return HTTP method
*/
public String getMethod();
/**
* Gets the URIs this service supports
*
* @return array of URIs in order specified in service description document
*/
public String[] getURIs();
/**
* Gets the style of Format discriminator supported by this web script
*
* @return format style
*/
public FormatStyle getFormatStyle();
/**
* Gets the default response format
*
* Note: the default response format is the first listed in the service
* description document
*
* @return default response format (or null, if format not known until run-time)
*/
public String getDefaultFormat();
}