/*!
* This program is free software; you can redistribute it and/or modify it under the
* terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software
* Foundation.
*
* You should have received a copy of the GNU Lesser General Public License along with this
* program; if not, you can obtain a copy at http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
* or from the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* 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.
*
* Copyright (c) 2002-2013 Pentaho Corporation.. All rights reserved.
*/
package org.pentaho.platform.api.engine;
import org.pentaho.platform.api.repository2.unified.RepositoryFilePermission;
import java.io.InputStream;
import java.util.Locale;
/**
* The ActionResource interface represents one resource in an ActionSequence. Resources are elements in a solution
* that exist outside of the action sequence document, such as images, icons, additional definition documents, etc.
*/
public interface IActionSequenceResource {
// TODO sbarkdull, may want to refactor this list of ints to enum when we move to java 5
/**
* The Resource is a solution file
*/
public static final int SOLUTION_FILE_RESOURCE = 1;
/**
* The resource is a URL
*/
public static final int URL_RESOURCE = 2;
/**
* The resource is an arbitrary file
*/
public static final int FILE_RESOURCE = 3;
/**
* The resource type is unknown
*/
public static final int UNKNOWN_RESOURCE = 4;
/**
* The resource type is an embedded string
*/
public static final int STRING = 5;
/**
* The resource type is embedded xml
*/
public static final int XML = 6;
/**
* Return the xml node name of the resource
*
* @return name of the resource
*/
public String getName();
/**
* Returns the mime type of the resource. Since resources are external, they can take on many different formats
* ie., text/xml, image/jpg, etc.
*
* @return the mime type of the resource
*/
public String getMimeType();
/**
* Get the type of external resource that this ActionResource is derived from.
* <p>
* Valid source types are SOLUTION_FILE_RESOURCE, URL_RESOURCE, FILE_RESOURCE and UNKNOWN_RESOURCE
*
* @return the resource source type
*/
public int getSourceType();
/**
* Depending on the resource source type, returns the address to the resource as a path or a URL.
*
* @return address of resource
*/
// public String getLocation();
public String getAddress();
public InputStream getInputStream( RepositoryFilePermission actionOperation, Locale locale );
public InputStream getInputStream( RepositoryFilePermission actionOperation );
}