Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  //----------------------------------------------------------------------------
  // Copyright (C) 2003  Rafael H. Bordini, Jomi F. Hubner, et al.
  // 
  // This library is free software; you can redistribute it and/or
  // modify it under the terms of the GNU Lesser General Public
  // License as published by the Free Software Foundation; either
  // version 2.1 of the License, or (at your option) any later version.
  // 
  // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 // Lesser General Public License for more details.
 // 
 // You should have received a copy of the GNU Lesser General Public
 // License along with this library; if not, write to the Free Software
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 // 
 // To contact the authors:
 // http://www.inf.ufrgs.br/~bordini
 // http://www.das.ufsc.br/~jomi
 //
 //----------------------------------------------------------------------------
 
 
 package jason.asSemantics;
 
 
 
 
 public class IntendedMeans implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
     protected Unifier  unif = null;
     protected PlanBody planBody;
     protected Plan     plan;
     private   Trigger  trigger// the trigger which created this IM
     
     protected Unifier  renamedVars = null;
         
     public IntendedMeans(Option optTrigger te) {
              = opt.getPlan();
          = .getBody(); 
              = opt.getUnifier();
         
         if (te == null) {
              = .getTrigger().capply();
         } else {
              = te.capply();
         }
     }
     
     // used by clone
     private IntendedMeans() {  }

    
removes the current action of the IM and returns the term of the body
 
     public Term removeCurrentStep() {
         if (isFinished()) {
             return null;
         } else {
             Term r = .getBodyTerm();
              = .getBodyNext();
             return r;
         }
     }
 
     public PlanBody getCurrentStep() {
         return ;
     }
 
     // used by if/for/loop internal actions
     public PlanBody insertAsNextStep(PlanBody pb2add) {
          = new PlanBodyImpl(.getBodyType(), .getBodyTerm());
         .setBodyNext(pb2add);
         return 
     }
     
     public Plan getPlan() {
         return ;
     }
     
     public void setUnif(Unifier unif) {
         this. = unif;
     }
     
     public Unifier getUnif() {
         return ;
     }

    
gets the trigger event that caused the creation of this IM
 
    public Trigger getTrigger() {
        return ;
    }
    public void setTrigger(Trigger tr) {
         = tr;
    }
    public boolean isAtomic() {
        return  != null && .isAtomic();
    }
    
    public boolean isFinished() {
        return  == null || .isEmptyBody();
    }
    
    public boolean isGoalAdd() {
        return .isAddition() && .isGoal();
    }
    public Object clone() {
        IntendedMeans c = new IntendedMeans();
        c.unif     = this..clone();
        if (this. != null)
            c.planBody = this..clonePB();
        c.trigger  = this..clone(); 
        c.plan     = this.;
        return c;
    }
    
    public String toString() {
        return  + " <- ... " +  + " / " + ;
    }
    public Term getAsTerm() {
        if ( instanceof PlanBodyImpl ||  == null) {
            // TODO: use same replacements (Var -> Unnamed var) for the plan and for the unifier
            PlanBody bd;
            if ( == null) { // (NIDE) in case we must convert empty plan to Term
                bd = new PlanBodyImpl();
            } else {
                bd = (PlanBody)((PlanBodyImpl).clone()).makeVarsAnnon();
            }
            bd.setAsBodyTerm(true);
            return ASSyntax.createStructure("im", ASSyntax.createString(.getLabel()), bd.getAsTerm());
        } else {
            return ASSyntax.createAtom("noimplementedforclass"+.getClass().getSimpleName());
        }
    }
    
    
get as XML
    public Element getAsDOM(Document document) {
        Element eim = (Elementdocument.createElement("intended-means");
        eim.setAttribute("trigger".toString());
        if ( != null) {
            eim.appendChild(.getAsDOM(document));
        }
        if ( != null && .size() > 0) {
            eim.appendChild(.getAsDOM(document));
        }
        return eim;
    }
New to GrepCode? Check out our FAQ X