/*
* Created on Dec 6, 2004
*/
package com.openedit.page;
import java.util.Iterator;
import com.openedit.OpenEditRuntimeException;
import com.openedit.config.Configuration;
import com.openedit.config.XMLConfiguration;
/**
* Basic store for an action
*/
public class PageAction
{
protected String fieldActionName;
protected String fieldMethodName;
protected String fieldModuleName;
protected boolean fieldIncludesAll = false;
protected String fieldPath;
protected Configuration fieldConfig;
public PageAction()
{
}
public PageAction( String inActionName )
{
fieldActionName = inActionName;
int dotIndex = getActionName().indexOf('.');
if (dotIndex == -1)
{
throw new OpenEditRuntimeException("Page action " + getActionName() + " not found, check format, e.g. \"ModuleName.method\" ");
}
fieldModuleName = getActionName().substring( 0, dotIndex );
fieldMethodName = getActionName().substring( dotIndex + 1 );
}
public String getMethodName()
{
return fieldMethodName;
}
public void setMethodName( String actionName )
{
fieldMethodName = actionName;
}
public Configuration getConfig()
{
if( fieldConfig == null)
{
fieldConfig = new XMLConfiguration();
}
return fieldConfig;
}
public void setConfig( Configuration element )
{
fieldConfig = element;
}
public String getModuleName()
{
return fieldModuleName;
}
public void setModuleName( String moduleName )
{
fieldModuleName = moduleName;
}
public String getActionName()
{
return fieldActionName;
}
public String toString()
{
return getActionName();
}
/**
* @param inString
* @return
*/
public String getChildValue(String inString)
{
if ( getConfig() == null)
{
return null;
}
return getConfig().getChildValue(inString);
}
public String getProperty(String inName)
{
String val = getConfig().getAttribute(inName);
if( val != null)
{
return val;
}
for (Iterator iterator = getConfig().getChildIterator("property"); iterator.hasNext();)
{
Configuration config = (Configuration) iterator.next();
if( inName.equals(config.getAttribute("name")) )
{
return config.getValue();
}
}
return null;
}
public void setProperty(String inId, String inValue)
{
getConfig().setAttribute(inId, inValue);
}
public boolean isIncludesAll()
{
return fieldIncludesAll;
}
public void setIncludesAll(boolean inIncludesAll)
{
fieldIncludesAll = inIncludesAll;
}
public String getPath()
{
return fieldPath;
}
public void setPath(String inPath)
{
fieldPath = inPath;
}
}