public virtual void visit(Structure obj) { visit(obj, true); }
public virtual void visit(Structure obj, bool visitSubNodes) { visit ((Type) obj, false); if (visitSubNodes){ IXmlBBase[] Subs = acceptor.subElements((IXmlBBase)obj); if (Subs != null){ for (int i=0; i<Subs.Length; i++) { dispatch(Subs[i], true); } // If } // If } }
public void copyTo(Structure other) { base.copyTo(other); other.aElements = aElements; other.aProcedures = aProcedures; other.aStateMachines = aStateMachines; other.aRules = aRules; other.aInterfaces = aInterfaces; other.aIsAbstract = aIsAbstract; }
public void insertStructures(int idx, Structure el,Lock aLock) { __setDirty(true); allStructures().Insert (idx, el); NotifyControllers(aLock); }
public void appendStructures(Lock aLock,Structure el) { __setDirty(true); el.__setDirty(true); allStructures().Add(el); acceptor.connectSon (this, el); NotifyControllers(aLock); }
public void copyTo(Structure other) { base.copyTo(other); other.aElements = aElements; other.aProcedures = aProcedures; other.aStateMachines = aStateMachines; other.aRules = aRules; }
public override void visit(Structure obj, bool visitSubNodes) { Types.Structure structure = obj as Types.Structure; if (structure != null) { foreach (Types.StructureElement element in structure.Elements) { Types.Structure elementType = element.Type as Types.Structure; if (elementType != null) { foreach (Types.StructureElement subElement in elementType.Elements) { if (!ValidMode(element.Mode, subElement.Mode)) { element.AddWarning("Invalid mode for " + subElement.Name); } } } if (element.Type != null && element.Type.IsAbstract) { element.AddError("Instantiation of abstract types is forbidden"); } if (!Utils.Util.isEmpty(element.getDefault())) { checkExpression(element, element.getDefault()); } } foreach (Types.Structure implementedStructure in structure.Interfaces) { foreach (Types.StructureElement implementedElement in implementedStructure.Elements) { bool elementFound = false; foreach (Types.StructureElement element in structure.Elements) { if (element.Name.Equals(implementedElement.Name)) { elementFound = true; if (element.Type != implementedElement.Type) { structure.AddError("The type of element " + element.Name + " (" + element.TypeName + ") does not correspond to the type of the implemented element (" + implementedElement.TypeName + ")"); } break; } } if (elementFound == false) { structure.AddError("Inherited member " + implementedElement.Name + " from interface " + implementedStructure.Name + " is not implemented"); } } } } checkSubElementNames(structure); base.visit(obj, visitSubNodes); }