You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@abdera.apache.org by jm...@apache.org on 2007/10/04 18:27:45 UTC
svn commit: r581963 -
/incubator/abdera/java/trunk/extensions/json/src/main/java/org/apache/abdera/ext/json/JSONUtil.java
Author: jmsnell
Date: Thu Oct 4 09:27:44 2007
New Revision: 581963
URL: http://svn.apache.org/viewvc?rev=581963&view=rev
Log:
Fixes a serialization bug
Modified:
incubator/abdera/java/trunk/extensions/json/src/main/java/org/apache/abdera/ext/json/JSONUtil.java
Modified: incubator/abdera/java/trunk/extensions/json/src/main/java/org/apache/abdera/ext/json/JSONUtil.java
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/extensions/json/src/main/java/org/apache/abdera/ext/json/JSONUtil.java?rev=581963&r1=581962&r2=581963&view=diff
==============================================================================
--- incubator/abdera/java/trunk/extensions/json/src/main/java/org/apache/abdera/ext/json/JSONUtil.java (original)
+++ incubator/abdera/java/trunk/extensions/json/src/main/java/org/apache/abdera/ext/json/JSONUtil.java Thu Oct 4 09:27:44 2007
@@ -83,25 +83,34 @@
Element element,
JSONStream jstream)
throws IOException {
- jstream.startObject();
-
- writeLanguageFields(element, jstream);
- if (!isSameAsParentBase(element))
- jstream.writeField("xml:base", element.getResolvedBaseUri());
if (element instanceof Categories) {
+ jstream.startObject();
+ writeLanguageFields(element, jstream);
+ if (!isSameAsParentBase(element))
+ jstream.writeField("xml:base", element.getResolvedBaseUri());
Categories categories = (Categories) element;
jstream.writeField("fixed", categories.isFixed()?"true":"false");
jstream.writeField("scheme", categories.getScheme());
writeList("categories",categories.getCategories(),jstream);
writeExtensions((ExtensibleElement)element,jstream);
+ jstream.endObject();
} else if (element instanceof Category) {
+ jstream.startObject();
+ writeLanguageFields(element, jstream);
+ if (!isSameAsParentBase(element))
+ jstream.writeField("xml:base", element.getResolvedBaseUri());
Category category = (Category) element;
jstream.writeField("term", category.getTerm());
jstream.writeField("scheme", category.getScheme());
jstream.writeField("label", category.getLabel());
writeExtensions((ExtensibleElement)element,jstream);
+ jstream.endObject();
} else if (element instanceof Collection) {
+ jstream.startObject();
+ writeLanguageFields(element, jstream);
+ if (!isSameAsParentBase(element))
+ jstream.writeField("xml:base", element.getResolvedBaseUri());
Collection collection = (Collection)element;
jstream.writeField("href", collection.getResolvedHref());
writeElement("title",collection.getTitleElement(),jstream);
@@ -119,7 +128,12 @@
if (cats.size() > 0)
writeList("categories",collection.getCategories(),jstream);
writeExtensions((ExtensibleElement)element,jstream);
+ jstream.endObject();
} else if (element instanceof Content) {
+ jstream.startObject();
+ writeLanguageFields(element, jstream);
+ if (!isSameAsParentBase(element))
+ jstream.writeField("xml:base", element.getResolvedBaseUri());
Content content = (Content)element;
writeLanguageFields(content,jstream);
jstream.writeField("src", content.getResolvedSrc());
@@ -144,11 +158,21 @@
jstream.writeField("value",content.getValue());
break;
}
+ jstream.endObject();
} else if (element instanceof Control) {
+ jstream.startObject();
+ writeLanguageFields(element, jstream);
+ if (!isSameAsParentBase(element))
+ jstream.writeField("xml:base", element.getResolvedBaseUri());
Control control = (Control)element;
jstream.writeField("draft", control.isDraft()?"true":"false");
writeExtensions((ExtensibleElement)element,jstream);
+ jstream.endObject();
} else if (element instanceof Entry) {
+ jstream.startObject();
+ writeLanguageFields(element, jstream);
+ if (!isSameAsParentBase(element))
+ jstream.writeField("xml:base", element.getResolvedBaseUri());
Entry entry = (Entry)element;
jstream.writeField("id", entry.getId());
writeElement("title", entry.getTitleElement(),jstream);
@@ -164,13 +188,23 @@
writeList("links",entry.getLinks(),jstream);
writeList("categories",entry.getCategories(),jstream);
writeList("inreplyto",ThreadHelper.getInReplyTos(entry),jstream);
- writeExtensions((ExtensibleElement)element,jstream);
+ writeExtensions((ExtensibleElement)element,jstream);
+ jstream.endObject();
} else if (element instanceof Generator) {
+ jstream.startObject();
+ writeLanguageFields(element, jstream);
+ if (!isSameAsParentBase(element))
+ jstream.writeField("xml:base", element.getResolvedBaseUri());
Generator generator = (Generator)element;
jstream.writeField("version", generator.getVersion());
jstream.writeField("uri", generator.getResolvedUri());
jstream.writeField("value", generator.getText());
+ jstream.endObject();
} else if (element instanceof Link) {
+ jstream.startObject();
+ writeLanguageFields(element, jstream);
+ if (!isSameAsParentBase(element))
+ jstream.writeField("xml:base", element.getResolvedBaseUri());
Link link = (Link)element;
jstream.writeField("href", link.getResolvedHref());
jstream.writeField("rel", link.getRel());
@@ -180,17 +214,32 @@
if (link.getLength() > -1)
jstream.writeField("length", link.getLength());
writeExtensions((ExtensibleElement)element,jstream);
+ jstream.endObject();
} else if (element instanceof Person) {
+ jstream.startObject();
+ writeLanguageFields(element, jstream);
+ if (!isSameAsParentBase(element))
+ jstream.writeField("xml:base", element.getResolvedBaseUri());
Person person = (Person)element;
jstream.writeField("name",person.getName());
jstream.writeField("email",person.getEmail());
jstream.writeField("uri",person.getUriElement().getResolvedValue());
writeExtensions((ExtensibleElement)element,jstream);
+ jstream.endObject();
} else if (element instanceof Service) {
+ jstream.startObject();
+ writeLanguageFields(element, jstream);
+ if (!isSameAsParentBase(element))
+ jstream.writeField("xml:base", element.getResolvedBaseUri());
Service service = (Service)element;
writeList("workspaces",service.getWorkspaces(),jstream);
writeExtensions((ExtensibleElement)element,jstream);
+ jstream.endObject();
} else if (element instanceof Source) {
+ jstream.startObject();
+ writeLanguageFields(element, jstream);
+ if (!isSameAsParentBase(element))
+ jstream.writeField("xml:base", element.getResolvedBaseUri());
Source source = (Source)element;
jstream.writeField("id", source.getId());
writeElement("title", source.getTitleElement(),jstream);
@@ -213,8 +262,13 @@
if (source instanceof Feed) {
writeList("entries",((Feed)source).getEntries(),jstream);
}
- writeExtensions((ExtensibleElement)element,jstream);
+ writeExtensions((ExtensibleElement)element,jstream);
+ jstream.endObject();
} else if (element instanceof Text) {
+ jstream.startObject();
+ writeLanguageFields(element, jstream);
+ if (!isSameAsParentBase(element))
+ jstream.writeField("xml:base", element.getResolvedBaseUri());
Text text = (Text)element;
switch(text.getTextType()) {
case TEXT:
@@ -231,21 +285,31 @@
writeElementValue(text.getValueElement(), jstream);
break;
}
+ jstream.endObject();
} else if (element instanceof Workspace) {
+ jstream.startObject();
+ writeLanguageFields(element, jstream);
+ if (!isSameAsParentBase(element))
+ jstream.writeField("xml:base", element.getResolvedBaseUri());
Workspace workspace = (Workspace)element;
writeElement("title",workspace.getTitleElement(),jstream);
writeList("collections",workspace.getCollections(),jstream);
writeExtensions((ExtensibleElement)element,jstream);
+ jstream.endObject();
} else if (element instanceof InReplyTo) {
+ jstream.startObject();
+ writeLanguageFields(element, jstream);
+ if (!isSameAsParentBase(element))
+ jstream.writeField("xml:base", element.getResolvedBaseUri());
InReplyTo irt = (InReplyTo)element;
jstream.writeField("ref",irt.getRef());
jstream.writeField("href",irt.getResolvedHref());
jstream.writeField("type",irt.getMimeType());
jstream.writeField("source",irt.getResolvedSource());
+ jstream.endObject();
} else {
writeElement(element,null,jstream);
}
- jstream.endObject();
}
private static void writeElementValue(