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 2011/12/01 19:59:08 UTC
svn commit: r1209185 - in
/abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities:
client/ extra/ io/gson/ model/ model/objects/
Author: jmsnell
Date: Thu Dec 1 18:59:06 2011
New Revision: 1209185
URL: http://svn.apache.org/viewvc?rev=1209185&view=rev
Log:
A few minor updates to a couple of the object types
Modified:
abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/client/ActivityEntity.java
abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/extra/Extra.java
abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/io/gson/BaseAdapter.java
abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/ASBase.java
abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/AccountObject.java
abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/Address.java
abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/PlaceObject.java
Modified: abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/client/ActivityEntity.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/client/ActivityEntity.java?rev=1209185&r1=1209184&r2=1209185&view=diff
==============================================================================
--- abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/client/ActivityEntity.java (original)
+++ abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/client/ActivityEntity.java Thu Dec 1 18:59:06 2011
@@ -23,6 +23,9 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
+import javax.activation.MimeType;
+
+import org.apache.abdera2.activities.extra.Extra;
import org.apache.abdera2.activities.model.ASBase;
import org.apache.http.Header;
import org.apache.http.HttpEntity;
@@ -46,7 +49,7 @@ public class ActivityEntity
* element passed in.
*/
public ActivityEntity(ASBase base) {
- this(base,false,null);
+ this(base,false,(String)null);
}
/**
@@ -59,6 +62,10 @@ public class ActivityEntity
this(base,false,contentType);
}
+ public ActivityEntity(ASBase base, MimeType contentType) {
+ this(base,false,contentType);
+ }
+
/**
* Create the entity using the specified Activity document or element.
* The content length will be automatically calculated if the
@@ -66,7 +73,7 @@ public class ActivityEntity
* detected based on the type of element passed in.
*/
public ActivityEntity(ASBase base, boolean calclen) {
- this(base,calclen,null);
+ this(base,calclen,(String)null);
}
/**
@@ -80,7 +87,9 @@ public class ActivityEntity
this.base = base;
this.ct = new BasicHeader(
"Content-Type",
- contentType!=null?contentType:"application/json");
+ contentType!=null?
+ contentType:
+ Extra.getMediaType(base).toString());
if (calclen) {
ByteArrayOutputStream out =
new ByteArrayOutputStream();
@@ -90,6 +99,10 @@ public class ActivityEntity
} else len = -1;
}
+ public ActivityEntity(ASBase base, boolean calclen, MimeType contentType) {
+ this(base,calclen,contentType.toString());
+ }
+
public boolean isRepeatable() {
return true;
}
Modified: abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/extra/Extra.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/extra/Extra.java?rev=1209185&r1=1209184&r2=1209185&view=diff
==============================================================================
--- abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/extra/Extra.java (original)
+++ abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/extra/Extra.java Thu Dec 1 18:59:06 2011
@@ -27,6 +27,9 @@ import java.util.Comparator;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
+
+import javax.activation.MimeType;
+
import net.sf.cglib.proxy.Enhancer;
import net.sf.cglib.proxy.MethodInterceptor;
import net.sf.cglib.proxy.MethodProxy;
@@ -41,6 +44,7 @@ import org.apache.abdera2.activities.mod
import org.apache.abdera2.activities.model.Verb;
import org.apache.abdera2.common.anno.Name;
import org.apache.abdera2.common.date.DateTimes;
+import org.apache.abdera2.common.misc.ExceptionHelper;
import org.apache.abdera2.common.misc.MoreFunctions;
import org.apache.abdera2.common.selector.AbstractSelector;
import org.apache.abdera2.common.selector.PropertySelector;
@@ -51,6 +55,7 @@ import org.joda.time.DateTime;
import com.google.common.base.CaseFormat;
import com.google.common.base.Equivalence;
import com.google.common.base.Function;
+import com.google.common.base.Joiner;
import com.google.common.base.Predicate;
import com.google.common.base.Supplier;
import com.google.common.collect.ImmutableMap;
@@ -1493,4 +1498,35 @@ public final class Extra {
}
}
+
+ private static final Joiner types_joiner = Joiner.on(' ');
+
+ public static MimeType getMediaType(ASBase base) {
+ MimeType mt = null;
+ try {
+ mt = new MimeType("application/json");
+ if (base instanceof ASObject) {
+ ASObject obj = (ASObject) base;
+ String otype = obj.getObjectType();
+ if (otype != null)
+ mt.setParameter("type", otype);
+ }
+ if (base instanceof Collection) {
+ Collection<?> col = (Collection<?>) base;
+ Iterable<String> otypes = col.getObjectTypes();
+ if (!Iterables.isEmpty(otypes))
+ mt.setParameter("items", types_joiner.join(otypes));
+ else if (!Iterables.isEmpty(col.getItems())) {
+ ImmutableSet.Builder<String> set = ImmutableSet.builder();
+ for (ASObject obj : col.getItems())
+ if (obj.has("objectType"))
+ set.add(obj.getObjectType());
+ mt.setParameter("items", types_joiner.join(set.build()));
+ }
+ }
+ } catch (Throwable t) {
+ throw ExceptionHelper.propogate(t);
+ }
+ return mt;
+ }
}
Modified: abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/io/gson/BaseAdapter.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/io/gson/BaseAdapter.java?rev=1209185&r1=1209184&r2=1209185&view=diff
==============================================================================
--- abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/io/gson/BaseAdapter.java (original)
+++ abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/io/gson/BaseAdapter.java Thu Dec 1 18:59:06 2011
@@ -101,6 +101,9 @@ final class BaseAdapter
map.put("updated", DateTime.class);
map.put("published", DateTime.class);
map.put("lang", Lang.class);
+ map.put("@language", Lang.class);
+ map.put("@base", IRI.class);
+ map.put("$ref", IRI.class); // for JSON Reference...
map.put("icon", MediaLink.class);
map.put("image", MediaLink.class);
map.put("totalItems", Integer.class);
Modified: abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/ASBase.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/ASBase.java?rev=1209185&r1=1209184&r2=1209185&view=diff
==============================================================================
--- abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/ASBase.java (original)
+++ abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/ASBase.java Thu Dec 1 18:59:06 2011
@@ -31,6 +31,7 @@ import java.util.concurrent.Future;
import org.apache.abdera2.activities.extra.Difference;
import org.apache.abdera2.activities.extra.Extra;
+import org.apache.abdera2.common.iri.IRI;
import org.apache.abdera2.common.lang.Lang;
import org.apache.abdera2.common.misc.ExceptionHelper;
import org.apache.abdera2.common.misc.Pair;
@@ -171,7 +172,14 @@ public class ASBase
return lang(new Lang(lang));
}
public M lang(Lang lang) {
- set("lang",lang);
+ set("@language",lang);
+ return (M)this;
+ }
+ public M base(String iri) {
+ return base(new IRI(checkNotNull(iri)));
+ }
+ public M base(IRI iri) {
+ set("@base",iri);
return (M)this;
}
protected void preGet() {}
@@ -202,7 +210,11 @@ public class ASBase
}
public Lang getLang() {
- return getProperty("lang");
+ return getProperty("@language");
+ }
+
+ public IRI getBase() {
+ return getProperty("@base");
}
public <T>T getProperty(String name) {
Modified: abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/AccountObject.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/AccountObject.java?rev=1209185&r1=1209184&r2=1209185&view=diff
==============================================================================
--- abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/AccountObject.java (original)
+++ abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/AccountObject.java Thu Dec 1 18:59:06 2011
@@ -22,10 +22,13 @@ import java.util.Map;
import org.apache.abdera2.activities.model.ASObject;
import org.apache.abdera2.common.anno.Name;
+/**
+ * Represents a user account, generally specified in terms of a unique
+ * user id, username and domain.
+ */
public class AccountObject
extends ServiceObject {
-
public AccountObject(Map<String,Object> map) {
super(map,AccountBuilder.class,AccountObject.class);
}
Modified: abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/Address.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/Address.java?rev=1209185&r1=1209184&r2=1209185&view=diff
==============================================================================
--- abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/Address.java (original)
+++ abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/Address.java Thu Dec 1 18:59:06 2011
@@ -22,6 +22,9 @@ import java.util.Map;
import org.apache.abdera2.activities.model.ASObject;
import org.apache.abdera2.common.anno.Name;
+/**
+ * Represents a mailing address.
+ */
public class Address extends ASObject {
public static final String FORMATTED = "formatted";
@@ -30,6 +33,8 @@ public class Address extends ASObject {
public static final String REGION = "region";
public static final String POSTALCODE = "postalCode";
public static final String COUNTRY = "country";
+ public static final String BUILDING = "building";
+ public static final String FLOOR = "floor";
public Address(Map<String,Object> map) {
super(map,AddressBuilder.class,Address.class);
@@ -63,6 +68,14 @@ public class Address extends ASObject {
return getProperty(COUNTRY);
}
+ public String getBuilding() {
+ return getProperty(BUILDING);
+ }
+
+ public String getFloor() {
+ return getProperty(FLOOR);
+ }
+
public String toString() {
StringBuilder buf = new StringBuilder();
if (getFormatted() != null) {
@@ -122,6 +135,14 @@ public class Address extends ASObject {
set(REGION, region);
return (M)this;
}
+ public M building(String building) {
+ set(BUILDING,building);
+ return (M)this;
+ }
+ public M floor(String floor) {
+ set(FLOOR,floor);
+ return (M)this;
+ }
public M streetAddress(String address) {
set(STREETADDRESS,address);
return (M)this;
Modified: abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/PlaceObject.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/PlaceObject.java?rev=1209185&r1=1209184&r2=1209185&view=diff
==============================================================================
--- abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/PlaceObject.java (original)
+++ abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/model/objects/PlaceObject.java Thu Dec 1 18:59:06 2011
@@ -27,6 +27,11 @@ import org.apache.abdera2.common.geo.Poi
import com.google.common.base.Supplier;
+/**
+ * Represents a location... can be logical or physical. At a minimum, the
+ * place can be described in terms of a geological coordinates, an address,
+ * or a name.
+ */
public class PlaceObject
extends ASObject {
public static final String ADDRESS = "address";