private void addElementInArrayWithoutIdRef(Object _value) { if (isPrimitive(_value)) { ElementsSerial elt_ = createPrimitive(_value, false, null); getComponents().Add(elt_); } else { TemplateSerial elt_ = createComposite(_value, false, null, false); getNews().Add(elt_); getComponents().Add(elt_); return; /* if (!SerializeXmlObject.isCheckReferences()) * { * getNews().Add(elt_); * getComponents().Add(elt_); * return; * } * MyList<TemplateSerial> records_ = ElementsSerial.findSerialisableInList(_value, getAllComposites()); * if (records_.isEmpty()) * { * getNews().Add(elt_); * getAllComposites().Add(elt_); * getComponents().Add(elt_); * } * else { * throw new RefException(); * }*/ } }
private static TemplateSerial createComposite( Object _value, bool _isKey, Type _cl, String _field, bool _isComparator) { TemplateSerial temp_ = createComposite(_value, _isKey, _field, _isComparator); if (temp_ == null) { return(temp_); } temp_.setClassName(Constants.getTypeFullString(_cl)); return(temp_); }
private void addElementWithoutIdRef(Object _value, bool _isKey, Type _cl, String _fieldName, bool _isComparator) { if (isPrimitive(_value)) { ElementsSerial elt_ = createPrimitive(_value, _isKey, _cl, _fieldName); getComponents().Add(elt_); } else { TemplateSerial elt_ = createComposite(_value, _isKey, _cl, _fieldName, _isComparator); if (elt_ == null) { return; } if (_isComparator) { getAllImplicitComparators().Add(elt_); } getNews().Add(elt_); getComponents().Add(elt_); return; /* * if (!SerializeXmlObject.isCheckReferences()) * { * getNews().Add(elt_); * getComponents().Add(elt_); * return; * } * MyList<TemplateSerial> records_ = ElementsSerial.findSerialisableInList(_value, getAllComposites()); * if (records_.isEmpty()) * { * getNews().Add(elt_); * getAllComposites().Add(elt_); * getComponents().Add(elt_); * } * else { * throw new RefException(); * }*/ } }
private static ComparatorSerial getCmpSerial(XmlNode _node, bool _isTreeMap, TemplateSerial _composite) { if (!_isTreeMap) { return(null); } XmlNamedNodeMap attributes_ = _node.Attributes; // if (attributes_ == null) { // return null; // } if (attributes_.GetNamedItem(TemplateSerial.COMPARATOR) == null) { return(null); } if (_composite is ObjectSerial) { // return ((MayBeMap) _composite).getCmpSerial(); return(new ComparatorSerial(_node)); } return(null); }
public static Object fromXmlStringObject(String _xmlString) { XmlElement root_ = XmlParser.documentElement(XmlParser.parseSax(_xmlString)); try { ElementsSerial elt_ = createPrimitive(root_); if (elt_ != null) { return(elt_.getValue()); } } catch (Exception) { } MyList <XmlNode> currentNodesToBeRead_ = new MyList <XmlNode>(); currentNodesToBeRead_.Add(root_); MyList <TemplateSerial> currentSerializableElements_ = new MyList <TemplateSerial>(); ObjectSerial rootElement_; rootElement_ = ObjectSerial.newSerial(root_, false); currentSerializableElements_.Add(rootElement_); MyList <XmlNode> newNodesToBeRead_ = new MyList <XmlNode>(); MyList <TemplateSerial> newSerializableElements_ = new MyList <TemplateSerial>(); MyList <ObjectSerial> notEmptyMaps_ = new MyList <ObjectSerial>(); bool modif_ = true; while (modif_) { modif_ = false; newSerializableElements_ = new MyList <TemplateSerial>(); newNodesToBeRead_ = new MyList <XmlNode>(); int len_; len_ = currentNodesToBeRead_.size(); for (int i = List.FIRST_INDEX; i < len_; i++) { XmlNode currentNode_ = currentNodesToBeRead_.get(i); TemplateSerial composite_ = currentSerializableElements_.get(i); bool isTreeMap_ = false; bool containsTree_ = false; foreach (XmlNode nCh_ in XmlParser.childrenNodes(currentNode_)) { if (!(nCh_ is XmlElement)) { continue; } containsTree_ = nCh_.Attributes.GetNamedItem(TemplateSerial.COMPARATOR) != null; if (containsTree_) { break; } } if (containsTree_) { isTreeMap_ = true; } MyList <ElementsSerial> elt_ = new MyList <ElementsSerial>(); foreach (XmlNode n in XmlParser.childrenNodes(currentNode_)) { if (!(n is XmlElement)) { continue; } try { ArraySerial serialArray_ = ArraySerial.newListSerial(n); elt_.Add(serialArray_); newSerializableElements_.Add(serialArray_); newNodesToBeRead_.Add(n); continue; } catch (NoAttributeForSerializable e_) { throw e_; } catch (ClassFoundException) { } try { ElementsSerial primitive_ = createPrimitive(n); if (primitive_ == null) { throw new NullReferenceException(); } elt_.Add(primitive_); continue; } catch (NoAttributeForSerializable e_) { throw e_; } catch (InexistingValueForEnum e_) { throw e_; } catch (FormatException e_) { throw e_; } /*catch (InvocationTargetException e_) * { * throw e_; * } * catch (InstantiationException e_) * { * throw e_; * } * catch (SecurityException e_) * { * throw e_; * } * catch (ClassNotFoundException e_) * { * throw e_; * }*/ catch (NullReferenceException) { } ComparatorSerial cmp_ = getCmpSerial(n, isTreeMap_, composite_); if (cmp_ != null) { elt_.Add(cmp_); newSerializableElements_.Add(cmp_); newNodesToBeRead_.Add(n); continue; } ObjectSerial serial_ = ObjectSerial.newSerial(n, true); elt_.Add(serial_); newSerializableElements_.Add(serial_); newNodesToBeRead_.Add(n); } composite_.appendElementSerialWithoutRef(elt_); if (composite_ is ObjectSerial) { if (!((ObjectSerial)composite_).mapIsEmpty()) { notEmptyMaps_.Add((ObjectSerial)composite_); } } } if (!newSerializableElements_.isEmpty()) { currentNodesToBeRead_ = new MyList <XmlNode>(newNodesToBeRead_); currentSerializableElements_ = new MyList <TemplateSerial>(newSerializableElements_); modif_ = true; } } List <ObjectSerial> filledMaps_ = new MyList <ObjectSerial>(); List <ObjectSerial> fillableMaps_ = new MyList <ObjectSerial>(); /*foreach (ObjectSerial m in notEmptyMaps_) { * if (m.keysAllDifferent()) { * fillableMaps_.Add(m); * } * } * while (true) { * for (MayBeMap m : fillableMaps_) { * m.setComponents(); * filledMaps_.add(m); * } * fillableMaps_.clear(); * for (MayBeMap m : notEmptyMaps_) { * if (!m.keysAllDifferent()) { * continue; * } * if (filledMaps_.containsObj(m)) { * continue; * } * fillableMaps_.add(m); * } * if (fillableMaps_.isEmpty()) { * break; * } * } * for (MayBeMap m : notEmptyMaps_) { * if (!filledMaps_.containsObj(m)) { * m.setComponents(); * } * }*/ return(rootElement_.getValue()); }
public static XmlDocument getSource(Object _serialisable) { //XmlDocument document_ = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument(); XmlDocument document_ = new XmlDocument(); try { ElementsSerial primitive_; primitive_ = CurrentSerializableElements.createPrimitive(_serialisable); if (primitive_ != null) { XmlElement elt_ = primitive_.serializeWithoutRef(document_); document_.AppendChild(elt_); return(document_); } } catch (Exception) { } //XmlNode firstNode_ = document_.CreateElement(_serialisable.GetType().FullName); //XmlNode firstNode_ = document_.CreateElement(_serialisable.GetType().FullName.Split(new string[] { "`" }, StringSplitOptions.None)[0]); ObjectSerial base_ = new ObjectSerial(_serialisable); //XmlNode firstNode_ = document_.CreateElement(ElementsSerial.getTypeName(_serialisable)); XmlNode firstNode_ = base_.serializeWithoutRef(document_); document_.AppendChild(firstNode_); MyList <XmlNode> currentNodesToBeCompleted_ = new MyList <XmlNode>(); currentNodesToBeCompleted_.Add(firstNode_); CurrentSerializableElements currentThread_ = new CurrentSerializableElements(base_); currentThread_.initializeObjectsWithoutIdRef(); MyList <TemplateSerial> currentSerializableElements_ = new MyList <TemplateSerial>(); currentSerializableElements_.Add(base_); MyList <XmlNode> newNodesToBeCompleted_ = new MyList <XmlNode>(); MyList <TemplateSerial> newSerializableElements_ = new MyList <TemplateSerial>(); bool modif_ = true; while (modif_) { modif_ = false; newSerializableElements_ = new MyList <TemplateSerial>(); newNodesToBeCompleted_ = new MyList <XmlNode>(); int len_; len_ = currentNodesToBeCompleted_.size(); for (int i = List.FIRST_INDEX; i < len_; i++) { XmlNode currentNode_ = currentNodesToBeCompleted_.get(i); TemplateSerial currentSerializable_ = currentSerializableElements_.get(i); List <ElementsSerial> elts_ = currentThread_.getComponentComposite(currentSerializable_); foreach (ElementsSerial e in elts_) { XmlNode newNode_ = e.serializeWithoutRef(document_); if (e is TemplateSerial && !(e is EnumSerial)) { TemplateSerial t_ = (TemplateSerial)e; if (t_.getRef() == null) { newNodesToBeCompleted_.Add(newNode_); newSerializableElements_.Add(t_); } } currentNode_.AppendChild(newNode_); } } if (!newSerializableElements_.isEmpty()) { currentNodesToBeCompleted_ = new MyList <XmlNode>(newNodesToBeCompleted_); currentSerializableElements_ = new MyList <TemplateSerial>(newSerializableElements_); modif_ = true; } } return(document_); }
public MyList <ElementsSerial> getComponentComposite(TemplateSerial _temp) { return(componentComposite.getVal(_temp)); }
public void addComponentsToComposite(TemplateSerial _e) { componentComposite.put(_e, components); }