aminePlatform.engines.prologPlusCG.bindingContext
Class PPCGBindingContext

java.lang.Object
  extended byaminePlatform.engines.prologPlusCG.bindingContext.PPCGBindingContext
All Implemented Interfaces:
AmineConstants, BindingContext

public class PPCGBindingContext
extends java.lang.Object
implements BindingContext, AmineConstants

Title: PPCGBindingContext

Description: PPCGBindingContext implements the binding resolution process for Prolog+CG. Methods getValue() and setValue() are implemented according to the use of the unification stack.

Copyright: Copyright (c) Adil KABBAJ, 2004-2009


Nested Class Summary
(package private)  class PPCGBindingContext.UnifConstraint
          Title: UnifConstraint Description: UnifConstraint describes a contraint on variables/values.
 
Field Summary
(package private)  Lexicon lexicon
           
(package private)  java.util.HashMap ppcgPrgs
           
(package private)  Resolution resolution
           
(package private)  UnificationStack unificationStack
           
 
Fields inherited from interface aminePlatform.util.AmineConstants
ANALOGY, B_ASSIGN, B_DSPLY_WT_DELAY, B_DSPLY_WTT_DELAY, B_TRIGGER, B_WTT_DSPLY, BLOCK_BACKWARD_PROPAGATION, BLOCK_FORWARD_PROPAGATION, CANON, CGIF, CGRAPHIC, CHECK_PRECONDITIONS, COMPARE, COMPOSED_GOAL, CONCEPT_TYPE_IDENT, CONTEXT, COVERED_BY, CPLTE_CONTRACT, DEFINITION, EQ_OR_MORE_SPCFQ, EQUAL, EXPAND, FALSE_FOCUS_LIST, FUNCTIONAL, GENERALISE, GENERALIZE, HAVE_AN_INTERSECTION, ID_ADD, ID_DIV, ID_EQ, ID_INF, ID_IS, ID_MESSAGE, ID_MUL, ID_NOT, ID_NULL, ID_OPER_AND, ID_OPER_OR, ID_SUB, ID_SUP, IN_ACTIVATION, IN_MODE, IN_MODE2, INDIVIDUAL, INDIVIDUAL_IDENT, INTEGRATED, IS_CANONIC, KEY_GLOBAL_RULE, LC_ADD, LC_AMINE_BOOLEAN, LC_AMINE_DOUBLE, LC_AMINE_INTEGER, LC_AND, LC_BOOLEAN, LC_CG, LC_CLOSE_BRKT, LC_CLOSE_PARENT, LC_CLOSE_SET, LC_COMMA, LC_COMMA_SEMI, LC_CONCEPT, LC_CONSTRUCTOR, LC_CS, LC_CUT, LC_DIFF, LC_DIV, LC_DOUBLE, LC_DSBL_BKWRD_PRPGTN, LC_DSBL_FRWRD_PRPGTN, LC_EOF, LC_EQ, LC_FOUR_POINTS, LC_IDENTIFIER, LC_IF, LC_INF, LC_INTEGER, LC_INTEROG, LC_IS, LC_JAVA_OBJECT, LC_LEFT_ARROW, LC_LIST, LC_NULL, LC_OPEN_BRKT, LC_OPEN_PARENT, LC_OPEN_SET, LC_OPER_AND, LC_OPER_OR, LC_POINT, LC_RELATION, LC_RGHT_ARROW, LC_SEMI_COMMA, LC_SET, LC_STAR, LC_STATE, LC_STRING, LC_SUB, LC_SUP, LC_TERM, LC_TWO_POINTS, LC_VAR_LIST_CONSTRUCTOR, LC_VARIABLE, LF, MAXIMAL_JOIN, MORE_GENERAL, MORE_SPECIFIC, NOTHING_TO_INTEGRATE, OPERS_WITH_RSLT, OUT_MODE, OUT_MODE2, PARTIAL_CONTRACT, PARTIAL_SUBSUME, PRJCT_OPERS, PROJECT, READ, READ_SENTENCE, RELATION_TYPE_IDENT, S_AND, S_BOOLEAN, S_CG, S_CLOSE_BRKT, S_CLOSE_PARENT, S_CLOSE_SET, S_COMMA, S_CONCEPT, S_CONSTRUCTOR, S_CUT, S_DIFF, S_DOUBLE, S_EOF, S_EQUAL, S_EXPAND, S_FALSE, S_FOUR_POINTS, S_GENERALISE, S_GENERALIZE, S_IDENTIFIER, S_IF, S_INTEGER, S_INTEROG, S_IS, S_IS_CANONIC, S_LEFT_ARROW, S_LIST, S_MAXIMAL_JOIN, S_OPEN_BRKT, S_OPEN_PARENT, S_OPEN_SET, S_POINT, S_RGHT_ARROW, S_SEMI_COMMA, S_SOURCE, S_SPECIALIZE, S_STATE, S_STRING, S_SUBSUME, S_SUBSUME_WITH_RESULT, S_SUPER, S_TARGET, S_TERM, S_THIS, S_TRUE, S_TWO_POINTS, S_UNIFY, S_VARIABLE, SITUATION, SPECIALIZE, STEADY, SUBSUME, SUBSUME_WITH_RSLT, TRIGGER, UNCOMPARABLE, UNIFY, VAR_SUPER, WAIT_ASSIGNMENT, WAIT_END_OF_ASSIGNMENT, WAIT_PRECONDITIONS, WAIT_VALUE
 
