package eu.aniketos.pdplib; import org.jdom.Element; import eu.aniketos.spec.BConst; import eu.aniketos.spec.BExp; import eu.aniketos.spec.BGuard; import eu.aniketos.spec.BIdentifier; import eu.aniketos.spec.BInvocation; import eu.aniketos.spec.BOp; import eu.aniketos.spec.Exp; import eu.aniketos.spec.AExp; import eu.aniketos.spec.IGuard; import eu.aniketos.spec.SGuard; import security.iit.pdp.EnvException; import security.iit.pdp.VarEnvironment; import eu.aniketos.spec.IOp; import eu.aniketos.spec.IConst; import eu.aniketos.spec.AInvocation; import eu.aniketos.spec.AIdentifier; public abstract class AExpPDP extends AExp { /* public abstract Element toElement(); public static AExp generateAExp(Element e) { return Exp.generateAExp(e); }*/ public static AExpPDP generateAExpPDP(AExp aexp) { if(aexp instanceof IOp){ return new IExpOpPDP(aexp); } if(aexp instanceof IConst){ return new IExpConstPDP(aexp); } if(aexp instanceof AInvocation){ return new IExpInvocationPDP(aexp); } if(aexp instanceof AIdentifier){ return new IExpIdentifierPDP(aexp); } else return null; } /** * evaluate the aritmetical expression * @param env: the Environment * @return the evaluation * @throws EnvException */ public abstract int eval(VarEnvironment env) throws EnvException; }