Changeset 10990 for branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.4/Implementations/PreprocessingContext.cs
- Timestamp:
- 06/11/14 14:47:42 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.4/Implementations/PreprocessingContext.cs
r10978 r10990 33 33 : Item, IPreprocessingContext { 34 34 35 35 36 public IFilteredPreprocessingData Data { get; private set; } 37 36 38 public IAlgorithm Algorithm { get; private set; } 37 39 public IDataAnalysisProblem Problem { get; private set; } 40 public IDataAnalysisProblemData ProblemData { get; private set; } 41 42 private readonly ProblemDataCreator creator; 38 43 39 44 public PreprocessingContext(IDataAnalysisProblemData dataAnalysisProblemData, IAlgorithm algorithm, IDataAnalysisProblem problem) { 40 TransactionalPreprocessingData transactionalPreprocessingData = new TransactionalPreprocessingData(dataAnalysisProblemData); 45 var transactionalPreprocessingData = new TransactionalPreprocessingData(dataAnalysisProblemData); 46 Data = new FilteredPreprocessingData(transactionalPreprocessingData); 41 47 42 Data = new FilteredPreprocessingData(transactionalPreprocessingData);48 ProblemData = dataAnalysisProblemData; 43 49 Algorithm = algorithm; 44 50 Problem = problem; 51 52 creator = new ProblemDataCreator(this); 45 53 } 46 54 … … 56 64 } 57 65 58 public IItem Export AlgorithmOrProblem() {59 if (Algorithm != null) {66 public IItem Export() { 67 if (Algorithm != null) 60 68 return ExportAlgorithm(); 61 } 62 return ExportProblem(); 69 else if (Problem != null) 70 return ExportProblem(); 71 return ExportProblemData(); 72 } 73 public IAlgorithm ExportAlgorithm() { 74 var preprocessedAlgorithm = (IAlgorithm)Algorithm.Clone(new Cloner()); 75 preprocessedAlgorithm.Name = preprocessedAlgorithm.Name + "(Preprocessed)"; 76 Algorithm.Runs.Clear(); 77 var problem = (IDataAnalysisProblem)preprocessedAlgorithm.Problem; 78 SetNewProblemData(problem); 79 return preprocessedAlgorithm; 80 } 81 public IDataAnalysisProblem ExportProblem() { 82 var preprocessedProblem = (IDataAnalysisProblem)Problem.Clone(new Cloner()); 83 SetNewProblemData(preprocessedProblem); 84 return preprocessedProblem; 63 85 } 64 86 65 public IProblem ExportProblem() { 66 return Export(Problem, SetupProblem); 67 } 68 public IAlgorithm ExportAlgorithm() { 69 return Export(Algorithm, SetupAlgorithm); 87 public IDataAnalysisProblemData ExportProblemData() { 88 return creator.CreateProblemData(); 70 89 } 71 90 72 private IDataAnalysisProblem SetupProblem(IProblem problem) { 73 return (IDataAnalysisProblem)problem; 74 } 75 private IDataAnalysisProblem SetupAlgorithm(IAlgorithm algorithm) { 76 algorithm.Name = algorithm.Name + "(Preprocessed)"; 77 algorithm.Runs.Clear(); 78 return (IDataAnalysisProblem)algorithm.Problem; 79 } 80 private T Export<T>(T original, Func<T, IDataAnalysisProblem> setup) 81 where T : IItem { 82 var creator = new ProblemDataCreator(this); 91 private void SetNewProblemData(IDataAnalysisProblem problem) { 83 92 var data = creator.CreateProblemData(); 84 85 var clone = (T)original.Clone(new Cloner());86 87 var problem = setup(clone);88 93 problem.ProblemDataParameter.ActualValue = data; 89 94 problem.Name = "Preprocessed " + problem.Name; 90 return clone;91 95 } 92 96 }
Note: See TracChangeset
for help on using the changeset viewer.