1 4 package com.tc.lang; 5 6 import com.tc.logging.TCLogger; 7 import com.tc.logging.TCLogging; 8 import com.tc.util.Assert; 9 10 public class EqualsBuilderTracer extends TCEqualsBuilder { 11 12 private static final TCLogger logger = TCLogging.getLogger(EqualsBuilderTracer.class); 13 14 private TCEqualsBuilder delegate; 15 16 public EqualsBuilderTracer() { 17 delegate = new TCEqualsBuilder(); 18 } 19 20 public EqualsBuilderTracer(TCEqualsBuilder v) { 21 Assert.assertNotNull(v); 22 delegate = v; 23 } 24 25 public TCEqualsBuilder append(boolean arg0, boolean arg1) { 26 delegate = delegate.append(arg0, arg1); 27 if (logger.isDebugEnabled()) checkAndLog("boolean", String.valueOf(arg0), String.valueOf(arg1)); 28 return this; 29 } 30 31 public TCEqualsBuilder append(boolean[] arg0, boolean[] arg1) { 32 delegate = delegate.append(arg0, arg1); 33 if (logger.isDebugEnabled()) checkAndLog("boolean[]", String.valueOf(arg0), String.valueOf(arg1)); 34 return this; 35 } 36 37 public TCEqualsBuilder append(byte arg0, byte arg1) { 38 delegate = delegate.append(arg0, arg1); 39 if (logger.isDebugEnabled()) checkAndLog("byte", String.valueOf(arg0), String.valueOf(arg1)); 40 return this; 41 } 42 43 public TCEqualsBuilder append(byte[] arg0, byte[] arg1) { 44 delegate = delegate.append(arg0, arg1); 45 if (logger.isDebugEnabled()) checkAndLog("byte[]", String.valueOf(arg0), String.valueOf(arg1)); 46 return this; 47 } 48 49 public TCEqualsBuilder append(char arg0, char arg1) { 50 delegate = delegate.append(arg0, arg1); 51 if (logger.isDebugEnabled()) checkAndLog("char", String.valueOf(arg0), String.valueOf(arg1)); 52 return this; 53 } 54 55 public TCEqualsBuilder append(char[] arg0, char[] arg1) { 56 delegate = delegate.append(arg0, arg1); 57 if (logger.isDebugEnabled()) checkAndLog("char[]", String.valueOf(arg0), String.valueOf(arg1)); 58 return this; 59 } 60 61 public TCEqualsBuilder append(double arg0, double arg1) { 62 delegate = delegate.append(arg0, arg1); 63 if (logger.isDebugEnabled()) checkAndLog("double", String.valueOf(arg0), String.valueOf(arg1)); 64 return this; 65 } 66 67 public TCEqualsBuilder append(double[] arg0, double[] arg1) { 68 delegate = delegate.append(arg0, arg1); 69 if (logger.isDebugEnabled()) checkAndLog("double[]", String.valueOf(arg0), String.valueOf(arg1)); 70 return this; 71 } 72 73 public TCEqualsBuilder append(float arg0, float arg1) { 74 delegate = delegate.append(arg0, arg1); 75 if (logger.isDebugEnabled()) checkAndLog("float", String.valueOf(arg0), String.valueOf(arg1)); 76 return this; 77 } 78 79 public TCEqualsBuilder append(float[] arg0, float[] arg1) { 80 delegate = delegate.append(arg0, arg1); 81 if (logger.isDebugEnabled()) checkAndLog("float[]", String.valueOf(arg0), String.valueOf(arg1)); 82 return this; 83 } 84 85 public TCEqualsBuilder append(int arg0, int arg1) { 86 delegate = delegate.append(arg0, arg1); 87 if (logger.isDebugEnabled()) checkAndLog("int", String.valueOf(arg0), String.valueOf(arg1)); 88 return this; 89 } 90 91 public TCEqualsBuilder append(int[] arg0, int[] arg1) { 92 delegate = delegate.append(arg0, arg1); 93 if (logger.isDebugEnabled()) checkAndLog("int[]", String.valueOf(arg0), String.valueOf(arg1)); 94 return this; 95 } 96 97 public TCEqualsBuilder append(long arg0, long arg1) { 98 delegate = delegate.append(arg0, arg1); 99 if (logger.isDebugEnabled()) checkAndLog("long", String.valueOf(arg0), String.valueOf(arg1)); 100 return this; 101 } 102 103 public TCEqualsBuilder append(long[] arg0, long[] arg1) { 104 delegate = delegate.append(arg0, arg1); 105 if (logger.isDebugEnabled()) checkAndLog("long[]", String.valueOf(arg0), String.valueOf(arg1)); 106 return this; 107 } 108 109 public TCEqualsBuilder append(Object arg0, Object arg1) { 110 delegate = delegate.append(arg0, arg1); 111 if (logger.isDebugEnabled()) checkAndLog(getTypeName(arg0, arg1), String.valueOf(arg0), String.valueOf(arg1)); 112 return this; 113 } 114 115 public TCEqualsBuilder append(Object [] arg0, Object [] arg1) { 116 delegate = delegate.append(arg0, arg1); 117 if (logger.isDebugEnabled()) checkAndLog(getTypeName(arg0, arg1), String.valueOf(arg0), String.valueOf(arg1)); 118 return this; 119 } 120 121 public TCEqualsBuilder append(short arg0, short arg1) { 122 delegate = delegate.append(arg0, arg1); 123 if (logger.isDebugEnabled()) checkAndLog("short", String.valueOf(arg0), String.valueOf(arg1)); 124 return this; 125 } 126 127 public TCEqualsBuilder append(short[] arg0, short[] arg1) { 128 delegate = delegate.append(arg0, arg1); 129 if (logger.isDebugEnabled()) checkAndLog("short[]", String.valueOf(arg0), String.valueOf(arg1)); 130 return this; 131 } 132 133 public TCEqualsBuilder appendSuper(boolean arg0) { 134 delegate = delegate.appendSuper(arg0); 135 if (logger.isDebugEnabled()) checkAndLog("super", "<n/a>", "<n/a>"); 136 return this; 137 } 138 139 public boolean isEquals() { 140 return delegate.isEquals(); 141 } 142 143 private void checkAndLog(String type, String val1, String val2) { 144 if (!delegate.isEquals()) { 145 logger.debug("Objects not equal: type = " + type + ", val1=" + val1 + ", val2=" + val2, 146 new Throwable ("StackTrace")); 147 } 148 } 149 150 private String getTypeName(Object o) { 151 if (o == null) { 152 return "<null>"; 153 } else { 154 return o.getClass().getName(); 155 } 156 } 157 158 private String getTypeName(Object o1, Object o2) { 159 return getTypeName(o1) + "/" + getTypeName(o2); 160 } 161 162 } | Popular Tags |