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.asSyntax;
 
 
 import java.util.Map;
 
A rule is a Literal (head) with a body, as in "a :- b & c".

Navassoc:
- body - LogicalFormula
 
 public class Rule extends LiteralImpl {
 
     private static final long serialVersionUID = 1L;
     private static Logger logger = Logger.getLogger(Rule.class.getName());
 
     private LogicalFormula body   = null;
 
     public Rule(Literal headLogicalFormula body) {
         super(head);
         if (head.isRule()) {
             .log(.,"The rule head ("+head+") is a rule!"new Exception());
         } else if (isInternalAction()) {
             .log(.,"The rule head ("+head+") can not be an internal action!"new Exception());
         } else if (head ==  || head == ) {
             .log(.,"The rule head ("+head+") can not be a true or false!"new Exception());
         }
         this. = body;
     }
 
     public Rule(Rule rUnifier u) {
         super(r,u);
          = (LogicalFormula)r.body.capply(u);
          = null;
     }
     
     
     @Override
     public boolean isRule() {
         return true;
     }
 
     @Override
     public boolean equals(Object o) {
         if (o != null && o instanceof Rule) {
             Rule r = (Ruleo;
             return super.equals(o) && .equals(r.body);
         } 
         return false;
     }
 
     @Override
     protected int calcHashCode() {
         return super.calcHashCode() + .hashCode();
     }
     
     public LogicalFormula getBody() {
         return ;
     }
     
     @Override
     public Literal makeVarsAnnon(Unifier un) {
         if ( instanceof Literal)
             ((Literal)).makeVarsAnnon(un);
         return super.makeVarsAnnon(un);
     }
     
     @Override
     public Term capply(Unifier u) {
         return new Rule(this,u);
     }
    
    public Rule clone() {
        Rule r = new Rule((Literal)super.clone(), (LogicalFormula).clone());
        r.predicateIndicatorCache = null;
        r.resetHashCodeCache();
        return r
    }
    
    public Literal headClone() {
        return (Literal)super.clone();
    }
    
    public Literal headCApply(Unifier u) {
        return (Literal)super.capply(u);
    }
    
    public String toString() {
        return super.toString() + " :- " + ;
    }
    @Override
    public boolean hasVar(VarTerm tUnifier u) {
        if (super.hasVar(tu)) return true;
        return .hasVar(tu);
    }
    
    public void countVars(Map<VarTermIntegerc) {
        super.countVars(c);
        .countVars(c);
    }

    
get as XML
    @Override
    public Element getAsDOM(Document document) {
        Element u = (Elementdocument.createElement("rule");
        Element h = (Elementdocument.createElement("head");
        h.appendChild(super.getAsDOM(document));
        
        Element b = (Elementdocument.createElement("context");
        b.appendChild(.getAsDOM(document));
        
        u.appendChild(h);
        u.appendChild(b);
        return u;
    }
New to GrepCode? Check out our FAQ X