/*
* #!
* Ontopia Webed
* #-
* Copyright (C) 2001 - 2013 The Ontopia Project
* #-
* Licensed under the Apache 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.apache.org/licenses/LICENSE-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 net.ontopia.topicmaps.webed.core;
import java.util.Collection;
import java.util.List;
import net.ontopia.topicmaps.core.TMObjectIF;
/**
* PUBLIC: Contains the parameters of an action.
*/
public interface ActionParametersIF {
/**
* PUBLIC: Returns the value of the numbered parameter as a single
* object. If the parameter had multiple values only the first will
* be returned.
* @param ix The index of the parameter, counting from 0.
* @return The first object in the collection, or null if it is empty.
*/
public Object get(int ix);
/**
* PUBLIC: Returns the value of the numbered parameter as a
* collection containing all the parameter values.
* @param ix The index of the parameter, counting from 0.
* @return The entire collection.
*/
public Collection getCollection(int ix);
/**
* PUBLIC: Returns the number of parameters.
*
* @since 2.0
*/
public int getParameterCount();
/**
* PUBLIC: Returns the string value of the request parameter that
* matched this action. If there is more than one value only the
* first will be returned.
*/
public String getStringValue();
/**
* PUBLIC: Returns the string values of the request parameter that
* matched this action.
*/
public String[] getStringValues();
/**
* PUBLIC: Interprets the string value as a topic map object ID and
* returns that topic map object. Mainly used for selection lists
* and suchlike.
*/
public TMObjectIF getTMObjectValue();
/**
* PUBLIC: Interprets the string value as a set of topic map object
* IDs and returns a collection of topic map objects. Mainly used
* for selection lists and suchlike.
*/
public Collection getTMObjectValues();
/**
* PUBLIC: Returns the parameter value as a file, if it was given as
* a file. If not, returns null.
*
* @since 2.0
*/
public FileValueIF getFileValue();
/**
* PUBLIC: Returns true if the parameter value was 'on'; used with
* checkboxes to tell if the box was checked or not.
*
* @since 2.0
*/
public boolean getBooleanValue();
/**
* PUBLIC: Returns the web editor request that triggered this action.
*
* @since 2.0
*/
public WebEdRequestIF getRequest();
/**
* EXPERIMENTAL: Creates clones the ActionParametersIF object,
* overriding the parameter list to the given list. This is useful
* for calling existing actions from custom actions.
*
* @param newparams The new parameter list. Each element in the list
* must be a java.util.Collection containing the value(s) for the
* parameter at that position.
*
* @since 2.1
*/
public ActionParametersIF cloneAndOverride(List newparams);
}