/// <summary> /// Creates a structure element in the structure provided /// </summary> /// <param name="enclosing"></param> /// <param name="name"></param> /// <param name="type"></param> /// <returns></returns> protected StructureElement CreateStructureElement(Structure enclosing, string name, string type) { StructureElement retVal = (StructureElement)Factory.createStructureElement(); enclosing.appendElements(retVal); retVal.Name = name; retVal.TypeName = type; return(retVal); }
/// <summary> /// Creates a structure element in the structure provided /// </summary> /// <param name="enclosing"></param> /// <param name="name"></param> /// <param name="type"></param> /// <returns></returns> protected StructureElement CreateStructureElement(Structure enclosing, string name, string type) { StructureElement retVal = (StructureElement) Factory.createStructureElement(); enclosing.appendElements(retVal); retVal.Name = name; retVal.TypeName = type; return retVal; }
/// <summary> /// Appends the corresponding field in the structure, according to its type /// </summary> /// <param name="obj">The object which represents the field</param> /// <param name="structure">The structure which should contain the field</param> private void AppendField(object obj, DataDictionary.Types.Structure structure, string defaultValue) { if (obj is Field) { Field field = obj as Field; DataDictionary.Types.StructureElement element = (DataDictionary.Types.StructureElement)DataDictionary.Generated.acceptor.getFactory().createStructureElement(); element.Name = field.name; element.TypeName = EFSType(field.type_definition); if (element.TypeName == null) { element.TypeName = getTypeName(field.type); } element.setMode(DataDictionary.Generated.acceptor.VariableModeEnumType.aInOut); if (field.name.Equals("NID_PACKET")) { element.Default = defaultValue; } else { element.Default = DefaultValue(field.type_definition); } structure.appendElements(element); } else if (obj is LoopFieldSequence) { LoopFieldSequence loopFieldSequence = obj as LoopFieldSequence; // Create a structure for the elements enclosed in the loop field DataDictionary.Types.Structure subStructure = (DataDictionary.Types.Structure)DataDictionary.Generated.acceptor.getFactory().createStructure(); subStructure.Name = "SubStructure" + numberOfSubStructures; numberOfSubStructures += 1; structure.NameSpace.appendStructures(subStructure); RenameDuplicates(loopFieldSequence.Items); foreach (object obj2 in loopFieldSequence.Items) { AppendField(obj2, subStructure, ""); } // Create the collection type for the sequence DataDictionary.Types.Collection collection = (DataDictionary.Types.Collection)DataDictionary.Generated.acceptor.getFactory().createCollection(); collection.Name = "Collection" + numberOfCollections; collection.setTypeName(subStructure.Name); collection.setDefault("[]"); structure.NameSpace.appendCollections(collection); // Create the field in the strcuture which shall hold the collection DataDictionary.Types.StructureElement element = (DataDictionary.Types.StructureElement)DataDictionary.Generated.acceptor.getFactory().createStructureElement(); element.Name = "Sequence" + numberOfCollections; element.TypeName = collection.Name; element.setMode(DataDictionary.Generated.acceptor.VariableModeEnumType.aInOut); structure.appendElements(element); numberOfCollections += 1; } else if (obj is ConditionalFieldSequence) { ConditionalFieldSequence conditionalFieldSequence = obj as ConditionalFieldSequence; RenameDuplicates(conditionalFieldSequence.content); foreach (object obj2 in conditionalFieldSequence.content) { AppendField(obj2, structure, ""); } } else if (obj is FieldGroupReference) { FieldGroupReference fieldGroupReference = obj as FieldGroupReference; DataDictionary.Types.StructureElement element = (DataDictionary.Types.StructureElement)DataDictionary.Generated.acceptor.getFactory().createStructureElement(); element.Name = fieldGroupReference.name; if (Utils.Utils.isEmpty(element.Name)) { string[] names = [email protected]('/'); element.Name = names[names.Length - 1]; } element.setMode(DataDictionary.Generated.acceptor.VariableModeEnumType.aInOut); element.TypeName = getTypeName(fieldGroupReference.@ref) + ".Message"; element.Default = "EMPTY"; structure.appendElements(element); } else if (obj is Choice) { Choice choice = obj as Choice; RenameDuplicates(choice.field_group_reference); foreach (FieldGroupReference obj2 in choice.field_group_reference) { AppendField(obj2, structure, ""); } } }