/*
* Created on Sep 2, 2005
*
*/
package plugin.lsttokens;
import pcgen.cdom.base.ConcretePrereqObject;
import pcgen.cdom.base.Constants;
import pcgen.core.prereq.Prerequisite;
import pcgen.rules.context.Changes;
import pcgen.rules.context.LoadContext;
import pcgen.rules.persistence.token.AbstractToken;
import pcgen.rules.persistence.token.CDOMPrimaryToken;
import pcgen.rules.persistence.token.ParseResult;
/**
* @author djones4
*
*/
public class PreLst extends AbstractToken implements
CDOMPrimaryToken<ConcretePrereqObject>
{
@Override
public String getTokenName()
{
return "PRE";
}
@Override
public ParseResult parseToken(LoadContext context, ConcretePrereqObject pcc,
String value)
{
if (Constants.LST_DOT_CLEAR.equals(value))
{
context.getObjectContext().clearPrerequisiteList(pcc);
return ParseResult.SUCCESS;
}
return ParseResult.INTERNAL_ERROR;
}
@Override
public String[] unparse(LoadContext context, ConcretePrereqObject pcc)
{
Changes<Prerequisite> changes = context.getObjectContext().getPrerequisiteChanges(pcc);
if (changes == null || !changes.includesGlobalClear())
{
// indicates no Token
return null;
}
return new String[] { Constants.LST_DOT_CLEAR };
}
@Override
public Class<ConcretePrereqObject> getTokenClass()
{
return ConcretePrereqObject.class;
}
}