Esempio n. 1
0
    public static Model cloneModel(Model origin)
    {
        if (origin == null)
        {
            return(null);
        }

        Model clonedModel = new Model();

        //clone OptionalDesc
        clonedModel.description = OptionalDesc.clonedDescription(origin.description);

        //clone returnedString
        clonedModel.returnString = StringType.clonedString(origin.returnString);

        //clone receivedString
        clonedModel.receivedString = StringType.clonedString(origin.receivedString);

        //clone subModels
        if (origin.subModel != null)
        {
            clonedModel.subModel = new List <Model>();
            for (int i = 0; i < origin.subModel.Count; i++)
            {
                Object _subMod = origin.subModel.ElementAt(i);
                if (_subMod.GetType() == typeof(StringType))
                {
                    clonedModel.subModel.Add(StringType.clonedString((StringType)_subMod));
                }
                else if (_subMod.GetType() == typeof(Model))
                {
                    clonedModel.subModel.Add(Model.cloneModel((Model)_subMod));
                }
            }
        }
        return(clonedModel);
    }
Esempio n. 2
0
    //Clone StoreOptional

    //Clone Quantative

    //Clone Model/SubModel
    public static Model cloneModel(Model _model)
    {
        Model modelCloned = new Model(new OptionalDesc(), new List <Model>());

        //Clone OptionalDescription
        modelCloned.description = OptionalDesc.clonedDescription(_model.description);

        //Clone ConstraintOnModel


        //Clone Tag
        if (_model.description.tag != null)
        {
            modelCloned.description.tag = (Tag)CloneModel.cloneString(_model.description.tag);
        }

        //Clone Name
        if (_model.description.name != null)
        {
            modelCloned.description.name = CloneModel.cloneString(_model.description.name);
        }
        //CLone ... others

        //Clone receivedString
        if (_model.receivedString != null)
        {
            modelCloned.receivedString = CloneModel.cloneString(_model.receivedString);
        }
        //Clone returnedString;
        if (_model.returnString != null)
        {
            modelCloned.returnString = CloneModel.cloneString(_model.returnString);
        }
        //Clone subModel list
        if (_model.subModel == null)
        {
            return(modelCloned);
        }
        int subModelSize = _model.subModel.Count;

        if (subModelSize == 0)
        {
            modelCloned.subModel = new List <Model>();
        }
        else if (subModelSize > 0)
        {
            for (int i = 0; i < subModelSize; i++)
            {
                if (_model.subModel.ElementAt(i).GetType() == typeof(StringType))
                {
                    modelCloned.subModel.Add(CloneModel.cloneString((StringType)_model.subModel.ElementAt(i)));
                }
                else
                {
                    modelCloned.subModel.Add(CloneModel.cloneModel((Model)_model.subModel.ElementAt(i)));
                }
            }
        }

        return(modelCloned);
    }