Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
10/29/10 16:58:29 (14 years ago)
Author:
mkommend
Message:

Refactored Optimization (ticket #922).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/CloningRefactoring/HeuristicLab.Optimization/3.3/RunCollectionConstraints/RunCollectionComparisonConstraint.cs

    r4157 r4665  
    3333    [StorableConstructor]
    3434    protected RunCollectionComparisonConstraint(bool deserializing) : base(deserializing) { }
     35
     36    protected RunCollectionComparisonConstraint(RunCollectionComparisonConstraint original, Cloner cloner)
     37      : base(original, cloner) {
     38      IDeepCloneable constraintDataDeepCloneable = original.ConstraintData as IDeepCloneable;
     39      ICloneable constraintDataCloneable = original.ConstraintData as ICloneable;
     40      if (constraintDataDeepCloneable != null)
     41        ConstraintData = (IStringConvertibleValue)cloner.Clone(constraintDataDeepCloneable);
     42      else if (constraintDataCloneable != null)
     43        ConstraintData = (IStringConvertibleValue)constraintDataCloneable.Clone();
     44      else
     45        ConstraintData = original.ConstraintData;
     46
     47      ConstraintOperation = original.ConstraintOperation;
     48      ConstraintColumn = original.constraintColumn;
     49    }
     50    public override IDeepCloneable Clone(Cloner cloner) {
     51      return new RunCollectionComparisonConstraint(this, cloner);
     52    }
    3553
    3654    public RunCollectionComparisonConstraint() : base() { }
     
    128146      return s;
    129147    }
    130 
    131     public override IDeepCloneable Clone(HeuristicLab.Common.Cloner cloner) {
    132       RunCollectionComparisonConstraint clone = (RunCollectionComparisonConstraint)base.Clone(cloner);
    133 
    134       IItem constraintDataItem = this.ConstraintData as IItem;
    135       ICloneable constraintDataCloneable = this.ConstraintData as ICloneable;
    136       if (constraintDataItem != null)
    137         clone.ConstraintData = (IStringConvertibleValue)cloner.Clone(constraintDataItem);
    138       else if (constraintDataCloneable != null)
    139         clone.ConstraintData = (IStringConvertibleValue)constraintDataCloneable.Clone();
    140       else
    141         clone.ConstraintData = this.ConstraintData;
    142 
    143       clone.ConstraintOperation = this.ConstraintOperation;
    144       clone.constraintColumn = this.constraintColumn;
    145 
    146       return clone;
    147     }
    148148  }
    149149}
Note: See TracChangeset for help on using the changeset viewer.