private static TemplateSerial createComposite(
            Object _value, bool _isKey, String _field, bool _isComparator)
        {
            if (_isComparator)
            {
                if (_value is IComparer)
                {
                    ComparatorSerial serializableFieldBis_ = new ComparatorSerial((IComparer)_value);
                    serializableFieldBis_.setKeyOfMap(_isKey);
                    serializableFieldBis_.setField(_field);
                    return(serializableFieldBis_);
                }
                return(null);
            }
            if (_value.GetType().IsArray)
            {
                ArraySerial serializableFieldTer_ = new ArraySerial((Array)_value);
                serializableFieldTer_.setKeyOfMap(_isKey);
                serializableFieldTer_.setField(_field);
                return(serializableFieldTer_);
            }
            ObjectSerial serializableField_ = new ObjectSerial(_value);

            serializableField_.setKeyOfMap(_isKey);
            serializableField_.setField(_field);
            return(serializableField_);
        }
Exemplo n.º 2
0
        public static ArraySerial newListSerial(XmlNode _node)
        {
            if (!_node.Name.Equals(ARRAY))
            {
                //throw new ClassFoundException(_node.getNodeName(), ARRAY);
                throw new ClassFoundException();
            }
            XmlNamedNodeMap map_ = _node.Attributes;
            //		if (map_ == null) {
            //			throw new NoAttributeForSerializable(_node.getNodeName());
            //		}
            XmlNode className_ = map_.GetNamedItem(CLASS);
            XmlNode typeName_  = map_.GetNamedItem(ELEMENT_TYPE);

            if (typeName_ == null)
            {
                //throw new NoAttributeForSerializable(ELEMENT_TYPE, _node.getNodeName());
                throw new NoAttributeForSerializable();
            }
            ArraySerial listSerial_ = new ArraySerial();
            Type        class_;
            String      typeValue_ = typeName_.Value;

            try {
                class_ = Constants.classForName(typeValue_);
            } catch (Exception e_) {
                throw e_;
                //			if (typeValue_.equalsIgnoreCase(long.class.getName())) {
                //				class_ = long.class;
                //			} else if (typeValue_.equalsIgnoreCase(int.class.getName())) {
                //				class_ = int.class;
                //			} else if (typeValue_.equalsIgnoreCase(short.class.getName())) {
                //				class_ = short.class;
                //			} else if (typeValue_.equalsIgnoreCase(byte.class.getName())) {
                //				class_ = byte.class;
                //			} else if (typeValue_.equalsIgnoreCase(char.class.getName())) {
                //				class_ = char.class;
                //			} else if (typeValue_.equalsIgnoreCase(float.class.getName())) {
                //				class_ = float.class;
                //			} else if (typeValue_.equalsIgnoreCase(double.class.getName())) {
                //				class_ = double.class;
                //			} else if (typeValue_.equalsIgnoreCase(boolean.class.getName())) {
                //				class_ = boolean.class;
                //			} else {
                //				throw e_;
                //			}
            }
            listSerial_.array = Array.CreateInstance(class_, _node.ChildNodes.Count);
            XmlNode field_ = map_.GetNamedItem(FIELD);

            if (field_ != null)
            {
                listSerial_.setField(field_.Value);
            }
            XmlNode keyOfMap_ = map_.GetNamedItem(KEY);

            if (keyOfMap_ != null)
            {
                listSerial_.setKeyOfMap(true);
            }
            if (className_ != null)
            {
                listSerial_.setClassName(className_.Value);
            }
            return(listSerial_);
        }