Changeset 12515 for branches/HiveStatistics/sources/HeuristicLab.Core/3.3
- Timestamp:
- 06/25/15 18:21:19 (9 years ago)
- Location:
- branches/HiveStatistics/sources/HeuristicLab.Core
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HiveStatistics/sources/HeuristicLab.Core
- Property svn:mergeinfo changed
/trunk/sources/HeuristicLab.Core (added) merged: 12504,12506,12512
- Property svn:mergeinfo changed
-
branches/HiveStatistics/sources/HeuristicLab.Core/3.3/Attributes/CreatableAttribute.cs
r12305 r12515 21 21 22 22 using System; 23 using System.Collections.Generic; 24 using System.Linq; 23 25 24 26 namespace HeuristicLab.Core { 25 27 [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false)] 26 28 public sealed class CreatableAttribute : Attribute { 29 #region Predefined Categories 30 public static class Categories { 31 public const string SplitToken = "###"; 32 public const string OrderToken = "$$$"; 33 34 public const string Algorithms = "1" + OrderToken + "Algorithms"; 35 public const string PopulationBasedAlgorithms = Algorithms + SplitToken + "1" + OrderToken + "Population Based"; 36 public const string SingleSolutionAlgorithms = Algorithms + SplitToken + "2" + OrderToken + "Single Solution"; 37 38 public const string Problems = "2" + OrderToken + "Problems"; 39 public const string CombinatorialProblems = Problems + SplitToken + "1" + OrderToken + "Combinatorial"; 40 public const string GeneticProgrammingProblems = Problems + SplitToken + "2" + OrderToken + "Genetic Programming"; 41 public const string ExternalEvaluationProblems = Problems + SplitToken + "3" + OrderToken + "External Evaluation"; 42 43 public const string DataAnalysis = "3" + OrderToken + "Data Analysis"; 44 public const string DataAnalysisRegression = DataAnalysis + SplitToken + "1" + OrderToken + "Regression"; 45 public const string DataAnalysisClassification = DataAnalysis + SplitToken + "2" + OrderToken + "Classification"; 46 public const string DataAnalysisEnsembles = DataAnalysis + SplitToken + "3" + OrderToken + "Ensembles"; 47 48 public const string TestingAndAnalysis = "4" + OrderToken + "Testing & Analysis"; 49 public const string TestingAndAnalysisOKB = TestingAndAnalysis + SplitToken + "1" + OrderToken + "OKB"; 50 51 public const string Scripts = "5" + OrderToken + "Scripts"; 52 53 public static string GetFullName(string rawName) { 54 return string.Join(SplitToken, GetTokens(rawName)); 55 } 56 public static string GetName(string rawName) { 57 return GetTokens(rawName).Last(); 58 } 59 public static IEnumerable<string> GetParentRawNames(string rawName) { 60 var tokens = GetTokensWithOrdering(rawName).ToList(); 61 return tokens.Take(tokens.Count - 1); 62 } 63 64 private static IEnumerable<string> GetTokensWithOrdering(string rawName) { 65 return rawName.Split(new[] { SplitToken }, StringSplitOptions.RemoveEmptyEntries); 66 } 67 private static IEnumerable<string> GetTokens(string rawName) { 68 return GetTokensWithOrdering(rawName) 69 .Select(t => t.Split(new[] { OrderToken }, StringSplitOptions.RemoveEmptyEntries).Last()); 70 } 71 } 72 #endregion 73 27 74 private string category; 28 75 public string Category { … … 43 90 Priority = int.MaxValue; 44 91 } 45 public CreatableAttribute( stringcategory)92 public CreatableAttribute(object category) 46 93 : this() { 47 Category = category;94 Category = (string)category; 48 95 } 49 96
Note: See TracChangeset
for help on using the changeset viewer.