Hi Franck, If you dont mind, could you upload the patch to http://codereview.appspot.com/ ?
It will make easier for the community to review. - Henry On Tue, Jul 27, 2010 at 11:21 AM, franck tankoua <[email protected]> wrote: > Hello, > this is a java patch. > > > Index: src/main/java/org/apache/shindig/social/core/model/GroupImpl.java > =================================================================== > --- src/main/java/org/apache/shindig/social/core/model/GroupImpl.java > (revision 0) > +++ src/main/java/org/apache/shindig/social/core/model/GroupImpl.java > (revision 0) > @@ -0,0 +1,33 @@ > +package org.apache.shindig.social.core.model; > + > +import org.apache.shindig.social.opensocial.model.Group; > +import org.apache.shindig.social.opensocial.spi.GroupId; > + > +public class GroupImpl implements Group{ > + > + private GroupId groupId; > + private String title; > + private String description; > + > + public String getTitle() { > + return title; > + } > + public void setTitle(String title) { > + this.title = title; > + } > + public String getDescription() { > + return description; > + } > + public void setDescription(String description) { > + this.description = description; > + } > + > + public void setId(GroupId groupId) { > + this.groupId = groupId; > + } > + public GroupId getId() { > + return groupId; > + } > + > + > +} > Index: src/main/java/org/apache/shindig/social/opensocial/model/Group.java > =================================================================== > --- src/main/java/org/apache/shindig/social/opensocial/model/Group.java > (revision 0) > +++ src/main/java/org/apache/shindig/social/opensocial/model/Group.java > (revision 0) > @@ -0,0 +1,65 @@ > +package org.apache.shindig.social.opensocial.model; > + > +import org.apache.shindig.protocol.model.Exportablebean; > +import org.apache.shindig.social.core.model.GroupImpl; > +import org.apache.shindig.social.opensocial.spi.GroupId; > + > +import com.google.inject.ImplementedBy; > + > +/** > + * <p> > + * OpenSocial Groups are owned by people, and are used to tag or > categorize > people and their relationships. > + * Each group has a display name, an identifier which is unique within the > groups owned by that person, and a URI link. > + * A group may be a private, invitation-only, public or a personal group > used to organize friends. > + * </p> > + * <p> > + * From > > http://opensocial-resources.googlecode.com/svn/spec/1.0/Social-Data.xml#Group > + * </p> > + */ > +...@implementedby(GroupImpl.class) > +...@exportablebean > +public interface Group { > + > + public static enum Field { > + /** Unique ID for this group Required. */ > + ID("Id"), > + /** Title of group Required. */ > + TITLE("title"), > + /** Description of group Optional. */ > + DESCRIPTION("description"); > + > + /** > + * The json field that the instance represents. > + */ > + private final String jsonString; > + > + /** > + * create a field base on the a json element. > + * > + * @param jsonString the name of the element > + */ > + private Field(String jsonString) { > + this.jsonString = jsonString; > + } > + > + /** > + * emit the field as a json element. > + * > + * @return the field name > + */ > + @Override > + public String toString() { > + return jsonString; > + } > + } > + > + GroupId getId(); > + void setId(GroupId id); > + > + String getTitle(); > + void setTitle(String title); > + > + String getDescription(); > + void setDescription(String description); > + > +} > Index: > > src/main/java/org/apache/shindig/social/opensocial/service/GroupHandler.java > =================================================================== > --- > > src/main/java/org/apache/shindig/social/opensocial/service/GroupHandler.java > (revision 0) > +++ > > src/main/java/org/apache/shindig/social/opensocial/service/GroupHandler.java > (revision 0) > @@ -0,0 +1,40 @@ > +package org.apache.shindig.social.opensocial.service; > + > +import java.util.Set; > +import java.util.concurrent.Future; > + > +import org.apache.shindig.protocol.HandlerPreconditions; > +import org.apache.shindig.protocol.Operation; > +import org.apache.shindig.protocol.ProtocolException; > +import org.apache.shindig.protocol.Service; > +import org.apache.shindig.social.opensocial.spi.CollectionOptions; > +import org.apache.shindig.social.opensocial.spi.GroupService; > +import org.apache.shindig.social.opensocial.spi.UserId; > + > +import com.google.inject.Inject; > + > + > +...@service(name = "groups", path="/{userId}") > +public class GroupHandler { > + > + private final GroupService service; > + > + @Inject > + public GroupHandler(GroupService service){ > + this.service = service; > + } > + > + @Operation(httpMethods="GET") > + public Future<?> get(SocialRequestItem request) throws > ProtocolException { > + Set<UserId> userIds = request.getUsers(); > + CollectionOptions options = new CollectionOptions(request); > + > + // Preconditions > + HandlerPreconditions.requireNotEmpty(userIds, "No userId > specified"); > + HandlerPreconditions.requireSingular(userIds, "Only one userId > must be specified"); > + > + return service.getGroups(userIds.iterator().next(), options, > request.getFields(), request.getToken()); > + > + } > + > +} > Index: > src/main/java/org/apache/shindig/social/opensocial/spi/GroupService.java > =================================================================== > --- > src/main/java/org/apache/shindig/social/opensocial/spi/GroupService.java > (revision 0) > +++ > src/main/java/org/apache/shindig/social/opensocial/spi/GroupService.java > (revision 0) > @@ -0,0 +1,14 @@ > +package org.apache.shindig.social.opensocial.spi; > + > +import java.util.Set; > +import java.util.concurrent.Future; > + > +import org.apache.shindig.auth.SecurityToken; > +import org.apache.shindig.protocol.RestfulCollection; > +import org.apache.shindig.social.opensocial.model.Group; > + > +public interface GroupService { > + > + public Future<RestfulCollection<Group>> getGroups(UserId userId, > CollectionOptions options, Set<String> fields, SecurityToken token); > + > +} > > > > > On Tue, Jul 27, 2010 at 8:17 PM, Christiaan Hees <[email protected]> > wrote: > > > I don't think you can send attachments on this mailing list. I'm > interested > > in seeing the patch though. Is it for the Java or the PHP version of > > Shindig? > > > > /Christiaan > > > > On Tue, Jul 27, 2010 at 6:49 PM, franck tankoua <[email protected]> > > wrote: > > > > > Here is my patch. > > > Feel free to comment. > > > > > > Thanks > > > > > > > > > On Tue, Jul 27, 2010 at 2:30 PM, franck tankoua <[email protected] > > >wrote: > > > > > >> Hello all, > > >> > > >> from the specification > > >> https://docs.google.com/View?docid=dcc2jvzt_37hdzwkmf8#ssc:310, there > > >> should be a groups service. > > >> > > >> I have made one and I would like to know if you guys are interested. > > >> > > >> Regards > > >> > > >> -- > > >> Franck > > >> > > > > > > > > > > > > -- > > > Franck > > > > > > > > > -- > Franck >
