You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by rm...@apache.org on 2011/04/28 12:28:29 UTC

svn commit: r1097400 - in /incubator/isis/trunk/core/commons/src/main/java/org/apache/isis/core/commons: debug/DebugBuilder.java debug/DebugHtmlStringAbstract.java debug/DebugString.java debug/DebugTee.java encoding/FieldType.java

Author: rmatthews
Date: Thu Apr 28 10:28:29 2011
New Revision: 1097400

URL: http://svn.apache.org/viewvc?rev=1097400&view=rev
Log:
Extended DebugBuilder to deal with preformatted output and allow appending of other DebugBuilder - this helps build debug that works as well on a web page as it does in a text email.

Modified:
    incubator/isis/trunk/core/commons/src/main/java/org/apache/isis/core/commons/debug/DebugBuilder.java
    incubator/isis/trunk/core/commons/src/main/java/org/apache/isis/core/commons/debug/DebugHtmlStringAbstract.java
    incubator/isis/trunk/core/commons/src/main/java/org/apache/isis/core/commons/debug/DebugString.java
    incubator/isis/trunk/core/commons/src/main/java/org/apache/isis/core/commons/debug/DebugTee.java
    incubator/isis/trunk/core/commons/src/main/java/org/apache/isis/core/commons/encoding/FieldType.java

Modified: incubator/isis/trunk/core/commons/src/main/java/org/apache/isis/core/commons/debug/DebugBuilder.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/commons/src/main/java/org/apache/isis/core/commons/debug/DebugBuilder.java?rev=1097400&r1=1097399&r2=1097400&view=diff
==============================================================================
--- incubator/isis/trunk/core/commons/src/main/java/org/apache/isis/core/commons/debug/DebugBuilder.java (original)
+++ incubator/isis/trunk/core/commons/src/main/java/org/apache/isis/core/commons/debug/DebugBuilder.java Thu Apr 28 10:28:29 2011
@@ -19,6 +19,11 @@
 package org.apache.isis.core.commons.debug;
 
 public interface DebugBuilder {
+    
+    /**
+     * Concatenate the contents of the specified debug builder to the current builder.
+     */
+    void concat(DebugBuilder debug);
 
     /**
      * Append the specified number within a space (number of spaces) specified by the width. E.g. "15 " where number is
@@ -59,6 +64,11 @@ public interface DebugBuilder {
     void appendln(final String text);
 
     /**
+     * Append the specified text without any formatting.
+     */
+    void appendPreformatted(final String text);
+
+    /**
      * Append the specified value, displayed as true or false, with the specified label, then start a new line.
      */
     void appendln(final String label, final boolean value);
@@ -74,6 +84,11 @@ public interface DebugBuilder {
     void appendln(final String label, final long value);
 
     /**
+     * Append the specified preformatted text with the specified label, then start a new line.
+     */
+    void appendPreformatted(final String label, final String text);
+
+    /**
      * Append the specified object with the specified label, then start a new line.
      */
     void appendln(final String label, final Object object);

Modified: incubator/isis/trunk/core/commons/src/main/java/org/apache/isis/core/commons/debug/DebugHtmlStringAbstract.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/commons/src/main/java/org/apache/isis/core/commons/debug/DebugHtmlStringAbstract.java?rev=1097400&r1=1097399&r2=1097400&view=diff
==============================================================================
--- incubator/isis/trunk/core/commons/src/main/java/org/apache/isis/core/commons/debug/DebugHtmlStringAbstract.java (original)
+++ incubator/isis/trunk/core/commons/src/main/java/org/apache/isis/core/commons/debug/DebugHtmlStringAbstract.java Thu Apr 28 10:28:29 2011
@@ -32,6 +32,10 @@ public abstract class DebugHtmlStringAbs
     }
 
     @Override
+    public void concat(final DebugBuilder debug) {
+        appendHtml(debug.toString());
+    }
+    
     public void append(final int number, final int width) {
     }
 
@@ -82,6 +86,11 @@ public abstract class DebugHtmlStringAbs
     }
 
     @Override
+    public void appendPreformatted(final String label, final String object) {
+        String value = object == null ? "null" : object.toString();
+        appendln(label, "<pre>" + value + "</pre>");
+    };
+
     public void appendln(final String label, final Object object) {
         final String value = object == null ? "null" : object.toString();
         appendln(label, value);
@@ -215,6 +224,11 @@ public abstract class DebugHtmlStringAbs
             tableLevel--;
         }
     }
