package org.openntf.conference.graph; import java.util.Date; 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.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.InVertex; import com.tinkerpop.frames.OutVertex; import com.tinkerpop.frames.modules.typedgraph.TypeValue; @TypeValue("Conference") public interface Conference extends Commentable, Likeable, Rateable { @TypeValue(PartOf.LABEL) public static interface PartOf extends DEdgeFrame { public static final String LABEL = "PartOf"; @InVertex public Conference getConference(); @OutVertex public Event getEvent(); } @TypeValue(HasPlace.LABEL) public static interface HasPlace extends DEdgeFrame { public static final String LABEL = "HasPlace"; @InVertex public Conference getConference(); @OutVertex public Location getLocation(); } @TypeValue(HasTime.LABEL) public static interface HasTime extends DEdgeFrame { public static final String LABEL = "HasTime"; @InVertex public Conference getConference(); @OutVertex public TimeSlot getTimeSlot(); } @TypeValue(HasRegistrant.LABEL) public static interface HasRegistrant extends DEdgeFrame { public static final String LABEL = "HasRegistrant"; @InVertex public Conference getConference(); @OutVertex public Attendee getAttendee(); @TypedProperty("Status") public Attendee.Status getStatus(); @TypedProperty("Status") public void setStatus(Attendee.Status status); @TypedProperty("StatusTime") public Date getStatusUpdateTime(); @TypedProperty("StatusTime") public void setStatusUpdateTime(Date statusTime); } @TypedProperty("Title") public String getTitle(); @TypedProperty("Title") public void setTitle(String title); @TypedProperty("Hashtag") public String getHashtag(); @TypedProperty("Hashtag") public void setHashtag(String hashtag); @TypedProperty("City") public String getCity(); @TypedProperty("City") public void setCity(String city); @TypedProperty("StartDate") public Date getStartDate(); @TypedProperty("StartDate") public void setStartDate(Date startDate); @TypedProperty("EndDate") public Date getEndDate(); @TypedProperty("EndDate") public void setEndDate(Date endDate); @AdjacencyUnique(label = PartOf.LABEL, direction = Direction.IN) public Iterable<Event> getEvents(); @AdjacencyUnique(label = PartOf.LABEL, direction = Direction.IN) public PartOf addEvent(Event event); @AdjacencyUnique(label = PartOf.LABEL, direction = Direction.IN) public void removeEvent(Event event); @IncidenceUnique(label = PartOf.LABEL, direction = Direction.IN) public Iterable<PartOf> getPartOfs(); @IncidenceUnique(label = PartOf.LABEL, direction = Direction.IN) public void removePartOf(PartOf partOf); @AdjacencyUnique(label = HasPlace.LABEL, direction = Direction.IN) public Iterable<Location> getLocations(); @AdjacencyUnique(label = HasPlace.LABEL, direction = Direction.IN) public HasPlace addLocation(Location location); @AdjacencyUnique(label = HasPlace.LABEL, direction = Direction.IN) public void removeLocation(Location location); @IncidenceUnique(label = HasPlace.LABEL, direction = Direction.IN) public Iterable<HasPlace> getHasPlaces(); @IncidenceUnique(label = HasPlace.LABEL, direction = Direction.IN) public void removeHasPlace(HasPlace hasPlace); @AdjacencyUnique(label = HasTime.LABEL, direction = Direction.IN) public Iterable<TimeSlot> getTimeSlots(); @AdjacencyUnique(label = HasTime.LABEL, direction = Direction.IN) public HasTime addTimeSlot(TimeSlot timeSlot); @AdjacencyUnique(label = HasTime.LABEL, direction = Direction.IN) public void removeTimeSlot(TimeSlot timeSlot); @IncidenceUnique(label = HasTime.LABEL, direction = Direction.IN) public Iterable<HasTime> getHasTimes(); @IncidenceUnique(label = HasTime.LABEL, direction = Direction.IN) public void removeHasTime(HasTime hasTime); @AdjacencyUnique(label = HasRegistrant.LABEL, direction = Direction.IN) public Iterable<Attendee> getAttendees(); @AdjacencyUnique(label = HasRegistrant.LABEL, direction = Direction.IN) public HasTime addAttendee(Attendee attendee); @AdjacencyUnique(label = HasRegistrant.LABEL, direction = Direction.IN) public void removeAttendee(Attendee attendee); @IncidenceUnique(label = HasRegistrant.LABEL, direction = Direction.IN) public Iterable<HasRegistrant> getHasRegistrants(); @IncidenceUnique(label = HasRegistrant.LABEL, direction = Direction.IN) public void removeHasRegistrant(HasRegistrant hasRegistrant); }