You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pivot.apache.org by gb...@apache.org on 2010/03/06 02:21:40 UTC

svn commit: r919681 - in /pivot/trunk: tests/src/org/apache/pivot/tests/include_test.wtkx wtk/src/org/apache/pivot/wtkx/WTKXSerializer.java

Author: gbrown
Date: Sat Mar  6 01:21:40 2010
New Revision: 919681

URL: http://svn.apache.org/viewvc?rev=919681&view=rev
Log:
Resolve issue PIVOT-428.

Modified:
    pivot/trunk/tests/src/org/apache/pivot/tests/include_test.wtkx
    pivot/trunk/wtk/src/org/apache/pivot/wtkx/WTKXSerializer.java

Modified: pivot/trunk/tests/src/org/apache/pivot/tests/include_test.wtkx
URL: http://svn.apache.org/viewvc/pivot/trunk/tests/src/org/apache/pivot/tests/include_test.wtkx?rev=919681&r1=919680&r2=919681&view=diff
==============================================================================
--- pivot/trunk/tests/src/org/apache/pivot/tests/include_test.wtkx (original)
+++ pivot/trunk/tests/src/org/apache/pivot/tests/include_test.wtkx Sat Mar  6 01:21:40 2010
@@ -30,6 +30,6 @@
     </windowStateListeners>
 
     <content>
-        <wtkx:include src="include_test.content.wtkx"/>
+        <wtkx:include src="include_test.content.wtkx" inline="true"/>
     </content>
 </Window>

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtkx/WTKXSerializer.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtkx/WTKXSerializer.java?rev=919681&r1=919680&r2=919681&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtkx/WTKXSerializer.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtkx/WTKXSerializer.java Sat Mar  6 01:21:40 2010
@@ -297,6 +297,7 @@
     public static final String INCLUDE_TAG = "include";
     public static final String INCLUDE_SRC_ATTRIBUTE = "src";
     public static final String INCLUDE_RESOURCES_ATTRIBUTE = "resources";
+    public static final String INCLUDE_INLINE_ATTRIBUTE = "inline";
 
     public static final String SCRIPT_TAG = "script";
     public static final String SCRIPT_SRC_ATTRIBUTE = "src";
@@ -674,12 +675,15 @@
                     // setters only
                     String src = null;
                     Resources resources = this.resources;
+                    boolean inline = false;
 
                     for (Attribute attribute : element.attributes) {
                         if (attribute.localName.equals(INCLUDE_SRC_ATTRIBUTE)) {
                             src = attribute.value;
                         } else if (attribute.localName.equals(INCLUDE_RESOURCES_ATTRIBUTE)) {
                             resources = new Resources(resources, attribute.value);
+                        } else if (attribute.localName.equals(INCLUDE_INLINE_ATTRIBUTE)) {
+                            inline = Boolean.parseBoolean(attribute.value);
                         } else {
                             if (!Character.isUpperCase(attribute.localName.charAt(0))) {
                                 throw new SerializationException("Instance property setters are not"
@@ -699,10 +703,18 @@
 
                     // Read the object
                     WTKXSerializer serializer;
-                    if (element.id == null) {
+                    if (inline) {
                         serializer = new WTKXSerializer(resources, this);
                     } else {
                         serializer = new WTKXSerializer(resources);
+                    }
+
+                    if (element.id != null) {
+                        if (namedSerializers.containsKey(element.id)) {
+                            throw new SerializationException("Namespace ID " + element.id
+                                + " is already in use.");
+                        }
+
                         namedSerializers.put(element.id, serializer);
                     }
 
@@ -711,12 +723,6 @@
                     } else {
                         element.value = serializer.readObject(new URL(location, src));
                     }
-
-                    if (element.id == null
-                        && !serializer.isEmpty()
-                        && serializer.scriptEngineManager == null) {
-                        System.err.println("Include \"" + src + "\" defines unreachable objects.");
-                    }
                 } else {
                     // Process attributes looking for all property setters
                     for (Attribute attribute : element.attributes) {
@@ -730,6 +736,11 @@
 
                 // Add the value to the named objects map
                 if (element.id != null) {
+                    if (namedObjects.containsKey(element.id)) {
+                        throw new SerializationException("Element ID " + element.id
+                            + " is already in use.");
+                    }
+
                     namedObjects.put(element.id, element.value);
                 }