source: branches/2839_HiveProjectManagement/HeuristicLab.DebugEngine/3.3/Utils.cs @ 16057

Last change on this file since 16057 was 16057, checked in by jkarder, 16 months ago

#2839:

File size: 2.0 KB
Line 
1#region License Information
2/* HeuristicLab
3 * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
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;
23using System.Text;
24using System.Text.RegularExpressions;
25using HeuristicLab.Core;
26using HeuristicLab.Persistence.Auxiliary;
27
28namespace HeuristicLab.DebugEngine {
29  public static class Utils {
30
31    public static string Name(IAtomicOperation operation) {
32      return string.IsNullOrEmpty(operation.Operator.Name) ? operation.Operator.ItemName : operation.Operator.Name;
33    }
34
35    public static string TypeName(object obj) {
36      if (obj == null)
37        return "null";
38      return TypeNameParser.Parse(obj.GetType().FullName).GetTypeNameInCode(true);
39    }
40
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    }
60  }
61}
Note: See TracBrowser for help on using the repository browser.