package org.openntf.conference.graph; import org.openntf.conference.graph.Invite.InvitedTo; import org.openntf.conference.graph.Invite.Invites; import org.openntf.conference.graph.Presentation.PresentedBy; 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.DEdgeFrame; import org.openntf.domino.graph2.builtin.social.Socializer; import com.tinkerpop.blueprints.Direction; import com.tinkerpop.frames.InVertex; import com.tinkerpop.frames.OutVertex; import com.tinkerpop.frames.modules.typedgraph.TypeValue; @TypeValue("Attendee") public interface Attendee extends Socializer { public static enum Status { REGISTERED, CANCELLED, PAID, CHECKEDIN, DEPARTED } @TypeValue(PlansToAttend.LABEL) public static interface PlansToAttend extends DEdgeFrame { public static final String LABEL = "PlansToAttend"; public static enum Status { CANCELLED, FULFILLED, UNDETERMINED } @OutVertex public Attendee getAttendee(); @InVertex public Event getEvent(); @TypedProperty("Status") public Status getStatus(); @TypedProperty("Status") public void setStatus(Status status); } @TypeValue(Attending.LABEL) public static interface Attending extends DEdgeFrame { public static final String LABEL = "Attending"; @OutVertex public Attendee getAttendee(); @InVertex public Event getEvent(); } @TypeValue(MemberOf.LABEL) public static interface MemberOf extends DEdgeFrame { public static final String LABEL = "MemberOf"; @InVertex public Group getGroup(); @OutVertex public Attendee getAttendee(); } @TypedProperty("Firstname") public String getFirstName(); @TypedProperty("Firstname") public void setFirstName(String firstName); @TypedProperty("Lastname") public String getLastName(); @TypedProperty("Lastname") public void setLastName(String lastName); @TypedProperty("Email") public String getEmail(); @TypedProperty("Email") public void setEmail(String email); @TypedProperty("Url") public String getUrl(); @TypedProperty("Url") public void setUrl(String url); @TypedProperty("Twitter") public String getTwitterId(); @TypedProperty("Twitter") public void setTwitterId(String twitterId); @TypedProperty("Facebook") public String getFacebookId(); @TypedProperty("Facebook") public void setFacebookId(String facebookId); @TypedProperty("Phone") public String getPhone(); @TypedProperty("Phone") public void setPhone(String phone); @TypedProperty("Country") public String getCountry(); @TypedProperty("Country") public void setCountry(String country); @TypedProperty("Role") public String getRole(); @TypedProperty("Role") public void setRole(String role); @TypedProperty(value = "Firstname + \" \" + Lastname", derived = true) public String getFullname(); @AdjacencyUnique(label = PlansToAttend.LABEL) public Iterable<Event> getPlansToAttendEvents(); @AdjacencyUnique(label = PlansToAttend.LABEL) public PlansToAttend addPlansToAttend(Event event); @AdjacencyUnique(label = PlansToAttend.LABEL) public void removePlansToAttend(Event event); @IncidenceUnique(label = PlansToAttend.LABEL) public Iterable<PlansToAttend> getPlansToAttend(); @IncidenceUnique(label = PlansToAttend.LABEL) public void removePlansToAttend(PlansToAttend plansToAttend); @AdjacencyUnique(label = Attending.LABEL) public Iterable<Event> getAttendingEvents(); @AdjacencyUnique(label = Attending.LABEL) public Attending addAttending(Event event); @AdjacencyUnique(label = Attending.LABEL) public void removeAttending(Event event); @IncidenceUnique(label = Attending.LABEL) public Iterable<Attending> getAttendings(); @IncidenceUnique(label = Attending.LABEL) public void removeAttending(Attending attending); @AdjacencyUnique(label = PresentedBy.LABEL) public Iterable<Event> getPresentingEvents(); @AdjacencyUnique(label = PresentedBy.LABEL) public PresentedBy addPresentingEvent(Event event); @AdjacencyUnique(label = PresentedBy.LABEL) public void removePresentingEvent(Event event); @IncidenceUnique(label = PresentedBy.LABEL) public Iterable<PresentedBy> getPresentings(); @IncidenceUnique(label = PresentedBy.LABEL) public void removePresenting(PresentedBy presentedBy); @AdjacencyUnique(label = InvitedTo.LABEL, direction = Direction.IN) public Iterable<Invite> getInvitedToInvites(); @AdjacencyUnique(label = InvitedTo.LABEL, direction = Direction.IN) public Invites addInvitedTo(Invite invite); @AdjacencyUnique(label = InvitedTo.LABEL, direction = Direction.IN) public void removeInvitedTo(Invite invite); @IncidenceUnique(label = InvitedTo.LABEL, direction = Direction.IN) public Iterable<InvitedTo> getInvitedTos(); @IncidenceUnique(label = InvitedTo.LABEL, direction = Direction.IN) public void removeInvitedTo(InvitedTo invitedTo); @AdjacencyUnique(label = Invites.LABEL) public Iterable<Invite> getInvitations(); @AdjacencyUnique(label = Invites.LABEL) public Invites addInvitation(Invite invite); @AdjacencyUnique(label = Invites.LABEL) public void removeInvitation(Invite invite); @IncidenceUnique(label = Invites.LABEL) public Invites getInvites(); @IncidenceUnique(label = Invites.LABEL) public void removeInvites(Invites invites); @AdjacencyUnique(label = MemberOf.LABEL) public Iterable<Group> getMemberOfGroups(); @AdjacencyUnique(label = MemberOf.LABEL) public MemberOf addMemberOfGroup(Group group); @AdjacencyUnique(label = MemberOf.LABEL) public void removeMemberOfGroup(Group group); @IncidenceUnique(label = MemberOf.LABEL) public Iterable<MemberOf> getMemberOfs(); @IncidenceUnique(label = MemberOf.LABEL) public void removeMemberOf(MemberOf memberOf); }