Constructor Summary
PPCGBindingContext(Resolution resolution)
           
 
Method Summary
(package private)  void addValVarConstraint(java.lang.Object value, java.lang.Integer bindInfVal, Variable variable, java.lang.Integer bindInfVar)
           
(package private)  void addVarConstr(Variable variable, java.lang.Integer levelVariable, Variable variable2, java.lang.Integer levelVariable2)
           
(package private)  void addVarVarConstraint(Variable lftVar, java.lang.Integer lvlLftVar, Variable rghtVar, java.lang.Integer lvlRghtVar)
           
 void clearCGConstrs()
          clear the attribute cgConstrsArray
 void finalize()
           
 CGOperations getCGOperations()
           
 java.util.HashMap getSolution()
           
 ObjectWithBindInf getValue(java.lang.Object obj, java.lang.Object bindInf)
          get the value of the specified object obj according to its binding information.
 boolean isBoundVariable(java.lang.Object obj, java.lang.Object bindInf)
           
 boolean isFreeVariable(java.lang.Object obj, java.lang.Object bindInf)
           
 void removeCGUnifConstrs()
          remove the binding that occurred during unification of two CGs
 void setCGUnification(boolean state)
          Is the unification applies inside an (embedded) CG or not ?
 void setLexicon(Lexicon lex)
           
 void setValue(java.lang.Object obj1, java.lang.Object bindInfObj1, java.lang.Object obj2, java.lang.Object bindInfObj2)
          Add the constraint obj1 = obj2, taking into account their binding information.
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

lexicon

Lexicon lexicon

unificationStack

UnificationStack unificationStack

ppcgPrgs

java.util.HashMap ppcgPrgs

resolution

Resolution resolution
Constructor Detail

PPCGBindingContext

public PPCGBindingContext(Resolution resolution)
Method Detail

finalize

public void finalize()

setLexicon

public void setLexicon(Lexicon lex)

getCGOperations

public CGOperations getCGOperations()
Specified by:
getCGOperations in interface BindingContext

getValue

public ObjectWithBindInf getValue(java.lang.Object obj,
                                  java.lang.Object bindInf)
get the value of the specified object obj according to its binding information.

Specified by:
getValue in interface BindingContext
Parameters:
obj - An Object
bindInf - The binding information of obj
Returns:
the value (with its binding information) or null if obj has no associated value.

isFreeVariable

public boolean isFreeVariable(java.lang.Object obj,
                              java.lang.Object bindInf)
Specified by:
isFreeVariable in interface BindingContext

isBoundVariable

public boolean isBoundVariable(java.lang.Object obj,
                               java.lang.Object bindInf)
Specified by:
isBoundVariable in interface BindingContext

setValue

public void setValue(java.lang.Object obj1,
                     java.lang.Object bindInfObj1,
                     java.lang.Object obj2,
                     java.lang.Object bindInfObj2)
Add the constraint obj1 = obj2, taking into account their binding information.

Specified by:
setValue in interface BindingContext
Parameters:
obj1 - An Object
bindInfObj1 - binding information for obj1
obj2 - An Object
bindInfObj2 - binding information for obj1

addValVarConstraint

void addValVarConstraint(java.lang.Object value,
                         java.lang.Integer bindInfVal,
                         Variable variable,
                         java.lang.Integer bindInfVar)

addVarVarConstraint

void addVarVarConstraint(Variable lftVar,
                         java.lang.Integer lvlLftVar,
                         Variable rghtVar,
                         java.lang.Integer lvlRghtVar)

addVarConstr

void addVarConstr(Variable variable,
                  java.lang.Integer levelVariable,
                  Variable variable2,
                  java.lang.Integer levelVariable2)

setCGUnification

public void setCGUnification(boolean state)
Is the unification applies inside an (embedded) CG or not ?

Specified by:
setCGUnification in interface BindingContext
Parameters:
state -

clearCGConstrs

public void clearCGConstrs()
clear the attribute cgConstrsArray

Specified by:
clearCGConstrs in interface BindingContext

removeCGUnifConstrs

public void removeCGUnifConstrs()
Description copied from interface: BindingContext
remove the binding that occurred during unification of two CGs

Specified by:
removeCGUnifConstrs in interface BindingContext

getSolution

public java.util.HashMap getSolution()