Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
06/25/15 18:21:19 (9 years ago)
Author:
dglaser
Message:

#2388: Merged trunk into HiveStatistics branch

Location:
branches/HiveStatistics/sources/HeuristicLab.Core
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/HiveStatistics/sources/HeuristicLab.Core

  • branches/HiveStatistics/sources/HeuristicLab.Core/3.3/Attributes/CreatableAttribute.cs

    r12305 r12515  
    2121
    2222using System;
     23using System.Collections.Generic;
     24using System.Linq;
    2325
    2426namespace HeuristicLab.Core {
    2527  [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false)]
    2628  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
    2774    private string category;
    2875    public string Category {
     
    4390      Priority = int.MaxValue;
    4491    }
    45     public CreatableAttribute(string category)
     92    public CreatableAttribute(object category)
    4693      : this() {
    47       Category = category;
     94      Category = (string)category;
    4895    }
    4996
Note: See TracChangeset for help on using the changeset viewer.