public void AddReferencableObject(String name, ProcessBlockImpl scope, Type type, Object referencableObject) { ReferencableObject referenceType = new ReferencableObject(scope, type); IDictionary referencables = (IDictionary)_referencableObjects[referenceType]; if (referencables == null) { referencables = new Hashtable(); _referencableObjects[referenceType] = referencables; } referencables[name] = referencableObject; }
public override bool Equals(object obj) { if (this == obj) { return(true); } ReferencableObject refObject = obj as ReferencableObject; if (refObject == null) { return(false); } return(refObject.Type.Equals(this.Type) && refObject.Scope.Equals(this.Scope)); }
private Object FindInScope(UnresolvedReference unresolvedReference, ProcessBlockImpl scope) { Object referencedObject = null; if (scope != null) { ReferencableObject referenceType = new ReferencableObject(scope, unresolvedReference.DestinationType); IDictionary referencables = (IDictionary)_referencableObjects[referenceType]; if ((referencables != null) && (referencables.Contains(unresolvedReference.DestinationName))) { referencedObject = referencables[unresolvedReference.DestinationName]; } else { referencedObject = FindInScope(unresolvedReference, scope.ParentBlock); } } return(referencedObject); }
private Object FindInScope(UnresolvedReference unresolvedReference, ProcessBlockImpl scope) { Object referencedObject = null; if (scope != null) { ReferencableObject referenceType = new ReferencableObject(scope, unresolvedReference.DestinationType); IDictionary referencables = (IDictionary) _referencableObjects[referenceType]; if ((referencables != null) && (referencables.Contains(unresolvedReference.DestinationName))) { referencedObject = referencables[unresolvedReference.DestinationName]; } else { referencedObject = FindInScope(unresolvedReference, scope.ParentBlock); } } return referencedObject; }
public void AddReferencableObject(String name, ProcessBlockImpl scope, Type type, Object referencableObject) { ReferencableObject referenceType = new ReferencableObject(scope, type); IDictionary referencables = (IDictionary) _referencableObjects[referenceType]; if (referencables == null) { referencables = new Hashtable(); _referencableObjects[referenceType] = referencables; } referencables[name] = referencableObject; }