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