• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package org.testng.collections;
2 
3 import org.testng.util.Strings;
4 
5 import java.util.List;
6 
7 
8 public final class Objects {
9 
Objects()10   private Objects() {}
11 
12   private static class ValueHolder {
13     private String m_name;
14     private String m_value;
15 
ValueHolder(String name, String value)16     public ValueHolder(String name, String value) {
17       m_name = name;
18       m_value = value;
19     }
20 
isNull()21     boolean isNull() {
22       return m_value == null;
23     }
24 
25     @Override
toString()26     public String toString() {
27       return m_name + "=" + m_value;
28     }
29 
isEmptyString()30     public boolean isEmptyString() {
31       return Strings.isNullOrEmpty(m_value);
32     }
33   }
34 
35   public static class ToStringHelper {
36     private String m_className;
37     private List<ValueHolder> values = Lists.newArrayList();
38     private boolean m_omitNulls = false;
39     private boolean m_omitEmptyStrings = false;
40 
ToStringHelper(String className)41     public ToStringHelper(String className) {
42       m_className = className;
43     }
44 
omitNulls()45     public ToStringHelper omitNulls() {
46       m_omitNulls = true;
47       return this;
48     }
49 
omitEmptyStrings()50     public ToStringHelper omitEmptyStrings() {
51       m_omitEmptyStrings = true;
52       return this;
53     }
54 
add(String name, String value)55     public ToStringHelper add(String name, String value) {
56       values.add(new ValueHolder(name, s(value)));
57       return this;
58     }
59 
add(String name, Object value)60     public ToStringHelper add(String name, Object value) {
61       values.add(new ValueHolder(name, s(value)));
62       return this;
63     }
64 
s(Object o)65     private String s(Object o) {
66       return o != null
67           ? (o.toString().isEmpty() ? "\"\"" : o.toString())
68           : "{null}";
69     }
70 
71     @Override
toString()72     public String toString() {
73       StringBuilder result = new StringBuilder("[" + m_className + " ");
74       for (int i = 0; i < values.size(); i++) {
75         ValueHolder vh = values.get(i);
76         if (m_omitNulls && vh.isNull()) continue;
77         if (m_omitEmptyStrings && vh.isEmptyString()) continue;
78 
79         if (i > 0) {
80           result.append(" ");
81         }
82         result.append(vh.toString());
83       }
84       result.append("]");
85 
86       return result.toString();
87     }
88   }
89 
toStringHelper(Class<?> class1)90   public static ToStringHelper toStringHelper(Class<?> class1) {
91     return new ToStringHelper(class1.getSimpleName());
92   }
93 
94 }
95