package eu.aniketos.spec;
import java.util.Iterator;
import java.util.Vector;
import org.jdom.Element;
/**
* Represents the <after> tag of a conspec policy
* @author Luca
*
* After - defines that the check must be performed AFTER execution of the event
*/
public class After extends When {
public Return ret;
public After(){
identifier=new Identifier();
parameters = new Vector<Parameter>();
}
/**
*@Artsiom: the constructor for manual initialising:
* r - Return of the event
* ident - identifier of the event
* paramas - parameters of the event.
*/
public After(Identifier ident, Vector<Parameter> params, Return r){
ret=r;
identifier = ident;
parameters= params;
}
/**
*@Artsiom: Create the class out of an xml element
*/
public After(Element e){
Iterator<Element> iter = e.getChildren().iterator();
identifier = new Identifier(iter.next());
parameters = new Vector<Parameter>();
ret = null;
while(iter.hasNext()){
Element next = iter.next();
if(next.getName().equals(Tag.parameter_tag)){
parameters.add(new Parameter(next));
} else if(next.getName().equals(Tag.return_tag)){
ret = new Return(next);
}
}
}
/**
* trasfrom it to a DOM element
*/
public Element toElement(){
Element e = new Element(Tag.after_tag);
e.addContent(identifier.toElement());
Iterator<Parameter> par_iter = parameters.iterator();
while(par_iter.hasNext()){
e.addContent(par_iter.next().toElement());
}
if(ret != null)
e.addContent(ret.toElement());
return e;
}
}