Free cookie consent management tool by TermsFeed Policy Generator

source: stable/HeuristicLab.DebugEngine/3.3/Utils.cs @ 17604

Last change on this file since 17604 was 17181, checked in by swagner, 5 years ago

#2875: Merged r17180 from trunk to stable

File size: 2.0 KB
RevLine 
[4998]1#region License Information
2/* HeuristicLab
[17181]3 * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL)
[4998]4 *
5 * This file is part of HeuristicLab.
6 *
7 * HeuristicLab is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * HeuristicLab is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
19 */
20#endregion
21
22using System;
[4871]23using System.Text;
[4909]24using System.Text.RegularExpressions;
[4998]25using HeuristicLab.Core;
[4871]26using HeuristicLab.Persistence.Auxiliary;
27
28namespace HeuristicLab.DebugEngine {
29  public static class Utils {
[4996]30
31    public static string Name(IAtomicOperation operation) {
32      return string.IsNullOrEmpty(operation.Operator.Name) ? operation.Operator.ItemName : operation.Operator.Name;
33    }
34
[4871]35    public static string TypeName(object obj) {
36      if (obj == null)
37        return "null";
[9018]38      return TypeNameParser.Parse(obj.GetType().FullName).GetTypeNameInCode(true);
[4871]39    }
[4996]40
[4909]41    public static string Wrap(string text, int columns) {
42      StringBuilder sb = new StringBuilder();
43      Regex whitespace = new Regex("\\s");
44      int lineLength = 0;
45      foreach (var word in whitespace.Split(text)) {
46        if (lineLength + word.Length < columns) {
47          if (lineLength > 0) {
48            sb.Append(' ');
49            lineLength++;
50          }
51          sb.Append(word);
52          lineLength += word.Length;
53        } else {
54          sb.Append(Environment.NewLine).Append(word);
55          lineLength = word.Length;
56        }
57      }
58      return sb.ToString();
59    }
[4871]60  }
61}
Note: See TracBrowser for help on using the repository browser.