package org.openntf.conference.graph; import org.openntf.conference.graph.Attendee.MemberOf; import org.openntf.domino.graph2.annotations.AdjacencyUnique; import org.openntf.domino.graph2.annotations.IncidenceUnique; import org.openntf.domino.graph2.annotations.TypedProperty; import org.openntf.domino.graph2.builtin.social.Commentable; import org.openntf.domino.graph2.builtin.social.Likeable; import org.openntf.domino.graph2.builtin.social.Rateable; import com.tinkerpop.blueprints.Direction; import com.tinkerpop.frames.modules.typedgraph.TypeValue; @TypeValue("Group") public interface Group extends Commentable, Likeable, Rateable { public static enum Type { OPEN, COMPANY, SOCIAL, PROGRAM, PRIVATE } @TypedProperty("Name") public String getName(); @TypedProperty("Name") public void setName(String name); @TypedProperty("Type") public Type getType(); @TypedProperty("Type") public void setType(Type type); @AdjacencyUnique(label = MemberOf.LABEL, direction = Direction.IN) public Iterable<Attendee> getMembers(); @AdjacencyUnique(label = MemberOf.LABEL, direction = Direction.IN) public MemberOf addMember(Attendee attendee); @AdjacencyUnique(label = MemberOf.LABEL, direction = Direction.IN) public void removeMember(Attendee attendee); @IncidenceUnique(label = MemberOf.LABEL, direction = Direction.IN) public Iterable<MemberOf> getMemberOfs(); @IncidenceUnique(label = MemberOf.LABEL, direction = Direction.IN) public void removeMemberOf(MemberOf memberOf); }