java.lang.Object
de.grogra.graph.impl.Edge
de.grogra.graph.impl.Node
de.grogra.xl.expr.Expression
de.grogra.xl.expr.EvalExpression
de.grogra.xl.expr.GetPattern
- All Implemented Interfaces:
Manageable,PersistenceCapable,Shareable,TypeId,UserFields,XObject,Map,Completable,ExpressionFactory,LocalAccess,ValueObserver,Serializable,Cloneable
First I though I could remove the local/ var declaration for the pattern serialization
(as the pattern is not run directly but used in a query - which can (and need to) declare
the q variables for this pattern. But then, subroutine (used in transitive patterns for
instance) would not work. Thus, back to serializing the pattern as if it is a query.
Pattern are stored almost exactly as QUERY, They simply are initialized in the CCLass
earlier to ensure that they are init when the queries are initialized. This do not
ensure that custom pattern are init when used in other custom patterns. Thus, nesting
custom patterns is disabled.
It the order of init, or a lazy init is added, it would enables the nesting of custom
patterns.
In the compound pattern collecting, there should not be issue to nest patterns.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class de.grogra.graph.impl.Node
Node.AccessorBridge, Node.FieldAttributeAccessor, Node.NType -
Field Summary
Fields inherited from class de.grogra.xl.expr.Expression
$TYPE, aval, aval$FIELD, dval, dval$FIELD, etype, EXPR_0, I18N, lval, lval$FIELD, USED_BITS, VALID, valid$FIELDFields inherited from class de.grogra.graph.impl.Node
ADDITIONAL_FIELDS, bits, DELETED, EXPLICIT_EXTENT_INDEX, explicitExtentIndex$FIELD, EXTENT_BIT, EXTENT_MASK, extentIndex$FIELD, extentTail$FIELD, HAS_OBSERVERS, IMPORT_NODE_EXTENT_INDEX, IS_INTERPRETIVE, isInterpretive$FIELD, LAST_EXTENT_INDEX, LAST_VISIBLE_EXTENT_INDEX, layer$FIELD, MARK, mark$FIELD, MAX_RESOLUTION, MIME_TYPE, MIN_RESOLUTION, MIN_UNUSED_SPECIAL_OF_SOURCE, MIN_UNUSED_SPECIAL_OF_TARGET, name$FIELD, RESOLUTION_BIT, RESOLUTION_MASK, resolution$FIELD, TYPE_EXTENT_INDEXFields inherited from interface de.grogra.xl.expr.LocalAccess
ASSIGNS_LOCAL, POST_ASSIGNMENT, POST_USE, PRE_1_ASSIGNMENT, PRE_2_ASSIGNMENT, PRE_ASSIGNMENT, PRE_USE, USES_LOCALFields inherited from interface de.grogra.util.Map
DEFAULT_VALUE, EMPTY_MAPFields inherited from interface de.grogra.reflect.TypeId
A_VALUE, ABSTRACT_PRIMITIVE, BOOLEAN, BOOLEAN_MASK, BYTE, BYTE_MASK, CHAR, CHAR_MASK, D_VALUE, DOUBLE, DOUBLE_MASK, F_VALUE, FLOAT, FLOAT_MASK, FLOATING_POINT_MASK, I_VALUE, INT, INT_ASSIGNABLE, INT_MASK, INTEGRAL_MASK, L_VALUE, LONG, LONG_MASK, MAX_PRIMITIVE, MIN_PRIMITIVE, NUMERIC_MASK, NUMERIC_NONCHAR_MASK, OBJECT, OBJECT_MASK, PRIMITIVE_MASK, SHORT, SHORT_MASK, TYPE_COUNT, VOID, VOID_MASK -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidcomplete(MethodScope scope) protected ObjectintgetAccessType(int index) intgetLocal(int index) intvoidprotected voidwriteImpl(BytecodeWriter out, boolean discard) Methods inherited from class de.grogra.xl.expr.Expression
add, allowsIteration, cast, checkExpressionCount, checkSetType, clone, compile, compile, createConst, createExpression, createMaxConst, createMinConst, discards, evaluateAsObject, evaluateAsVoid, evaluateBoolean, evaluateBoolean, evaluateBooleanImpl, evaluateByte, evaluateByte, evaluateByteImpl, evaluateChar, evaluateChar, evaluateCharImpl, evaluateDouble, evaluateDouble, evaluateDoubleImpl, evaluateFloat, evaluateFloat, evaluateFloatImpl, evaluateInt, evaluateInt, evaluateIntImpl, evaluateLong, evaluateLong, evaluateLongImpl, evaluateObject, evaluateObject, evaluateRet, evaluateShort, evaluateShort, evaluateShortImpl, evaluatesWithoutSideeffect, evaluateVoidImpl, fireValueChanged, getExpression, getExpression, getExpression, getExpressionCount, getFirstExpression, getLastExpression, getLeastCommonAncestor, getNextExpression, getNTypeImpl, getObjectExpression, getObjectExpression, getPromotedType, getSupportedTypes, getType, getTypeLoader, hasType, hasType, implicitConversion, isConditional, isPrimitiveOrStringConstant, isRequired, link, linkGraph, needsEmptyOperandStackForFinally, newInstance, opcode, opcode, paramString, promote, push, receiveChildren, setNextSibling, setType, substitute, toConst, toConstImpl, toString, unboxingConversion, unlinkTree, valueChanged, write, writeChildren, writeConditional, writeConditional, writeFinally, writeOperatorMethods inherited from class de.grogra.graph.impl.Node
addEdgeBitsTo, addReference, appendBranchNode, appendBranchNode, appendReferencesTo, clone, cloneGraph, dump, dumpTree, dup, dup, dupFrom, dupnew, dupUnmanagedFields, edgeChanged, fieldModified, findAdjacent, findRefinementType, get, getAccessor, getAccessor, getAttributes, getAxisParent, getBoolean, getBranch, getBranchLength, getBranchNode, getBranchTail, getByte, getChar, getCommonAncestor, getCurrentGraphState, getDirectChildCount, getDouble, getEdgeAttributeAccessor, getEdgeAttributes, getEdgeBitsTo, getEdgeTo, getExtentIndex, getFirst, getFirstEdge, getFloat, getGraph, getId, getIgnored, getIndex, getInstantiator, getInt, getLayer, getLong, getManageableType, getName, getNeighbor, getNext, getNType, getObject, getOrCreateEdgeTo, getOrNull, getPersistenceManager, getPredecessor, getProvider, getResolution, getShort, getSource, getStamp, getSuccessor, getSymbol, getSymbolColor, getTarget, getTransaction, getUserField, getUserFieldCount, getXClass, getXData, hasName, initProvider, initXClass, insertBranchNode, insertBranchNode, instantiateGraph, isAncestorOf, isDirection, isEncoarseOf, isExplicitExtentIndex, isManagingInstance, isMarked, isRoot, isSource, isTarget, manageableReadResolve, manageableWriteReplace, removeAll, removeEdgeBitsTo, removeFromChain, removeFromChain, removeReference, setBranch, setBranch, setExplicitExtentIndex, setExtentIndex, setGraphForDeserialization, setIgnored, setLayer, setMark, setName, setResolution, setSuccessor, setSuccessor, specialEdgeAdded, specialEdgeRefModified, specialEdgeRemoved, writeReplaceMethods inherited from class de.grogra.graph.impl.Edge
addEdgeBits, getBitMark, getEdgeBits, getEdgeKeys, getObjectMark, getSpecialEdgeDescriptor, parseEdgeKeys, remove, removeEdgeBits, setBitMark, setEdgeBits, setObjectMark, testEdgeBitsMethods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface de.grogra.persistence.PersistenceCapable
getBitMark, getObjectMark, setBitMark, setObjectMark
-
Constructor Details
-
GetPattern
-
-
Method Details
-
getLocalCount
public int getLocalCount()- Specified by:
getLocalCountin interfaceLocalAccess
-
getAccessType
public int getAccessType(int index) - Specified by:
getAccessTypein interfaceLocalAccess
-
getLocal
- Specified by:
getLocalin interfaceLocalAccess
-
setLocal
- Specified by:
setLocalin interfaceLocalAccess
-
complete
- Specified by:
completein interfaceCompletable
-
getPattern
-
evaluateObjectImpl
- Overrides:
evaluateObjectImplin classExpression
-
writeImpl
- Overrides:
writeImplin classExpression
-
getIndexOfLocal
-