Return-Path: X-Original-To: apmail-abdera-commits-archive@www.apache.org Delivered-To: apmail-abdera-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id C44729129 for ; Thu, 10 Nov 2011 21:49:16 +0000 (UTC) Received: (qmail 67523 invoked by uid 500); 10 Nov 2011 21:49:16 -0000 Delivered-To: apmail-abdera-commits-archive@abdera.apache.org Received: (qmail 67493 invoked by uid 500); 10 Nov 2011 21:49:16 -0000 Mailing-List: contact commits-help@abdera.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@abdera.apache.org Delivered-To: mailing list commits@abdera.apache.org Received: (qmail 67441 invoked by uid 99); 10 Nov 2011 21:49:16 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 10 Nov 2011 21:49:16 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 10 Nov 2011 21:49:12 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 0566C2388ABA for ; Thu, 10 Nov 2011 21:48:52 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1200583 [3/5] - in /abdera/abdera2: activities/src/main/java/org/apache/abdera2/activities/client/ activities/src/main/java/org/apache/abdera2/activities/extra/ activities/src/main/java/org/apache/abdera2/activities/io/gson/ activities/src... Date: Thu, 10 Nov 2011 21:48:48 -0000 To: commits@abdera.apache.org From: jmsnell@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20111110214852.0566C2388ABA@eris.apache.org> Modified: abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/AudioObject.java URL: http://svn.apache.org/viewvc/abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/AudioObject.java?rev=1200583&r1=1200582&r2=1200583&view=diff ============================================================================== --- abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/AudioObject.java (original) +++ abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/AudioObject.java Thu Nov 10 21:48:45 2011 @@ -17,59 +17,70 @@ */ package org.apache.abdera2.activities.model.objects; +import java.util.Map; + import org.apache.abdera2.activities.model.ASObject; import org.apache.abdera2.activities.model.MediaLink; import org.apache.abdera2.common.anno.Name; -@Name("audio") public class AudioObject extends ASObject { - private static final long serialVersionUID = 3686825866815403406L; public static final String EMBEDCODE = "embedCode"; public static final String STREAM = "stream"; - public AudioObject() { } + public AudioObject(Map map) { + super(map,AudioBuilder.class,AudioObject.class); + } - public AudioObject(String displayName) { - setDisplayName(displayName); + public >AudioObject(Map map, Class _class, Class_obj) { + super(map,_class,_obj); } public String getEmbedCode() { return getProperty(EMBEDCODE); } - - public void setEmbedCode(String embedCode) { - setProperty(EMBEDCODE, embedCode); - } - + public MediaLink getStream() { return getProperty(STREAM); } - - public void setStream(MediaLink stream) { - setProperty(STREAM, stream); - } - public static AudioObjectGenerator makeAudio() { - return new AudioObjectGenerator(); + public static AudioBuilder makeAudio() { + return new AudioBuilder("audio"); + } + + @Name("audio") + public static final class AudioBuilder extends Builder { + public AudioBuilder() { + super(AudioObject.class,AudioBuilder.class); + } + public AudioBuilder(Map map) { + super(map, AudioObject.class,AudioBuilder.class); + } + public AudioBuilder(String objectType) { + super(objectType,AudioObject.class,AudioBuilder.class); + } } @SuppressWarnings("unchecked") - public static class AudioObjectGenerator extends ASObjectGenerator { - public AudioObjectGenerator() { - super((Class) AudioObject.class); - } - public AudioObjectGenerator(Class _class) { - super(_class); - } - public >X embedCode(String code) { - item.setEmbedCode(code); - return (X)this; - } - public >X stream(MediaLink stream) { - item.setStream(stream); - return (X)this; + public static abstract class Builder> + extends ASObject.Builder { + public Builder(Class _class,Class _builder) { + super(_class,_builder); + } + public Builder(String objectType,Class _class,Class _builder) { + super(objectType,_class,_builder); + } + public Builder(Map map,Class _class,Class _builder) { + super(map,_class,_builder); + } + public M embedCode(String code) { + set(EMBEDCODE,code); + return (M)this; + } + public M stream(MediaLink stream) { + set(STREAM,stream); + return (M)this; } } } Modified: abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/BadgeObject.java URL: http://svn.apache.org/viewvc/abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/BadgeObject.java?rev=1200583&r1=1200582&r2=1200583&view=diff ============================================================================== --- abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/BadgeObject.java (original) +++ abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/BadgeObject.java Thu Nov 10 21:48:45 2011 @@ -17,32 +17,37 @@ */ package org.apache.abdera2.activities.model.objects; +import java.util.Map; + import org.apache.abdera2.activities.model.ASObject; import org.apache.abdera2.common.anno.Name; -@Name("badge") public class BadgeObject extends ASObject { - private static final long serialVersionUID = -3928700532413017490L; - public BadgeObject() {} + public static Builder makeBadge() { + return new Builder("badge"); + } - public BadgeObject(String displayName) { - setDisplayName(displayName); + @Name("badge") + public static class Builder extends ASObject.Builder{ + public Builder() { + super(BadgeObject.class,Builder.class); + } + public Builder(String objectType) { + super(objectType,BadgeObject.class,Builder.class); + } + public Builder(Map map) { + super(map,BadgeObject.class,Builder.class); + } } - public static BadgeObjectGenerator makeBadge() { - return new BadgeObjectGenerator(); + public BadgeObject(Map map) { + super(map,Builder.class,BadgeObject.class); } - public static class BadgeObjectGenerator extends ASObjectGenerator { - @SuppressWarnings("unchecked") - public BadgeObjectGenerator() { - super((Class) BadgeObject.class); - } - public BadgeObjectGenerator(Class _class) { - super(_class); - } + public >BadgeObject(Map map, Class _class, Class _obj) { + super(map,_class,_obj); } } Modified: abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/BinaryObject.java URL: http://svn.apache.org/viewvc/abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/BinaryObject.java?rev=1200583&r1=1200582&r2=1200583&view=diff ============================================================================== --- abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/BinaryObject.java (original) +++ abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/BinaryObject.java Thu Nov 10 21:48:45 2011 @@ -5,6 +5,7 @@ import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; +import java.util.Map; import javax.activation.DataHandler; import javax.activation.MimeType; @@ -34,103 +35,16 @@ import org.apache.commons.codec.binary.B * Applications need to be careful about which content types they * will allow. */ -@Name("binary") -@Properties({ - @Property(name="mimeType",to=MimeType.class) -}) public class BinaryObject extends FileObject { - private static final long serialVersionUID = 5120608845229587281L; - - public BinaryObject() { - setMimeType("application/octet-stream"); + public BinaryObject(Map map) { + super(map,BinaryBuilder.class,BinaryObject.class); } - public BinaryObject(String displayName) { - this(); - setDisplayName(displayName); + public >BinaryObject(Map map, Class _class, Class_obj) { + super(map,_class,_obj); } - public void setData(DataHandler data, CompressionCodec... comps) throws IOException { - setData(data,(Hasher)null,comps); - } - - public void setData(byte[] data, Hasher hash, CompressionCodec... comps) throws IOException { - setData(new ByteArrayInputStream(data),hash,comps); - } - - /** - * Set the Content and the MimeType from the DatHandler. - * This method defers to the setContent(InputStream) method - * by passing it the InputStream retrieved from the DataHandler. - * That means it currently blocks while reading, consuming, and - * encoding the InputStream. TODO: The better approach would be - * to simple store the DataHandler in the exts table directly - * and use a custom TypeAdapter for the BinaryObject to read and - * consume the DataHandler during the actual Serialization. - */ - public void setData(DataHandler data,Hasher hash, CompressionCodec... comps) throws IOException { - setData(data.getInputStream(),hash,comps); - setMimeType(data.getContentType()); - } - - public void setData(InputStream data) throws IOException { - setData(data,null); - } - - /** - * Set the Content as a Base64 Encoded string. Calling this - * method will perform a blocking read that will consume the - * InputStream and generate a Base64 Encoded String. - * - * If a Hasher class is provided, a hash digest for the - * input data prior to encoding will be generated and - * stored in a property value whose name is the value - * returned by Hasher.name(); e.g., HashHelper.Md5 will - * add "md5":"{hex digest}" to the JSON object. - * - * The content may be optionally compressed prior to base64 - * encoding by passing in one or more CompressionCodecs. If - * compression is used, a "compression" property will be added - * to the object whose value is a comma separated list of - * the applied compression codecs in the order of application. - * The getInputStream method will automatically search for the - * "compression" property and attempt to automatically decompress - * the stream when reading. - * - * This will also automatically set the "length" property equal - * to the total number of uncompressed, unencoded octets. - */ - public void setData(InputStream data, Hasher hash, CompressionCodec... comps) throws IOException { - ByteArrayOutputStream out = - new ByteArrayOutputStream(); - OutputStream bout = - new Base64OutputStream(out,true,0,null); - if (comps.length > 0) { - bout = Compression.wrap(bout,comps); - String comp = Compression.describe(null, comps); - setProperty("compression",comp.substring(1,comp.length()-1)); - } - - byte[] d = new byte[1024]; - int r = -1, len = 0; - while((r = data.read(d)) > -1) { - len += r; - if (hash != null) - hash.update(d, 0, r); - bout.write(d, 0, r); - bout.flush(); - } - bout.close(); - setProperty("length",len); - String c = new String(out.toByteArray(),"UTF-8"); - super.setProperty("data",c); - if (hash != null) - setProperty( - hash.name(), - hash.get()); - } - /** * Returns an InputStream that will decode the Base64 encoded * content on the fly. The data is stored encoded in memory and @@ -150,63 +64,175 @@ public class BinaryObject extends FileOb } return bin; } + + public static BinaryBuilder makeBinary() { + return new BinaryBuilder("binary"); + } - public void setData(byte[] data, CompressionCodec... comps) throws IOException { - setData(new ByteArrayInputStream(data),null,comps); + public static BinaryObject makeBinary(DataHandler data, CompressionCodec... comps) throws IOException { + return makeBinary().data(data,comps).get(); } - public void setData(byte[] data, int s, int e, CompressionCodec... comps) throws IOException { - setData(new ByteArrayInputStream(data,s,e),null,comps); + public static BinaryObject makeBinary(byte[] data, Hasher hash, CompressionCodec... comps) throws IOException { + return makeBinary().data(data,hash,comps).get(); } - public void setData(byte[] data, int s, int e, Hasher hash, CompressionCodec... comps) throws IOException { - setData(new ByteArrayInputStream(data,s,e),hash,comps); + public static BinaryObject makeBinary(DataHandler data,Hasher hash, CompressionCodec... comps) throws IOException { + return makeBinary().data(data,hash,comps).get(); } - - public static BinaryObjectGenerator makeBinary() { - return new BinaryObjectGenerator(); + + public static BinaryObject makeBinary(InputStream data) throws IOException { + return makeBinary().data(data).get(); + } + + public static BinaryObject makeBinary(InputStream data, Hasher hash, CompressionCodec... comps) throws IOException { + return makeBinary().data(data,hash,comps).get(); + } + + public static BinaryObject makeBinary(byte[] data, CompressionCodec... comps) throws IOException { + return makeBinary().data(data,comps).get(); + } + + public static BinaryObject makeBinary(byte[] data, int s, int e, CompressionCodec... comps) throws IOException { + return makeBinary().data(data,s,e,comps).get(); + } + + public static BinaryObject makeBinary(byte[] data, int s, int e, Hasher hash, CompressionCodec... comps) throws IOException { + return makeBinary().data(data,s,e,hash,comps).get(); + } + + + @Name("binary") + @Properties({ + @Property(name="mimeType",to=MimeType.class) + }) + public static final class BinaryBuilder extends Builder { + public BinaryBuilder() { + super(BinaryObject.class,BinaryBuilder.class); + } + public BinaryBuilder(Map map) { + super(map, BinaryObject.class,BinaryBuilder.class); + } + public BinaryBuilder(String objectType) { + super(objectType, BinaryObject.class,BinaryBuilder.class); + } } @SuppressWarnings("unchecked") - public static class BinaryObjectGenerator extends FileObjectGenerator { - public BinaryObjectGenerator() { - super((Class) BinaryObject.class); + public static class Builder> + extends FileObject.Builder { + + boolean a; + + public Builder(Class_class,Class_builder) { + super(_class,_builder); } - public BinaryObjectGenerator(Class _class) { - super(_class); + public Builder(String objectType,Class_class,Class_builder) { + super(objectType,_class,_builder); } - public >X data(InputStream in) throws IOException { - item.setData(in); - return (X)this; + public Builder(Map map,Class_class,Class_builder) { + super(map,_class,_builder); } - public >X data(InputStream in, Hasher hasher, CompressionCodec... codecs) throws IOException { - item.setData(in,hasher,codecs); - return (X)this; + public M mimeType(MimeType mimeType) { + a = true; + return super.mimeType(mimeType); } - public >X data(DataHandler in, CompressionCodec... codecs) throws IOException { - item.setData(in,codecs); - return (X)this; + + public M data(DataHandler data, CompressionCodec... comps) throws IOException { + return data(data,(Hasher)null,comps); + } + + public M data(byte[] data, Hasher hash, CompressionCodec... comps) throws IOException { + return data(new ByteArrayInputStream(data),hash,comps); + } + + /** + * Set the Content and the MimeType from the DatHandler. + * This method defers to the setContent(InputStream) method + * by passing it the InputStream retrieved from the DataHandler. + * That means it currently blocks while reading, consuming, and + * encoding the InputStream. TODO: The better approach would be + * to simple store the DataHandler in the exts table directly + * and use a custom TypeAdapter for the BinaryObject to read and + * consume the DataHandler during the actual Serialization. + */ + public M data(DataHandler data,Hasher hash, CompressionCodec... comps) throws IOException { + data(data.getInputStream(),hash,comps); + if (!a) mimeType(data.getContentType()); + return (M)this; + } + + public M data(InputStream data) throws IOException { + return data(data,null); } - public >X data(DataHandler in, Hasher hasher, CompressionCodec... codecs) throws IOException { - item.setData(in,hasher,codecs); - return (X)this; + + /** + * Set the Content as a Base64 Encoded string. Calling this + * method will perform a blocking read that will consume the + * InputStream and generate a Base64 Encoded String. + * + * If a Hasher class is provided, a hash digest for the + * input data prior to encoding will be generated and + * stored in a property value whose name is the value + * returned by Hasher.name(); e.g., HashHelper.Md5 will + * add "md5":"{hex digest}" to the JSON object. + * + * The content may be optionally compressed prior to base64 + * encoding by passing in one or more CompressionCodecs. If + * compression is used, a "compression" property will be added + * to the object whose value is a comma separated list of + * the applied compression codecs in the order of application. + * The getInputStream method will automatically search for the + * "compression" property and attempt to automatically decompress + * the stream when reading. + * + * This will also automatically set the "length" property equal + * to the total number of uncompressed, unencoded octets. + */ + public M data(InputStream data, Hasher hash, CompressionCodec... comps) throws IOException { + ByteArrayOutputStream out = + new ByteArrayOutputStream(); + OutputStream bout = + new Base64OutputStream(out,true,0,null); + if (comps.length > 0) { + bout = Compression.wrap(bout,comps); + String comp = Compression.describe(null, comps); + set("compression",comp.substring(1,comp.length()-1)); + } + byte[] d = new byte[1024]; + int r = -1, len = 0; + while((r = data.read(d)) > -1) { + len += r; + if (hash != null) + hash.update(d, 0, r); + bout.write(d, 0, r); + bout.flush(); + } + bout.close(); + set("length",len); + String c = new String(out.toByteArray(),"UTF-8"); + set("data",c); + if (hash != null) + set( + hash.name(), + hash.get()); + return (M)this; } - public >X data(byte[] in, CompressionCodec... codecs) throws IOException { - item.setData(in,codecs); - return (X)this; + + public M data(byte[] data, CompressionCodec... comps) throws IOException { + return data(new ByteArrayInputStream(data),null,comps); } - public >X data(byte[] in, Hasher hasher, CompressionCodec... codecs) throws IOException { - item.setData(in,hasher,codecs); - return (X)this; + + public M data(byte[] data, int s, int e, CompressionCodec... comps) throws IOException { + return data(new ByteArrayInputStream(data,s,e),null,comps); } - public >X data(byte[] in, int s, int e, CompressionCodec... codecs) throws IOException { - item.setData(in,s,e,codecs); - return (X)this; + public M data(byte[] data, int s, int e, Hasher hash, CompressionCodec... comps) throws IOException { + return data(new ByteArrayInputStream(data,s,e),hash,comps); } - public >X data(byte[] in, int s, int e, Hasher hasher, CompressionCodec... codecs) throws IOException { - item.setData(in,s,e,hasher,codecs); - return (X)this; + + public void preGet() { + if (!a) mimeType("application/octet-stream"); } } } Modified: abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/BookObject.java URL: http://svn.apache.org/viewvc/abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/BookObject.java?rev=1200583&r1=1200582&r2=1200583&view=diff ============================================================================== --- abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/BookObject.java (original) +++ abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/BookObject.java Thu Nov 10 21:48:45 2011 @@ -1,5 +1,7 @@ package org.apache.abdera2.activities.model.objects; +import java.util.Map; + import org.apache.abdera2.activities.model.ASObject; import org.apache.abdera2.common.anno.Name; @@ -7,98 +9,94 @@ import org.apache.abdera2.common.anno.Na * A simple "objectType":"book" object that serves primarily as an * example of creating new ASObject types. */ -@Name("book") +@SuppressWarnings("unchecked") public class BookObject extends CreativeWork { - private static final long serialVersionUID = -178336535850006357L; - public BookObject() {} + public BookObject(Map map) { + super(map,BookBuilder.class,BookObject.class); + } - public BookObject(String displayName) { - setDisplayName(displayName); + public >BookObject(Map map, Class _class,Class_obj) { + super(map,_class,_obj); } - @SuppressWarnings("unchecked") public T getFormat() { return (T)getProperty("format"); } - public void setFormat(ASObject format) { - setProperty("format", format); - } - public String getEdition() { return getProperty("edition"); } - public void setEdition(String edition) { - setProperty("edition", edition); - } - public String getIsbn10() { return getProperty("isbn10"); } - public void setIsbn10(String isbn) { - setProperty("isbn10", isbn); - } - public String getIsbn13() { return getProperty("isbn13"); } - public void setIsbn13(String isbn) { - setProperty("isbn13", isbn); - } - public int getPageCount() { - return (Integer)getProperty("pageCount"); + return getPropertyInt("pageCount"); } - public void setPageCount(int pageCount) { - setProperty("pageCount", pageCount); - } - - @SuppressWarnings("unchecked") public T getIllustrator() { return (T)getProperty("illustrator"); } - public void setIllustrator(ASObject illustrator) { - setProperty("illustrator", illustrator); + public static BookBuilder makeBook() { + return new BookBuilder("book"); } - - public static BookObjectGenerator makeBook() { - return new BookObjectGenerator(); + + @Name("book") + public static final class BookBuilder extends Builder { + public BookBuilder() { + super(BookObject.class,BookBuilder.class); + } + public BookBuilder(Map map) { + super(map, BookObject.class,BookBuilder.class); + } + public BookBuilder(String objectType) { + super(objectType, BookObject.class,BookBuilder.class); + } } - @SuppressWarnings("unchecked") - public static class BookObjectGenerator extends CreativeWorkGenerator { - public BookObjectGenerator() { - super((Class) BookObject.class); + public abstract static class Builder> + extends CreativeWork.Builder { + public Builder(Class_class,Class_builder) { + super(_class,_builder); + } + public Builder(String objectType,Class_class,Class_builder) { + super(objectType,_class,_builder); } - public BookObjectGenerator(Class _class) { - super(_class); + protected Builder(Map map,Class_class,Class_builder) { + super(map,_class,_builder); } - public >X edition(String val) { - item.setEdition(val); - return (X)this; + public M edition(String val) { + set("edition",val); + return (M)this; } - public >X format(ASObject obj) { - item.setFormat(obj); - return (X)this; + public M format(ASObject obj) { + set("format",obj); + return (M)this; } - public >X illustrator(ASObject obj) { - item.setIllustrator(obj); - return (X)this; + public M illustrator(ASObject obj) { + set("illustrator",obj); + return (M)this; } - public >X isbn10(String val) { - item.setIsbn10(val); - return (X)this; + public M isbn10(String val) { + set("isbn10",val); + return (M)this; } - public >X pageCount(int count) { - item.setPageCount(count); - return (X)this; + public M isbn13(String val) { + set("isbn13",val); + return (M)this; } + public M pageCount(int count) { + set("pageCount",count); + return (M)this; + } + } } Modified: abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/BookmarkObject.java URL: http://svn.apache.org/viewvc/abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/BookmarkObject.java?rev=1200583&r1=1200582&r2=1200583&view=diff ============================================================================== --- abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/BookmarkObject.java (original) +++ abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/BookmarkObject.java Thu Nov 10 21:48:45 2011 @@ -17,50 +17,73 @@ */ package org.apache.abdera2.activities.model.objects; +import java.util.Map; + import org.apache.abdera2.activities.model.ASObject; import org.apache.abdera2.common.anno.Name; import org.apache.abdera2.common.iri.IRI; -@Name("bookmark") public class BookmarkObject extends ASObject { - private static final long serialVersionUID = -2753772783838463022L; public static final String TARGETURL = "targetUrl"; - public BookmarkObject() {} - - public BookmarkObject(String displayName) { - setDisplayName(displayName); + public BookmarkObject(Map map) { + super(map,BookmarkBuilder.class,BookmarkObject.class); } + public >BookmarkObject(Map map, Class _class, Class_obj) { + super(map,_class,_obj); + } + public String getTargetUrl() { return getProperty(TARGETURL); } - public void setTargetUrl(String targetUrl) { - setProperty(TARGETURL, targetUrl); + public static BookmarkBuilder makeBookmark() { + return new BookmarkBuilder("bookmark"); } - public static BookmarkObjectGenerator makeBookmark() { - return new BookmarkObjectGenerator(); + public static BookmarkBuilder makeBookmark(String targetUrl) { + return makeBookmark().targetUrl(targetUrl); + } + + public static BookmarkBuilder makeBookmark(IRI targetUrl) { + return makeBookmark().targetUrl(targetUrl); + } + + @Name("bookmark") + public static final class BookmarkBuilder + extends Builder { + public BookmarkBuilder() { + super(BookmarkObject.class,BookmarkBuilder.class); + } + public BookmarkBuilder(Map map) { + super(map, BookmarkObject.class,BookmarkBuilder.class); + } + public BookmarkBuilder(String objectType) { + super(objectType, BookmarkObject.class,BookmarkBuilder.class); + } } @SuppressWarnings("unchecked") - public static class BookmarkObjectGenerator extends ASObjectGenerator { - public BookmarkObjectGenerator() { - super((Class) BookmarkObject.class); - } - public BookmarkObjectGenerator(Class _class) { - super(_class); - } - public >X targetUrl(String uri) { - item.setTargetUrl(uri); - return (X)this; - } - public >X targetUrl(IRI uri) { - item.setTargetUrl(uri != null ? uri.toString() : null); - return (X)this; + public static abstract class Builder> + extends ASObject.Builder { + public Builder(Class _class,Class_builder) { + super(_class,_builder); + } + public Builder(String objectType,Class _class,Class_builder) { + super(objectType,_class,_builder); + } + public Builder(Map map,Class _class,Class_builder) { + super(map,_class,_builder); + } + public M targetUrl(String uri) { + return targetUrl(new IRI(uri)); } + public M targetUrl(IRI uri) { + set(TARGETURL,uri); + return (M)this; + } } } Modified: abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/CommentObject.java URL: http://svn.apache.org/viewvc/abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/CommentObject.java?rev=1200583&r1=1200582&r2=1200583&view=diff ============================================================================== --- abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/CommentObject.java (original) +++ abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/CommentObject.java Thu Nov 10 21:48:45 2011 @@ -17,32 +17,37 @@ */ package org.apache.abdera2.activities.model.objects; +import java.util.Map; + import org.apache.abdera2.activities.model.ASObject; import org.apache.abdera2.common.anno.Name; -@Name("comment") public class CommentObject extends ASObject { - private static final long serialVersionUID = -7911420073285087386L; - - public CommentObject() {} - public CommentObject(String displayName) { - setDisplayName(displayName); - } - - public static CommentObjectGenerator makeComment() { - return new CommentObjectGenerator(); + public static Builder makeComment() { + return new Builder("comment"); } - public static class CommentObjectGenerator extends ASObjectGenerator { - @SuppressWarnings("unchecked") - public CommentObjectGenerator() { - super((Class) CommentObject.class); + @Name("comment") + public static class Builder extends ASObject.Builder { + public Builder() { + super(CommentObject.class,Builder.class); } - public CommentObjectGenerator(Class _class) { - super(_class); + public Builder(String objectType) { + super(objectType,CommentObject.class,Builder.class); } + protected Builder(Map map) { + super(map,CommentObject.class,Builder.class); + } + } + + public CommentObject(Map map) { + super(map,Builder.class,CommentObject.class); + } + + public >CommentObject(Map map, Class _class, Class_obj) { + super(map,_class,_obj); } } Modified: abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/CreativeWork.java URL: http://svn.apache.org/viewvc/abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/CreativeWork.java?rev=1200583&r1=1200582&r2=1200583&view=diff ============================================================================== --- abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/CreativeWork.java (original) +++ abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/CreativeWork.java Thu Nov 10 21:48:45 2011 @@ -1,5 +1,7 @@ package org.apache.abdera2.activities.model.objects; +import java.util.Map; + import org.apache.abdera2.activities.model.ASObject; /** @@ -8,89 +10,69 @@ import org.apache.abdera2.activities.mod @SuppressWarnings("unchecked") public abstract class CreativeWork extends ASObject { - private static final long serialVersionUID = -178336535850006357L; - public CreativeWork() {} - - public CreativeWork(String displayName) { - setDisplayName(displayName); + protected >CreativeWork(Map map, Class _class, Class_obj) { + super(map,_class,_obj); } public T getAbout() { return (T)getProperty("about"); } - public void setAbout(ASObject about) { - setProperty("about", about); - } - public T getGenre() { return (T)getProperty("genre"); } - public void setGenre(ASObject genre) { - setProperty("genre", genre); - } - public T getPublisher() { return (T)getProperty("publisher"); } - public void setPublisher(ASObject publisher) { - setProperty("publisher", publisher); - } - public T getProvider() { return (T)getProperty("provider"); } - public void setProvider(ASObject provider) { - setProperty("provider", provider); - } - public T getContributor() { return (T)getProperty("contributor"); } - public void setContributor(ASObject contributor) { - setProperty("contributor", contributor); - } - public T getEditor() { return (T)getProperty("editor"); } - public void setEditor(ASObject editor) { - setProperty("editor", editor); - } - - public static abstract class CreativeWorkGenerator extends ASObjectGenerator { - protected CreativeWorkGenerator(Class _class) { - super(_class); - } - public >X about(ASObject object) { - item.setAbout(object); - return (X)this; - } - public >X contributor(ASObject object) { - item.setContributor(object); - return (X)this; - } - public >X editor(ASObject object) { - item.setEditor(object); - return (X)this; - } - public >X genre(ASObject object) { - item.setGenre(object); - return (X)this; - } - public >X provider(ASObject object) { - item.setProvider(object); - return (X)this; - } - public >X publisher(ASObject object) { - item.setPublisher(object); - return (X)this; + public static abstract class Builder> + extends ASObject.Builder { + protected Builder(Class_class,Class_builder) { + super(_class,_builder); + } + protected Builder(String objectType,Class_class,Class_builder) { + super(objectType,_class,_builder); + } + protected Builder(Map map,Class_class,Class_builder) { + super(map,_class,_builder); + } + public M about(ASObject object) { + set("about",object); + return (M)this; + } + public M contributor(ASObject object) { + set("contributor",object); + return (M)this; + } + public M editor(ASObject object) { + set("editor",object); + return (M)this; + } + public M genre(ASObject object) { + set("genre",object); + return (M)this; + } + public M provider(ASObject object) { + set("provider",object); + return (M)this; + } + public M publisher(ASObject object) { + set("publisher",object); + return (M)this; } } } Modified: abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/EmbeddedExperience.java URL: http://svn.apache.org/viewvc/abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/EmbeddedExperience.java?rev=1200583&r1=1200582&r2=1200583&view=diff ============================================================================== --- abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/EmbeddedExperience.java (original) +++ abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/EmbeddedExperience.java Thu Nov 10 21:48:45 2011 @@ -3,10 +3,10 @@ package org.apache.abdera2.activities.mo import java.util.Map; import org.apache.abdera2.activities.model.ASBase; -import org.apache.abdera2.activities.model.ASObject; -import org.apache.abdera2.activities.model.Generator; import org.apache.abdera2.common.iri.IRI; +import com.google.common.collect.ImmutableMap; + /** * Represents an Embedded Experience data structure. Embedded Experiences * were introduced to Activity Streams through the OpenSocial 2.0 specification. @@ -15,110 +15,169 @@ import org.apache.abdera2.common.iri.IRI * Gadget specification with an Activity Stream object that can be rendered * in-line when the activity data is displayed within an OpenSocial container. */ -public class EmbeddedExperience +public final class EmbeddedExperience extends ASBase { - - private static final long serialVersionUID = -4311572934016006379L; - - public EmbeddedExperience() {} - - public IRI getUrl() { - return getProperty("url"); - } - public void setUrl(IRI iri) { - setProperty("url", iri); + public EmbeddedExperience(Map map) { + super(map,Builder.class,EmbeddedExperience.class); } - public void setUrl(String iri) { - setUrl(new IRI(iri)); + public IRI getUrl() { + return getProperty("url"); } public IRI getGadget() { return getProperty("gadget"); } - public void setGadget(IRI iri) { - setProperty("gadget", iri); - } - - public void setGadget(String iri) { - setGadget(new IRI(iri)); - } - public ASBase getContext() { return getProperty("context"); } - public void setContext(ASBase context) { - setProperty("context", context); - } - - public void setContext(Map context) { - setProperty("context", context); - } - public IRI getPreviewImage() { return getProperty("previewImage"); } - public void setPreviewImage(IRI iri) { - setProperty("previewImage", iri); - } - - public void setPreviewImage(String iri) { - setGadget(new IRI(iri)); + public static Builder makeEmbeddedExperience() { + return new Builder(); } - public static EmbeddedExperienceGenerator makeEmbeddedExperience() { - return new EmbeddedExperienceGenerator(); + public static EmbeddedExperience makeGadgetEmbeddedExperience( + String url, + ASBase context, + String preview) { + return makeEmbeddedExperience() + .gadget(url) + .context(context) + .previewImage(preview) + .get(); + } + + public static EmbeddedExperience makeGadgetEmbeddedExperience( + IRI url, + ASBase context, + IRI preview) { + return makeEmbeddedExperience() + .gadget(url) + .context(context) + .previewImage(preview) + .get(); + } + + public static EmbeddedExperience makeGadgetEmbeddedExperience( + String url, + Map context, + String preview) { + return makeEmbeddedExperience() + .gadget(url) + .context(context) + .previewImage(preview) + .get(); + } + + public static EmbeddedExperience makeGadgetEmbeddedExperience( + IRI url, + Map context, + IRI preview) { + return makeEmbeddedExperience() + .gadget(url) + .context(context) + .previewImage(preview) + .get(); + } + + + public static EmbeddedExperience makeUrlEmbeddedExperience( + String url, + ASBase context, + String preview) { + return makeEmbeddedExperience() + .url(url) + .context(context) + .previewImage(preview) + .get(); + } + + public static EmbeddedExperience makeUrlEmbeddedExperience( + IRI url, + ASBase context, + IRI preview) { + return makeEmbeddedExperience() + .url(url) + .context(context) + .previewImage(preview) + .get(); + } + + public static EmbeddedExperience makeUrlEmbeddedExperience( + String url, + Map context, + String preview) { + return makeEmbeddedExperience() + .url(url) + .context(context) + .previewImage(preview) + .get(); + } + + public static EmbeddedExperience makeUrlEmbeddedExperience( + IRI url, + Map context, + IRI preview) { + return makeEmbeddedExperience() + .url(url) + .context(context) + .previewImage(preview) + .get(); } - public static class EmbeddedExperienceGenerator - extends Generator { + public final static class Builder + extends ASBase.Builder { - public EmbeddedExperienceGenerator() { - super(EmbeddedExperience.class); + public Builder() { + super(EmbeddedExperience.class,Builder.class); } - public EmbeddedExperienceGenerator context(ASObject object) { - item.setContext(object); + protected Builder(Map map) { + super(map,EmbeddedExperience.class,Builder.class); + } + + public Builder context(ASBase object) { + set("context", object); return this; } - public EmbeddedExperienceGenerator context(Map map) { - item.setContext(map); + public Builder context(Map map) { + set("context", ImmutableMap.copyOf(map)); return this; } - public EmbeddedExperienceGenerator gadget(IRI iri) { - item.setGadget(iri); + public Builder gadget(IRI iri) { + set("gadget",iri); return this; } - public EmbeddedExperienceGenerator gadget(String iri) { - item.setGadget(iri); - return this; + public Builder gadget(String iri) { + return gadget(iri); } - public EmbeddedExperienceGenerator previewImage(IRI iri) { - item.setPreviewImage(iri); + public Builder previewImage(IRI iri) { + set("previewImage",iri); return this; } - public EmbeddedExperienceGenerator previewImage(String iri) { - item.setPreviewImage(iri); - return this; + public Builder previewImage(String iri) { + return previewImage(new IRI(iri)); } - public EmbeddedExperienceGenerator url(IRI iri) { - item.setUrl(iri); + public Builder url(IRI iri) { + set("url",iri); return this; } - public EmbeddedExperienceGenerator url(String uri) { - item.setUrl(uri); - return this; + public Builder url(String uri) { + return url(new IRI(uri)); } + } } Copied: abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/ErrorObject.java (from r1187164, abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/protocol/ErrorObject.java) URL: http://svn.apache.org/viewvc/abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/ErrorObject.java?p2=abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/ErrorObject.java&p1=abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/protocol/ErrorObject.java&r1=1187164&r2=1200583&rev=1200583&view=diff ============================================================================== --- abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/protocol/ErrorObject.java (original) +++ abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/ErrorObject.java Thu Nov 10 21:48:45 2011 @@ -15,50 +15,58 @@ * copyright in this work, please see the NOTICE file in the top level * directory of this distribution. */ -package org.apache.abdera2.activities.protocol; +package org.apache.abdera2.activities.model.objects; + +import java.util.Map; import org.apache.abdera2.activities.io.gson.Properties; import org.apache.abdera2.activities.io.gson.Property; import org.apache.abdera2.activities.model.ASObject; +import org.apache.abdera2.common.anno.Name; -@Properties( -@Property(name="code",to=Integer.class) -) -public class ErrorObject extends ASObject { - private static final long serialVersionUID = 2361855511692036786L; +public final class ErrorObject extends ASObject { public static final String TYPE = "error"; - public ErrorObject() { - super(TYPE); + public ErrorObject(Map map) { + super(map,Builder.class,ErrorObject.class); } - public ErrorObject(String displayName) { - super(TYPE); - setDisplayName(displayName); - } - public String getObjectType() { - return TYPE; - } + public int getCode() { - return (Integer)getProperty("code"); + return getPropertyInt("code"); } - public void setCode(int code) { - setProperty("code",code); + + public static Builder makeError() { + return new Builder("error"); } - public static ErrorObjectGenerator makeError() { - return new ErrorObjectGenerator(); + public static ErrorObject makeError(int code, String message) { + return makeError() + .code(code) + .displayName(message) + .get(); } - @SuppressWarnings("unchecked") - public static class ErrorObjectGenerator extends ASObjectGenerator { - public ErrorObjectGenerator() { - super((Class) ErrorObject.class); - } - public ErrorObjectGenerator(Class _class) { - super(_class); - } - public >X code(int code) { - item.setCode(code); - return (X)this; + @Name("error") + @Properties(@Property(name="code",to=Integer.class)) + public final static class Builder + extends ASObject.Builder { + public Builder() { + super(ErrorObject.class,Builder.class); + } + public Builder(String objectType) { + super(objectType,ErrorObject.class,Builder.class); + } + public Builder(Map map) { + super(map,ErrorObject.class,Builder.class); + } + public Builder template() { + return new Builder(map.build()); + } + public Builder code(int code) { + set("code",code); + return this; + } + public ErrorObject get() { + return new ErrorObject(map.build()); } } } Propchange: abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/ErrorObject.java ------------------------------------------------------------------------------ svn:mime-type = text/plain Modified: abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/EventObject.java URL: http://svn.apache.org/viewvc/abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/EventObject.java?rev=1200583&r1=1200582&r2=1200583&view=diff ============================================================================== --- abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/EventObject.java (original) +++ abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/EventObject.java Thu Nov 10 21:48:45 2011 @@ -17,128 +17,114 @@ */ package org.apache.abdera2.activities.model.objects; +import java.util.Map; + import org.apache.abdera2.activities.model.ASObject; import org.apache.abdera2.activities.model.Collection; import org.apache.abdera2.common.anno.Name; import org.joda.time.DateTime; -@Name("event") public class EventObject extends ASObject { - private static final long serialVersionUID = -7607925831414516450L; public static final String ATTENDING = "attending"; public static final String ENDTIME = "endTime"; public static final String MAYBEATTENDING = "maybeAttending"; public static final String NOTATTENDING = "notAttending"; public static final String STARTTIME = "startTime"; - public EventObject() { - } - - public EventObject(String displayName) { - setDisplayName(displayName); + public EventObject(Map map) { + super(map,EventBuilder.class,EventObject.class); } - protected Collection getcol(String name, boolean create) { - Collection col = getProperty(name); - if (col == null && create) { - col = new Collection(); - setProperty(name,col); - } - return col; + public >EventObject(Map map, Class _class, Class_obj) { + super(map,_class,_obj); } public Collection getAttending() { - return getcol(ATTENDING,false); - } - - public Collection getAttending(boolean create) { - return getcol(ATTENDING,create); - } - - public void setAttending(Collection attending) { - setProperty(ATTENDING, attending); + return getProperty(ATTENDING); } public DateTime getEndTime() { return getProperty(ENDTIME); } - public void setEndTime(DateTime endTime) { - setProperty(ENDTIME, endTime); - } - public Collection getMaybeAttending() { - return getcol(MAYBEATTENDING,false); - } - - public Collection getMaybeAttending(boolean create) { - return getcol(MAYBEATTENDING,create); - } - - public void setMaybeAttending(Collection maybeAttending) { - setProperty(MAYBEATTENDING, maybeAttending); + return getProperty(MAYBEATTENDING); } public Collection getNotAttending() { - return getcol(NOTATTENDING,false); + return getProperty(NOTATTENDING); } - public Collection getNotAttending(boolean create) { - return getcol(NOTATTENDING,create); + public DateTime getStartTime() { + return getProperty(STARTTIME); } - public void setNotAttending(Collection notAttending) { - setProperty(NOTATTENDING, notAttending); + public static EventBuilder makeEvent() { + return new EventBuilder("event"); } - public DateTime getStartTime() { - return getProperty(STARTTIME); + public static EventBuilder makeEvent(String objectType) { + return new EventBuilder(objectType); } - public void setStartTime(DateTime startTime) { - setProperty(STARTTIME, startTime); - } + @Name("event") + public static final class EventBuilder extends Builder { + + public EventBuilder() { + super(EventObject.class,EventBuilder.class); + } - public static EventObjectGenerator makeEvent() { - return new EventObjectGenerator(); + public EventBuilder(Map map) { + super(map, EventObject.class,EventBuilder.class); + } + + public EventBuilder(String objectType) { + super(objectType, EventObject.class,EventBuilder.class); + } + } @SuppressWarnings("unchecked") - public static class EventObjectGenerator extends ASObjectGenerator { + public static abstract class Builder> + extends ASObject.Builder { - public EventObjectGenerator() { - super((Class) EventObject.class); + public Builder(Class_class,Class_builder) { + super(_class,_builder); } - public EventObjectGenerator(Class _class) { - super(_class); + public Builder(String objectType,Class_class,Class_builder) { + super(objectType,_class,_builder); } - public >X attending(Collection col) { - item.setAttending(col); - return (X)this; + public Builder(Map map,Class_class,Class_builder) { + super(map,_class,_builder); } - - public >X endTime(DateTime dt) { - item.setEndTime(dt); - return (X)this; + + public M attending(Collection col) { + set(ATTENDING, col); + return (M)this; } - public >X maybeAttending(Collection col) { - item.setMaybeAttending(col); - return (X)this; + public M endTime(DateTime dt) { + set(ENDTIME, dt); + return (M)this; } - public >X notAttending(Collection col) { - item.setNotAttending(col); - return (X)this; + public M maybeAttending(Collection col) { + set(MAYBEATTENDING, col); + return (M)this; } - public >X startTime(DateTime t) { - item.setStartTime(t); - return (X)this; + public M notAttending(Collection col) { + set(NOTATTENDING, col); + return (M)this; } + + public M startTime(DateTime t) { + set(STARTTIME, t); + return (M)this; + } } } Modified: abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/FileObject.java URL: http://svn.apache.org/viewvc/abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/FileObject.java?rev=1200583&r1=1200582&r2=1200583&view=diff ============================================================================== --- abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/FileObject.java (original) +++ abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/FileObject.java Thu Nov 10 21:48:45 2011 @@ -17,79 +17,124 @@ */ package org.apache.abdera2.activities.model.objects; +import java.util.Map; + import javax.activation.MimeType; -import javax.activation.MimeTypeParseException; import org.apache.abdera2.activities.model.ASObject; import org.apache.abdera2.common.anno.Name; import org.apache.abdera2.common.iri.IRI; import org.apache.abdera2.common.mediatype.MimeTypeHelper; -@Name("file") public class FileObject extends ASObject { - private static final long serialVersionUID = -5449136149228249949L; public static final String FILEURL = "fileUrl"; - public FileObject() { + public FileObject(Map map) { + super(map,FileBuilder.class,FileObject.class); } - public FileObject(String displayName) { - setDisplayName(displayName); + public >FileObject(Map map, Class _class, Class _obj) { + super(map,_class,_obj); } public IRI getFileUrl() { return getProperty(FILEURL); } - public void setFileUrl(IRI fileUrl) { - setProperty(FILEURL, fileUrl); - } - - public void setFileUrl(String fileUrl) { - setFileUrl(new IRI(fileUrl)); - } - public MimeType getMimeType() { return getProperty("mimeType"); } - public void setMimeType(MimeType mimeType) { - setProperty("mimeType", MimeTypeHelper.unmodifiableMimeType(mimeType)); + public static FileBuilder makeFile() { + return new FileBuilder("file"); } - public void setMimeType(String mimeType) { - setProperty("mimeType", MimeTypeHelper.unmodifiableMimeType(mimeType)); + public static FileObject makeFile( + String displayName, + String fileUrl, + String mimeType) { + return makeFile() + .displayName(displayName) + .fileUrl(fileUrl) + .mimeType(mimeType) + .get(); + } + + public static FileObject makeFile( + String displayName, + IRI fileUrl, + String mimeType) { + return makeFile() + .displayName(displayName) + .fileUrl(fileUrl) + .mimeType(mimeType) + .get(); + } + + public static FileObject makeFile( + String displayName, + String fileUrl, + MimeType mimeType) { + return makeFile() + .displayName(displayName) + .fileUrl(fileUrl) + .mimeType(mimeType) + .get(); + } + + public static FileObject makeFile( + String displayName, + IRI fileUrl, + MimeType mimeType) { + return makeFile() + .displayName(displayName) + .fileUrl(fileUrl) + .mimeType(mimeType) + .get(); + } + + @Name("file") + public static final class FileBuilder extends Builder { + public FileBuilder() { + super(FileObject.class,FileBuilder.class); + } + public FileBuilder(Map map) { + super(map, FileObject.class,FileBuilder.class); + } + public FileBuilder(String objectType) { + super(objectType, FileObject.class,FileBuilder.class); + } } - public static FileObjectGenerator makeFile() { - return new FileObjectGenerator(); - } @SuppressWarnings("unchecked") - public static class FileObjectGenerator extends ASObjectGenerator { - public FileObjectGenerator() { - super((Class) FileObject.class); - } - public FileObjectGenerator(Class _class) { - super(_class); - } - public >X fileUrl(IRI iri) { - item.setFileUrl(iri); - return (X)this; - } - public >X fileUrl(String uri) { - item.setFileUrl(uri); - return (X)this; - } - public >X mimeType(MimeType mimeType) { - item.setMimeType(mimeType); - return (X)this; - } - public >X mimeType(String mimeType) { - item.setMimeType(mimeType); - return (X)this; + public static abstract class Builder> + extends ASObject.Builder { + public Builder(Class _class, Class _builder) { + super(_class,_builder); + } + public Builder(String objectType,Class _class, Class _builder) { + super(objectType,_class,_builder); + } + public Builder(Map map,Class _class, Class _builder) { + super(map,_class,_builder); + } + public M fileUrl(IRI iri) { + set(FILEURL,iri); + return (M)this; + } + public M fileUrl(String uri) { + return fileUrl(new IRI(uri)); + } + public M mimeType(MimeType mimeType) { + set("mimeType",MimeTypeHelper.unmodifiableMimeType(mimeType)); + return (M)this; + } + public M mimeType(String mimeType) { + set("mimeType",MimeTypeHelper.unmodifiableMimeType(mimeType)); + return (M)this; } } } Modified: abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/GroupObject.java URL: http://svn.apache.org/viewvc/abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/GroupObject.java?rev=1200583&r1=1200582&r2=1200583&view=diff ============================================================================== --- abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/GroupObject.java (original) +++ abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/GroupObject.java Thu Nov 10 21:48:45 2011 @@ -17,32 +17,42 @@ */ package org.apache.abdera2.activities.model.objects; +import java.util.Map; + import org.apache.abdera2.activities.model.ASObject; import org.apache.abdera2.common.anno.Name; -@Name("group") public class GroupObject extends ASObject { - private static final long serialVersionUID = -8735573352110428150L; - - public GroupObject() {} - public GroupObject(String displayName) { - setDisplayName(displayName); + public static Builder makeGroup() { + return new Builder("group"); } - - public static GroupObjectGenerator makeGroup() { - return new GroupObjectGenerator(); + + public static GroupObject makeGroup(String id) { + return makeGroup().id(id).get(); } - public static class GroupObjectGenerator extends ASObjectGenerator { - @SuppressWarnings("unchecked") - public GroupObjectGenerator() { - super((Class) GroupObject.class); + @Name("group") + public static final class Builder extends ASObject.Builder { + public Builder() { + super(GroupObject.class,Builder.class); + } + public Builder(String objectType) { + super(objectType,GroupObject.class,Builder.class); } - public GroupObjectGenerator(Class _class) { - super(_class); + public Builder(Map map) { + super(map,GroupObject.class,Builder.class); } } + + public GroupObject(Map map) { + super(map,Builder.class,GroupObject.class); + } + + public >GroupObject(Map map, Class _class, Class_obj) { + super(map,_class,_obj); + } + } Modified: abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/ImageObject.java URL: http://svn.apache.org/viewvc/abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/ImageObject.java?rev=1200583&r1=1200582&r2=1200583&view=diff ============================================================================== --- abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/ImageObject.java (original) +++ abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/ImageObject.java Thu Nov 10 21:48:45 2011 @@ -17,46 +17,62 @@ */ package org.apache.abdera2.activities.model.objects; +import java.util.Map; + import org.apache.abdera2.activities.model.ASObject; import org.apache.abdera2.activities.model.MediaLink; import org.apache.abdera2.common.anno.Name; -@Name("image") public class ImageObject extends ASObject { - private static final long serialVersionUID = 2130182696482757451L; public static final String FULLIMAGE = "fullImage"; - public ImageObject() {} - - public ImageObject(String displayName) { - setDisplayName(displayName); + public ImageObject(Map map) { + super(map,ImageBuilder.class,ImageObject.class); } + public >ImageObject(Map map, Class _class,Class_obj) { + super(map,_class,_obj); + } + public MediaLink getFullImage() { return getProperty(FULLIMAGE); } - - public void setFullImage(MediaLink fullImage) { - setProperty(FULLIMAGE, fullImage); + + public static ImageBuilder makeImage() { + return new ImageBuilder("image"); } - public static ImageObjectGenerator makeImage() { - return new ImageObjectGenerator(); + @Name("image") + public static final class ImageBuilder extends Builder { + public ImageBuilder() { + super(ImageObject.class, ImageBuilder.class); + } + public ImageBuilder(Map map) { + super(map, ImageObject.class, ImageBuilder.class); + } + public ImageBuilder(String objectType) { + super(objectType,ImageObject.class, ImageBuilder.class); + } + } @SuppressWarnings("unchecked") - public static class ImageObjectGenerator extends ASObjectGenerator { - public ImageObjectGenerator() { - super((Class) ImageObject.class); - } - public ImageObjectGenerator(Class _class) { - super(_class); - } - public >X fullImage(MediaLink fullImage) { - item.setFullImage(fullImage); - return (X)this; + public static abstract class Builder> + extends ASObject.Builder { + public Builder(Class_class,Class_builder) { + super(_class,_builder); + } + public Builder(String objectType,Class_class,Class_builder) { + super(objectType,_class,_builder); + } + public Builder(Map map,Class_class,Class_builder) { + super(map,_class,_builder); + } + public M fullImage(MediaLink fullImage) { + set(FULLIMAGE, fullImage); + return (M)this; } } } Modified: abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/Mood.java URL: http://svn.apache.org/viewvc/abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/Mood.java?rev=1200583&r1=1200582&r2=1200583&view=diff ============================================================================== --- abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/Mood.java (original) +++ abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/Mood.java Thu Nov 10 21:48:45 2011 @@ -17,61 +17,63 @@ */ package org.apache.abdera2.activities.model.objects; +import java.util.Map; + import org.apache.abdera2.activities.model.ASBase; -import org.apache.abdera2.activities.model.Generator; import org.apache.abdera2.activities.model.MediaLink; +import org.apache.abdera2.common.iri.IRI; -public class Mood extends ASBase { +public final class Mood extends ASBase { - private static final long serialVersionUID = -3361108212621494744L; public static final String IMAGE = "image"; public static final String DISPLAYNAME = "displayName"; - public Mood() {} - - public Mood(String displayName) { - setDisplayName(displayName); + protected Mood(Map map) { + super(map,Builder.class,Mood.class); } public String getDisplayName() { return getProperty(DISPLAYNAME); } - public void setDisplayName(String displayName) { - setProperty(DISPLAYNAME, displayName); - } - public MediaLink getImage() { return getProperty(IMAGE); } - public void setImage(MediaLink image) { - setProperty(IMAGE, image); - } - public String toString() { return getDisplayName(); } - public static MoodGenerator makeMood() { - return new MoodGenerator(); + public static Builder makeMood() { + return new Builder(); } - @SuppressWarnings("unchecked") - public static class MoodGenerator extends Generator { - public MoodGenerator() { - super((Class) Mood.class); + public static Mood makeMood(String name, MediaLink image) { + return makeMood().displayName(name).image(image).get(); + } + + public static Mood makeMood(String name, String image) { + return makeMood().displayName(name).image(MediaLink.makeMediaLink(image)).get(); + } + + public static Mood makeMood(String name, IRI image) { + return makeMood().displayName(name).image(MediaLink.makeMediaLink(image)).get(); + } + + public static final class Builder extends ASBase.Builder { + public Builder() { + super(Mood.class,Builder.class); } - public MoodGenerator(Class _class) { - super(_class); + protected Builder(Map map) { + super(map,Mood.class,Builder.class); } - public >X displayName(String dn) { - item.setDisplayName(dn); - return (X)this; + public Builder displayName(String dn) { + set(DISPLAYNAME,dn); + return this; } - public >X image(MediaLink link) { - item.setImage(link); - return (X)this; + public Builder image(MediaLink link) { + set(IMAGE, link); + return this; } } } Modified: abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/MovieObject.java URL: http://svn.apache.org/viewvc/abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/MovieObject.java?rev=1200583&r1=1200582&r2=1200583&view=diff ============================================================================== --- abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/MovieObject.java (original) +++ abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/MovieObject.java Thu Nov 10 21:48:45 2011 @@ -1,5 +1,7 @@ package org.apache.abdera2.activities.model.objects; +import java.util.Map; + import org.apache.abdera2.activities.io.gson.Properties; import org.apache.abdera2.activities.io.gson.Property; import org.apache.abdera2.activities.model.ASObject; @@ -11,116 +13,109 @@ import org.joda.time.Duration; * A simple "objectType":"movie" object that serves primarily as an * example of creating new ASObject types. */ -@Name("movie") -@Properties({ - @Property(name="preview",to=MediaLink.class), - @Property(name="duration",to=Duration.class) -}) @SuppressWarnings("unchecked") public class MovieObject extends CreativeWork { - private static final long serialVersionUID = -1551754630697817614L; - public MovieObject() {} + public MovieObject(Map map) { + super(map,MovieBuilder.class,MovieObject.class); + } - public MovieObject(String displayName) { - setDisplayName(displayName); + public >MovieObject(Map map, Class _class, Class_obj) { + super(map,_class,_obj); } public T getActors() { return (T)getProperty("actors"); } - public void setActors(ASObject actors) { - setProperty("actors", actors); - } - public T getDirector() { return (T)getProperty("director"); } - public void setDirector(ASObject director) { - setProperty("director", director); - } - public Duration getDuration() { return getProperty("duration"); } - public void setDuration(Duration duration) { - setProperty("duration", duration); - } - public T getMusicBy() { return (T)getProperty("musicBy"); } - public void setMusicBy(ASObject musicBy) { - setProperty("musicBy", musicBy); - } - public T getProducer() { return (T)getProperty("producer"); } - public void setProducer(ASObject producer) { - setProperty("producer", producer); - } - public T getProductionCompany() { return (T)getProperty("productionCompany"); } - public void setProductionCompany(ASObject org) { - setProperty("productionCompany", org); - } - public MediaLink getPreview() { return getProperty("preview"); } - public void setPreview(MediaLink link) { - setProperty("preview", link); + public static MovieBuilder makeMovie() { + return new MovieBuilder("movie"); } - public static MovieObjectGenerator makeMovie() { - return new MovieObjectGenerator(); + @Name("movie") + @Properties({ + @Property(name="preview",to=MediaLink.class), + @Property(name="duration",to=Duration.class) + }) + public static final class MovieBuilder extends Builder { + + public MovieBuilder() { + super(MovieObject.class, MovieBuilder.class); + } + + public MovieBuilder(Map map) { + super(map, MovieObject.class, MovieBuilder.class); + } + + public MovieBuilder(String objectType) { + super(objectType, MovieObject.class, MovieBuilder.class); + } + } - public static class MovieObjectGenerator extends CreativeWorkGenerator { - public MovieObjectGenerator() { - super((Class) MovieObject.class); + public static class Builder> + extends CreativeWork.Builder { + public Builder(Class_class,Class_builder) { + super(_class,_builder); + } + public Builder(String objectType,Class_class,Class_builder) { + super(objectType,_class,_builder); } - public MovieObjectGenerator(Class _class) { - super(_class); + public Builder(Map map,Class_class,Class_builder) { + super(map,_class,_builder); } - public >X actors(ASObject obj) { - item.setActors(obj); - return (X)this; + public M actors(ASObject obj) { + set("actors",obj); + return (M)this; } - public >X director(ASObject obj) { - item.setDirector(obj); - return (X)this; + public M director(ASObject obj) { + set("director",obj); + return (M)this; } - public >X duration(Duration obj) { - item.setDuration(obj); - return (X)this; + public M duration(Duration obj) { + set("duration",obj); + return (M)this; } - public >X musicBy(ASObject obj) { - item.setMusicBy(obj); - return (X)this; + public M musicBy(ASObject obj) { + set("musicBy",obj); + return (M)this; } - public >X preview(MediaLink obj) { - item.setPreview(obj); - return (X)this; + public M preview(MediaLink obj) { + set("preview",obj); + return (M)this; } - public >X producer(ASObject obj) { - item.setProducer(obj); - return (X)this; + public M producer(ASObject obj) { + set("producer",obj); + return (M)this; } - public >X productionCompany(ASObject obj) { - item.setProductionCompany(obj); - return (X)this; + public M productionCompany(ASObject obj) { + set("productionCompany",obj); + return (M)this; } } } Modified: abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/NameObject.java URL: http://svn.apache.org/viewvc/abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/NameObject.java?rev=1200583&r1=1200582&r2=1200583&view=diff ============================================================================== --- abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/NameObject.java (original) +++ abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/NameObject.java Thu Nov 10 21:48:45 2011 @@ -1,133 +1,120 @@ package org.apache.abdera2.activities.model.objects; +import java.util.Map; + import org.apache.abdera2.activities.model.ASObject; import org.apache.abdera2.common.iri.IRI; -@org.apache.abdera2.common.anno.Name("name") public class NameObject extends ASObject { - private static final long serialVersionUID = 5503270370616022868L; - - public NameObject() { - super(); + public NameObject(Map map) { + super(map,NameBuilder.class,NameObject.class); + } + + public >NameObject(Map map, Class _class, Class_obj) { + super(map,_class,_obj); } public String getFamilyName() { return getProperty("familyName"); } - public void setFamilyName(String val) { - setProperty("familyName", val); - } - public String getFormatted() { return getProperty("formatted"); } - public void setFormatted(String val) { - setProperty("formatted", val); - } - public String getGivenName() { return getProperty("givenName"); } - public void setGivenName(String val) { - setProperty("givenName", val); - } - public String getHonorificPrefix() { return getProperty("honorificPrefix"); } - public void setHonorificPrefix(String val) { - setProperty("honorificPrefix", val); - } - public String getHonorificSuffix() { return getProperty("honorificSuffix"); } - public void setHonorificSuffix(String val) { - setProperty("honorificSuffix", val); - } - public String getMiddleName() { return getProperty("middleName"); } - public void setMiddleName(String val) { - setProperty("middleName", val); - } - public String getPronunciation() { return getProperty("pronunciation"); } - public void setPronunciation(String val) { - setProperty("pronunciation", val); - } - public IRI getPronunciationUrl() { return getProperty("pronunciationUrl"); } - public void setPronunciationUrl(IRI val) { - setProperty("pronunciationUrl", val); - } - - public void setPronunciationUrl(String val) { - setPronunciationUrl(new IRI(val)); + public static NameBuilder makeName() { + return new NameBuilder("name"); } - public static NameObjectGenerator makeName() { - return new NameObjectGenerator(); + @org.apache.abdera2.common.anno.Name("name") + public static final class NameBuilder extends Builder { + + public NameBuilder() { + super(NameObject.class,NameBuilder.class); + } + + public NameBuilder(Map map) { + super(map, NameObject.class,NameBuilder.class); + } + + public NameBuilder(String objectType) { + super(objectType, NameObject.class,NameBuilder.class); + } + } @SuppressWarnings("unchecked") - public static class NameObjectGenerator extends ASObjectGenerator { - public NameObjectGenerator() { - super((Class) NameObject.class); - } - public NameObjectGenerator(Class _class) { - super(_class); - } - public >X familyName(String fn) { - item.setFamilyName(fn); - return (X)this; - } - public >X formatted(String fn) { - item.setFormatted(fn); - return (X)this; - } - public >X givenName(String fn) { - item.setGivenName(fn); - return (X)this; - } - public >X honorificPrefix(String fn) { - item.setHonorificPrefix(fn); - return (X)this; - } - public >X honorificSuffix(String fn) { - item.setHonorificSuffix(fn); - return (X)this; - } - public >X middleName(String fn) { - item.setMiddleName(fn); - return (X)this; - } - public >X pronunciation(String fn) { - item.setPronunciation(fn); - return (X)this; - } - public >X pronunciationUrl(String fn) { - item.setPronunciationUrl(fn); - return (X)this; - } - public >X pronunciationUrl(IRI fn) { - item.setPronunciationUrl(fn); - return (X)this; + public static abstract class Builder> + extends ASObject.Builder { + public Builder(Class_class,Class_builder) { + super(_class,_builder); + } + public Builder(String objectType,Class_class,Class_builder) { + super(objectType,_class,_builder); + } + public Builder(Map map,Class_class,Class_builder) { + super(map,_class,_builder); + } + public M familyName(String fn) { + set("familyName",fn); + return (M)this; + } + public M formatted(String fn) { + set("formatted",fn); + return (M)this; + } + public M givenName(String fn) { + set("givenName",fn); + return (M)this; + } + public M honorificPrefix(String fn) { + set("honorificPrefix",fn); + return (M)this; + } + public M honorificSuffix(String fn) { + set("honorificSuffix",fn); + return (M)this; + } + public M middleName(String fn) { + set("middleName",fn); + return (M)this; + } + public M pronunciation(String fn) { + set("pronunciation",fn); + return (M)this; + } + public M pronunciationUrl(String fn) { + return pronunciationUrl(fn); + } + public M pronunciationUrl(IRI fn) { + set("pronunciationUrl",fn); + return (M)this; } } } Modified: abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/NoteObject.java URL: http://svn.apache.org/viewvc/abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/NoteObject.java?rev=1200583&r1=1200582&r2=1200583&view=diff ============================================================================== --- abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/NoteObject.java (original) +++ abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/NoteObject.java Thu Nov 10 21:48:45 2011 @@ -17,32 +17,37 @@ */ package org.apache.abdera2.activities.model.objects; +import java.util.Map; + import org.apache.abdera2.activities.model.ASObject; import org.apache.abdera2.common.anno.Name; -@Name("note") public class NoteObject extends ASObject { - - private static final long serialVersionUID = -1394391975713468634L; - - public NoteObject() {} - public NoteObject(String displayName) { - setDisplayName(displayName); - } - - public static NoteObjectGenerator makeNote() { - return new NoteObjectGenerator(); + public static Builder makeNote() { + return new Builder("note"); } - public static class NoteObjectGenerator extends ASObjectGenerator { - @SuppressWarnings("unchecked") - public NoteObjectGenerator() { - super((Class) NoteObject.class); + @Name("note") + public static class Builder extends ASObject.Builder { + public Builder() { + super(NoteObject.class,Builder.class); + } + public Builder(String objectType) { + super(objectType,NoteObject.class,Builder.class); } - public NoteObjectGenerator(Class _class) { - super(_class); + public Builder(Map map) { + super(map,NoteObject.class,Builder.class); } } + + public NoteObject(Map map) { + super(map,Builder.class,NoteObject.class); + } + + public >NoteObject(Map map,Class _class,Class_obj) { + super(map,_class,_obj); + } + } Modified: abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/Objects.java URL: http://svn.apache.org/viewvc/abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/Objects.java?rev=1200583&r1=1200582&r2=1200583&view=diff ============================================================================== --- abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/Objects.java (original) +++ abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/Objects.java Thu Nov 10 21:48:45 2011 @@ -1,125 +1,144 @@ package org.apache.abdera2.activities.model.objects; import org.apache.abdera2.activities.model.ASObject; +import org.apache.abdera2.activities.model.ASObject.ASObjectBuilder; -public class Objects { +public final class Objects { + private Objects() {} + /** * Special AS Object that represents the authenticated user */ - public static ASObject SELF() { - return new ASObject("@self"); + + public static final ASObject SELF = SELF().get(); + public static final ASObject ME = ME().get(); + public static final ASObject FRIENDS = FRIENDS().get(); + public static final ASObject NETWORK = NETWORK().get(); + public static final ASObject ALL = ALL().get(); + public static final ASObject PUBLIC = PUBLIC().get(); + + public static ASObjectBuilder SELF() { + return ASObject.makeObject("@self"); } /** * Special AS Object that represents the authenticated user. * synonymous with @self */ - public static ASObject ME() { - return new ASObject("@me"); + public static ASObjectBuilder ME() { + return ASObject.makeObject("@me"); } /** * Special AS Object that represents the authenticated users * collection of direct contacts */ - public static ASObject FRIENDS() { - return new ASObject("@friends"); + public static ASObjectBuilder FRIENDS() { + return ASObject.makeObject("@friends"); } /** * Special AS Object that represents a subset of the authenticated users * collection of direct contacts */ - public static ASObject FRIENDS(String id) { - ASObject obj = FRIENDS(); - obj.setId(id); - return obj; + public static ASObjectBuilder FRIENDS(String id) { + return ASObject.makeObject("@friends").id(id); } /** * Special AS Object that represents the authenticated users collection * of extended contacts (e.g. friends of friends) */ - public static ASObject NETWORK() { - return new ASObject("@network"); + public static ASObjectBuilder NETWORK() { + return ASObject.makeObject("@network"); } /** * Special AS Object that represents everyone. synonymous with @public */ - public static ASObject ALL() { - return new ASObject("@all"); + public static ASObjectBuilder ALL() { + return ASObject.makeObject("@all"); } /** * Special AS Object that represents everyone */ - public static ASObject PUBLIC() { - return new ASObject("@public"); + public static ASObjectBuilder PUBLIC() { + return ASObject.makeObject("@public"); } /** * Create an anonymous AS Object (no objectType property) */ - public static ASObject anonymousObject(String id) { - ASObject obj = new ASObject(); - obj.setObjectType(null); - obj.setId(id); - return obj; + public static ASObjectBuilder anonymousObject(String id) { + return ASObject.makeObject().id(id); } - public static ASObject DISCONTINUED() { + public static final ASObject DISCONTINUED = DISCONTINUED().get(); + public static final ASObject INSTOCK = INSTOCK().get(); + public static final ASObject INSTOREONLY = INSTOREONLY().get(); + public static final ASObject ONLINEONLY = ONLINEONLY().get(); + public static final ASObject OUTOFSTOCK = OUTOFSTOCK().get(); + public static final ASObject PREORDER = PREORDER().get(); + public static final ASObject EBOOK = EBOOK().get(); + public static final ASObject HARDCOVER = HARDCOVER().get(); + public static final ASObject PAPERBACK = PAPERBACK().get(); + public static final ASObject DAMAGED = DAMAGED().get(); + public static final ASObject NEW = NEW().get(); + public static final ASObject REFURBISHED = REFURBISHED().get(); + public static final ASObject USED = USED().get(); + + public static ASObjectBuilder DISCONTINUED() { return anonymousObject("discontinued"); } - public static ASObject INSTOCK() { + public static ASObjectBuilder INSTOCK() { return anonymousObject("in-stock"); } - public static ASObject INSTOREONLY() { + public static ASObjectBuilder INSTOREONLY() { return anonymousObject("in-store-only"); } - public static ASObject ONLINEONLY() { + public static ASObjectBuilder ONLINEONLY() { return anonymousObject("online-only"); } - public static ASObject OUTOFSTOCK() { + public static ASObjectBuilder OUTOFSTOCK() { return anonymousObject("out-of-stock"); } - public static ASObject PREORDER() { + public static ASObjectBuilder PREORDER() { return anonymousObject("pre-order"); } - public static ASObject EBOOK() { + public static ASObjectBuilder EBOOK() { return anonymousObject("ebook"); } - public static ASObject HARDCOVER() { + public static ASObjectBuilder HARDCOVER() { return anonymousObject("hardcover"); } - public static ASObject PAPERBACK() { + public static ASObjectBuilder PAPERBACK() { return anonymousObject("paperback"); } - public static ASObject DAMAGED() { + public static ASObjectBuilder DAMAGED() { return anonymousObject("damaged"); } - public static ASObject NEW() { + public static ASObjectBuilder NEW() { return anonymousObject("new"); } - public static ASObject REFURBISHED() { + public static ASObjectBuilder REFURBISHED() { return anonymousObject("refurbished"); } - public static ASObject USED() { + public static ASObjectBuilder USED() { return anonymousObject("used"); } - }