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()) {