Changeset 10805
- Timestamp:
- 05/07/14 11:04:44 (11 years ago)
- Location:
- branches/DataPreprocessing
- Files:
-
- 2 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/TransactionalPreprocessingData.cs
r10740 r10805 50 50 private IList<PDSnapshot> undoHistory; 51 51 52 private int transactionDepth = 0; 52 private Stack<DataPreprocessingChangedEventType> eventStack = new Stack<DataPreprocessingChangedEventType>(); 53 54 private DataPreprocessingChangedEventType lastOccuredChangedType = DataPreprocessingChangedEventType.Any; 55 56 public bool IsInTransaction { get { return eventStack.Count > 0; } } 53 57 54 58 public TransactionalPreprocessingData(IDataAnalysisProblemData problemData) … … 63 67 64 68 private void SaveSnapshot(DataPreprocessingChangedEventType changedType, int column, int row) { 65 if ( transactionDepth> 0) return;69 if (eventStack.Count > 0) return; 66 70 67 71 PDSnapshot currentSnapshot = new PDSnapshot(); … … 92 96 SaveSnapshot(DataPreprocessingChangedEventType.ChangeItem, columnIndex, rowIndex); 93 97 base.SetCell<T>(columnIndex, rowIndex, value); 94 if ( transactionDepth <= 0)98 if (!IsInTransaction) 95 99 OnChanged(DataPreprocessingChangedEventType.ChangeItem, columnIndex, rowIndex); 96 100 } … … 99 103 SaveSnapshot(DataPreprocessingChangedEventType.ChangeColumn, columnIndex, -1); 100 104 base.SetValues<T>(columnIndex, values); 101 if ( transactionDepth <= 0)105 if (!IsInTransaction) 102 106 OnChanged(DataPreprocessingChangedEventType.ChangeColumn, columnIndex, -1); 103 107 } … … 106 110 SaveSnapshot(DataPreprocessingChangedEventType.DeleteRow, -1, rowIndex); 107 111 base.InsertRow(rowIndex); 108 if ( transactionDepth <= 0)112 if (!IsInTransaction) 109 113 OnChanged(DataPreprocessingChangedEventType.AddRow, -1, rowIndex); 110 114 } … … 113 117 SaveSnapshot(DataPreprocessingChangedEventType.AddRow, -1, rowIndex); 114 118 base.DeleteRow(rowIndex); 115 if ( transactionDepth <= 0)119 if (!IsInTransaction) 116 120 OnChanged(DataPreprocessingChangedEventType.DeleteRow, -1, rowIndex); 117 121 } … … 120 124 SaveSnapshot(DataPreprocessingChangedEventType.DeleteColumn, columnIndex, -1); 121 125 base.InsertColumn<T>(variableName, columnIndex); 122 if ( transactionDepth <= 0)126 if (!IsInTransaction) 123 127 OnChanged(DataPreprocessingChangedEventType.AddColumn, columnIndex, -1); 124 128 } … … 127 131 SaveSnapshot(DataPreprocessingChangedEventType.AddColumn, columnIndex, -1); 128 132 base.DeleteColumn(columnIndex); 129 if ( transactionDepth <= 0)133 if (!IsInTransaction) 130 134 OnChanged(DataPreprocessingChangedEventType.DeleteColumn, columnIndex, -1); 131 135 } … … 166 170 public void BeginTransaction(DataPreprocessingChangedEventType type) { 167 171 SaveSnapshot(type, -1, -1); 168 transactionDepth++;172 eventStack.Push(type); 169 173 } 170 174 171 175 public void EndTransaction() { 172 transactionDepth--; 173 if (transactionDepth < 0) 176 if (eventStack.Count == 0) 174 177 throw new InvalidOperationException("There is no open transaction that can be ended."); 175 if (transactionDepth == 0) 176 OnChanged(DataPreprocessingChangedEventType.Any, -1, -1); 178 179 var @event = eventStack.Pop(); 180 OnChanged(@event, -1, -1); 177 181 } 178 182 -
branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Transformations/3.3/HeuristicLab.Problems.DataAnalysis.Transformations-3.3.csproj
r10784 r10805 49 49 <Compile Include="CopyColumnTransformation.cs" /> 50 50 <Compile Include="DeviationTransformation.cs" /> 51 <Compile Include=" ExponentiationTransformation.cs" />51 <Compile Include="PowerTransformation.cs" /> 52 52 <Compile Include="ExponentialTransformation.cs" /> 53 53 <Compile Include="LogarithmicTransformation.cs" /> -
branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Transformations/3.3/PowerTransformation.cs
r10804 r10805 8 8 9 9 namespace HeuristicLab.Problems.DataAnalysis.Transformations { 10 [Item(" ExponentationTransformation", "Represents a exponentationtransformation.")]11 public class ExponentiationTransformation : Transformation<double> {12 protected const string BaseParameterName = "Base";10 [Item("PowerTransformation", "Represents a power transformation.")] 11 public class PowerTransformation : Transformation<double> { 12 protected const string ExponentParameterName = "Exponent"; 13 13 14 14 #region Parameters 15 public IValueParameter<DoubleValue> BaseParameter {16 get { return (IValueParameter<DoubleValue>)Parameters[ BaseParameterName]; }15 public IValueParameter<DoubleValue> ExponentParameter { 16 get { return (IValueParameter<DoubleValue>)Parameters[ExponentParameterName]; } 17 17 } 18 18 #endregion 19 19 20 20 #region properties 21 public double Base{22 get { return BaseParameter.Value.Value; }21 public double Exponent { 22 get { return ExponentParameter.Value.Value; } 23 23 } 24 24 #endregion 25 25 26 26 [StorableConstructor] 27 protected ExponentiationTransformation(bool deserializing) : base(deserializing) { }28 protected ExponentiationTransformation(Transformation<double> original, Cloner cloner)27 protected PowerTransformation(bool deserializing) : base(deserializing) { } 28 protected PowerTransformation(Transformation<double> original, Cloner cloner) 29 29 : base(original, cloner) { 30 30 } 31 public ExponentiationTransformation(IEnumerable<string> allowedColumns)31 public PowerTransformation(IEnumerable<string> allowedColumns) 32 32 : base(allowedColumns) { 33 Parameters.Add(new ValueParameter<DoubleValue>(BaseParameterName, "Basefor Exponentation", new DoubleValue(Math.E)));33 Parameters.Add(new ValueParameter<DoubleValue>(ExponentParameterName, "Exponent for Exponentation", new DoubleValue(Math.E))); 34 34 } 35 35 36 36 public override IDeepCloneable Clone(Cloner cloner) { 37 return new ExponentiationTransformation(this, cloner);37 return new PowerTransformation(this, cloner); 38 38 } 39 39 40 40 public override IEnumerable<double> Apply(IEnumerable<double> data) { 41 41 foreach (double i in data) { 42 yield return Math.Pow( Base, i);42 yield return Math.Pow(i, Exponent); 43 43 } 44 44 }
Note: See TracChangeset
for help on using the changeset viewer.