package io.lumify.core.model.ontology; import org.securegraph.util.ConvertingIterable; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class InMemoryRelationship extends Relationship { private String relationshipIRI; private String displayName; private List<Relationship> inverseOfs = new ArrayList<>(); private List<String> intents = new ArrayList<>(); private boolean userVisible; protected InMemoryRelationship(String relationshipIRI, String displayName, List<String> domainConceptIRIs, List<String> rangeConceptIRIs, String[] intents, boolean userVisible) { super(domainConceptIRIs, rangeConceptIRIs); this.relationshipIRI = relationshipIRI; this.displayName = displayName; this.intents.addAll(Arrays.asList(intents)); this.userVisible = userVisible; } @Override public String getIRI() { return relationshipIRI; } @Override public String getDisplayName() { return displayName; } @Override public Iterable<String> getInverseOfIRIs() { return new ConvertingIterable<Relationship, String>(inverseOfs) { @Override protected String convert(Relationship o) { return o.getIRI(); } }; } @Override public boolean getUserVisible() { return userVisible; } @Override public String[] getIntents() { return this.intents.toArray(new String[this.intents.size()]); } public void addInverseOf(Relationship inverseOfRelationship) { inverseOfs.add(inverseOfRelationship); } }