/* * Copyright (c) 2013, University of Toronto. * * Licensed under the Apache License, Version 2.0 (the "License"); you may * not use this file except in compliance with the License. You may obtain * a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. */ package edu.toronto.cs.xcurator.mapping; import java.util.HashSet; import java.util.Iterator; import java.util.Set; public class Relation implements MappingModel { Schema subject; Schema object; String rdfUri; String objectXmlTypeUri; Set<Reference> references; // The path to the SearchPath paths; public Relation(Schema subject, Schema object, String rdfUri) { this.subject = subject; this.object = object; this.rdfUri = rdfUri; this.references = new HashSet<>(); this.paths = new SearchPath(); } // This constructor is for deserializing the mapping file // since the object entity may not have deserialized yet. public Relation(Schema subject, Schema object, String rdfUri, String objectXmlTypeUri) { this(subject, null, rdfUri); this.objectXmlTypeUri = objectXmlTypeUri; } public void addReference(Reference reference) { references.add(reference); } public Iterator<Reference> getReferenceIterator() { return references.iterator(); } public Set<Reference> getReferences() { return references; } public String getObjectXmlTypeUri() { return object == null ? objectXmlTypeUri : object.getXmlTypeUri(); } @Override public String getId() { return subject.getXmlTypeUri() + "." + getObjectXmlTypeUri(); } @Override public void addPath(String path) { paths.addPath(path); } @Override public String getPath() { return paths.getPath(); } public String getRdfUri() { return rdfUri; } @Override public String toString() { return "{" + "\"Relation\": {" + "\"rdfUri\":" + "\"" + rdfUri + "\"" + ", \"objectXmlTypeUri\":" + "\"" + objectXmlTypeUri + "\"" + '}' + '}'; } }