1 16 17 package org.springframework.core.style; 18 19 import org.springframework.util.Assert; 20 import org.springframework.util.ClassUtils; 21 import org.springframework.util.ObjectUtils; 22 23 33 public class DefaultToStringStyler implements ToStringStyler { 34 35 private final ValueStyler valueStyler; 36 37 38 42 public DefaultToStringStyler(ValueStyler valueStyler) { 43 Assert.notNull(valueStyler, "ValueStyler must not be null"); 44 this.valueStyler = valueStyler; 45 } 46 47 50 protected final ValueStyler getValueStyler() { 51 return this.valueStyler; 52 } 53 54 55 public void styleStart(StringBuffer buffer, Object obj) { 56 if (!obj.getClass().isArray()) { 57 buffer.append('[').append(ClassUtils.getShortName(obj.getClass())); 58 styleIdentityHashCode(buffer, obj); 59 } 60 else { 61 buffer.append('['); 62 styleIdentityHashCode(buffer, obj); 63 buffer.append(' '); 64 styleValue(buffer, obj); 65 } 66 } 67 68 private void styleIdentityHashCode(StringBuffer buffer, Object obj) { 69 buffer.append('@'); 70 buffer.append(ObjectUtils.getIdentityHexString(obj)); 71 } 72 73 public void styleEnd(StringBuffer buffer, Object o) { 74 buffer.append(']'); 75 } 76 77 public void styleField(StringBuffer buffer, String fieldName, Object value) { 78 styleFieldStart(buffer, fieldName); 79 styleValue(buffer, value); 80 styleFieldEnd(buffer, fieldName); 81 } 82 83 protected void styleFieldStart(StringBuffer buffer, String fieldName) { 84 buffer.append(' ').append(fieldName).append(" = "); 85 } 86 87 protected void styleFieldEnd(StringBuffer buffer, String fieldName) { 88 } 89 90 public void styleValue(StringBuffer buffer, Object value) { 91 buffer.append(this.valueStyler.style(value)); 92 } 93 94 public void styleFieldSeparator(StringBuffer buffer) { 95 buffer.append(','); 96 } 97 98 } 99 | Popular Tags |