com.bea.p13n.rules.model
Class VariableBindingModel

java.lang.Object
  extended by com.bea.p13n.model.Model
      extended by com.bea.p13n.model.XmlObjectModel
          extended by com.bea.p13n.rules.model.ClauseModel
              extended by com.bea.p13n.rules.model.VariableBindingModel
All Implemented Interfaces
BoundVariableProvider, Serializable, Cloneable

public class VariableBindingModel
extends ClauseModel
implements BoundVariableProvider

A clause model representing a condition which binds a variable to a name.

See Also
Serialized Form

Nested Class Summary
static class VariableBindingModel.Recognizer
          An object which can recognize VariableBindingModels.
 
Nested classes/interfaces inherited from class com.bea.p13n.model.Model
Model.ChangeEvent, Model.ChangeListener, Model.ChangeSupport, Model.Debug
 
Field Summary
static String CLAUSE_TYPE
           
 
Fields inherited from class com.bea.p13n.rules.model.ClauseModel
clauseType
 
Fields inherited from class com.bea.p13n.model.XmlObjectModel
copyRootXmlObject, instanceUri, isComplete
 
Fields inherited from class com.bea.p13n.model.Model
childrenModels, docModel, parentModel, roChildrenModels
 
Constructor Summary
VariableBindingModel()
           
 
Method Summary
 void clearCachedData()
          Subclasses need to override this to clear out any cached data.
 org.apache.xmlbeans.XmlObject createNewXmlObject(String clauseType)
          Create a new, empty root object for the specified clauseType.
protected  boolean determineIsComplete()
          A VariableBindingModel is complete is it has a name and a type-alias, and it doesn't have the same name as another variable binding in the parent conditions.
 Collection<MethodCallModel.VariableArgument> getBoundVariables()
          Provide bound variable information for this clause.
 String getName()
          Get the variable name the object will be bond to.
 String getTypeAlias()
          Get the type-alias of the object this will bind to the name.
protected  com.bea.p13n.expression.schema.VariableDocument.Variable getVariable()
           
protected  com.bea.p13n.expression.schema.VariableBindingDocument.VariableBinding getVariableBinding()
           
 void setName(String name)
          Get the variable name the object will be bond to.
 void setTypeAlias(String typeAlias)
          Set the type-alias of the object this will bind to the name.
 void setXmlObject(String clauseType, org.apache.xmlbeans.XmlObject clause)
          Initialize this clause model with a type and a root object.
 
Methods inherited from class com.bea.p13n.rules.model.ClauseModel
addBranch, addLiteral, addMethod, addMethodOrOperator, addOperator, addVariable, addVariableBinding, copy, getClauseType, getContainingRuleModel, getCopyXmlObject, initializeNew, isInActions, isInConditions, isValidTypeAlias, isValidVariableName, makeSafeCopy, toString
 
Methods inherited from class com.bea.p13n.model.XmlObjectModel
checkElement, childAdded, childRemoved, fixQName, getApplicationInstanceUri, getChild, getDocument, getLocalName, getParent, getQName, getRootXmlObject, isComplete, isNil, preRemove, propertyChanged, removeAllChildren, removeChild, setApplicationInstanceUri, setIsComplete, setIsComplete, setParent, setRootXmlObject
 
Methods inherited from class com.bea.p13n.model.Model
addChangeListener, addChild, addChild, clone, doubleEquals, equals, getChildren, getDebug, getDebug, getDocument, getParent, longEquals, removeChangeListener, removeChild, removeChild, removeEmpties, setDocument
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

CLAUSE_TYPE

public static final String CLAUSE_TYPE
See Also
Constants Summary
Constructor Detail

VariableBindingModel

public VariableBindingModel()
Method Detail

setXmlObject

public void setXmlObject(String clauseType,
                         org.apache.xmlbeans.XmlObject clause)
                  throws IllegalArgumentException
Description copied from class: ClauseModel
Initialize this clause model with a type and a root object.

This will fire ChangeEvents for clauseType and rootXmlObject.

Subclasses should override to call super.setXmlObject() and do any type checking and verification.

It is not expected that ClauseModels are valid after a call to this method which throws an exception, although the caller could recall this method with valid data.

Overrides:
setXmlObject in class ClauseModel
Parameters
clauseType - the clause type of the clause.
clause - the root xml object of the clause.
Throws
IllegalArgumentException - thrown if the clause is not valid for the ClauseModel or clauseType.

createNewXmlObject

public org.apache.xmlbeans.XmlObject createNewXmlObject(String clauseType)
                                                 throws IllegalArgumentException
Description copied from class: ClauseModel
Create a new, empty root object for the specified clauseType.

Subclasses need to implement this to create an appropriately typed and filled root XmlObject which represents the ClauseModel. The return value from this needs to be accepted from ClauseModel.setXmlObject(java.lang.String, org.apache.xmlbeans.XmlObject) for the specified clauseType.

Specified by:
createNewXmlObject in class ClauseModel
Parameters
clauseType - the clause type of the clause.
Returns
a new, empty initialize root object.
Throws
IllegalArgumentException - thrown on an unsupproted clauseType.

clearCachedData

public void clearCachedData()
Description copied from class: XmlObjectModel
Subclasses need to override this to clear out any cached data. This will be automatically called when the root XmlObject or clauseType changes.

Specified by:
clearCachedData in class XmlObjectModel

determineIsComplete

protected boolean determineIsComplete()
A VariableBindingModel is complete is it has a name and a type-alias, and it doesn't have the same name as another variable binding in the parent conditions.

Overrides:
determineIsComplete in class XmlObjectModel
See Also
ClauseModel.isValidTypeAlias(String), ClauseModel.isValidVariableName(String)

getVariableBinding

protected com.bea.p13n.expression.schema.VariableBindingDocument.VariableBinding getVariableBinding()

getVariable

protected com.bea.p13n.expression.schema.VariableDocument.Variable getVariable()

getTypeAlias

public String getTypeAlias()
Get the type-alias of the object this will bind to the name. The type-alias is generally a fully-qualified class name.


setTypeAlias

public void setTypeAlias(String typeAlias)
Set the type-alias of the object this will bind to the name. The type-alias is generally a fully-qualified class name.


getName

public String getName()
Get the variable name the object will be bond to.


setName

public void setName(String name)
Get the variable name the object will be bond to.


getBoundVariables

public Collection<MethodCallModel.VariableArgument> getBoundVariables()
Provide bound variable information for this clause.

Specified by:
getBoundVariables in interface BoundVariableProvider
Returns
the bound variable information, null or empty for none.
See Also
getName(), getTypeAlias();


Copyright © 2011, Oracle. All rights reserved.