package com.tinkerpop.frames.domain.classes; import com.tinkerpop.frames.Adjacency; import com.tinkerpop.frames.Incidence; import com.tinkerpop.frames.Property; import com.tinkerpop.frames.domain.incidences.Created; import com.tinkerpop.frames.domain.incidences.Knows; import java.util.Collection; /** * @author Marko A. Rodriguez (http://markorodriguez.com) */ public interface Person extends NamedObject { @Property("age") public Integer getAge(); @Property("age") public void setAge(int age); @Property("age") public void removeAge(); @Adjacency(label = "knows") public Collection<Knows> getKnows(); @Incidence(label = "knows") public Collection<Person> getKnowsPeople(); @Adjacency(label = "created") public Collection<Created> getCreated(); @Incidence(label = "created") public Collection<Project> getCreatedProjects(); @Incidence(label = "knows") public void addKnowsPerson(final Person person); @Adjacency(label = "knows") public Knows addKnows(final Person person); @Incidence(label = "created") public void addCreatedProject(final Project project); @Adjacency(label = "created") public Created addCreated(final Project project); @Incidence(label = "knows") public void removeKnowsPerson(final Person person); @Adjacency(label = "knows") public void removeKnows(final Knows knows); /*@GremlinInference(script = "_{x=it}.outE('created').inV.inE('created').outV{it!=x}") public Collection<Person> getCoCreators();*/ }