+    
+    @Override
+    public void appendPreformatted(String text) {
+        appendln("<pre>" + text + "</pre>");
+    }
 
     @Override
     public void appendln(final String text) {

Modified: incubator/isis/trunk/core/commons/src/main/java/org/apache/isis/core/commons/debug/DebugString.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/commons/src/main/java/org/apache/isis/core/commons/debug/DebugString.java?rev=1097400&r1=1097399&r2=1097400&view=diff
==============================================================================
--- incubator/isis/trunk/core/commons/src/main/java/org/apache/isis/core/commons/debug/DebugString.java (original)
+++ incubator/isis/trunk/core/commons/src/main/java/org/apache/isis/core/commons/debug/DebugString.java Thu Apr 28 10:28:29 2011
@@ -42,6 +42,11 @@ public class DebugString implements Debu
     private final StringBuffer string = new StringBuffer();
     private boolean newLine = true;
 
+    @Override
+    public void concat(final DebugBuilder debug) {
+        string.append(debug.toString());
+    }
+
     /**
      * Append the specified number within a space (number of spaces) specified by the width. E.g. "15 " where number is
      * 15 and width is 4.
@@ -112,6 +117,11 @@ public class DebugString implements Debu
         string.append('\n');
         newLine = true;
     }
+    
+    @Override
+    public void appendPreformatted(final String text) {
+        appendln(text);
+    }
 
     /**
      * Append the specified text, then start a new line.
@@ -148,6 +158,11 @@ public class DebugString implements Debu
         appendln(label, String.valueOf(value));
     }
 
+    @Override
+    public void appendPreformatted(String label, String text) {
+        appendln(label, text);
+    };
+    
     /**
      * Append the specified object with the specified label, then start a new line.
      */

Modified: incubator/isis/trunk/core/commons/src/main/java/org/apache/isis/core/commons/debug/DebugTee.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/commons/src/main/java/org/apache/isis/core/commons/debug/DebugTee.java?rev=1097400&r1=1097399&r2=1097400&view=diff
==============================================================================
--- incubator/isis/trunk/core/commons/src/main/java/org/apache/isis/core/commons/debug/DebugTee.java (original)
+++ incubator/isis/trunk/core/commons/src/main/java/org/apache/isis/core/commons/debug/DebugTee.java Thu Apr 28 10:28:29 2011
@@ -29,6 +29,11 @@ public class DebugTee implements DebugBu
     }
 
     @Override
+    public void concat(final DebugBuilder debug) {
+        builder1.concat(debug);
+        builder2.concat(debug);
+    }
+    
     public void append(final int number, final int width) {
         builder1.append(number, width);
         builder2.append(number, width);
@@ -65,6 +70,12 @@ public class DebugTee implements DebugBu
     }
 
     @Override
+    public void appendPreformatted(final String text) {
+        builder1.appendPreformatted(text);
+        builder2.appendPreformatted(text);
+    }
+    
+    @Override
     public void appendln(final String text) {
         builder1.appendln(text);
         builder2.appendln(text);
@@ -87,6 +98,12 @@ public class DebugTee implements DebugBu
         builder1.appendln(label, value);
         builder2.appendln(label, value);
     }
+    
+    @Override
+    public void appendPreformatted(final String label, final String text) {
+        builder1.appendPreformatted(label, text);
+        builder2.appendPreformatted(label, text);
+    }
 
     @Override
     public void appendln(final String label, final Object object) {

Modified: incubator/isis/trunk/core/commons/src/main/java/org/apache/isis/core/commons/encoding/FieldType.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/commons/src/main/java/org/apache/isis/core/commons/encoding/FieldType.java?rev=1097400&r1=1097399&r2=1097400&view=diff
==============================================================================
--- incubator/isis/trunk/core/commons/src/main/java/org/apache/isis/core/commons/encoding/FieldType.java (original)
+++ incubator/isis/trunk/core/commons/src/main/java/org/apache/isis/core/commons/encoding/FieldType.java Thu Apr 28 10:28:29 2011
@@ -1207,8 +1207,8 @@ public abstract class FieldType<T> {
         final byte fieldTypeIdx = (byte) (fieldTypeIdxAndNullability - (isNull ? NULL_BIT : 0));
         try {
             final FieldType<?> fieldType = FieldType.get(fieldTypeIdx);
-            if (fieldType.checksStream() && fieldType != this) {
-                throw new IllegalStateException("Mismatch in stream: expected " + this + " but got " + fieldType);
+            if (fieldType == null || (fieldType.checksStream() && fieldType != this)) {
+                throw new IllegalStateException("Mismatch in stream: expected " + this + " but got " + fieldType + " (" + fieldTypeIdx + ")");
             }
 
             if (isNull && LOG.isDebugEnabled()) {