-
Notifications
You must be signed in to change notification settings - Fork 14
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Enhancement #73] Refactor OntoDriver API descriptors in preparation …
…for supporting multiple contexts per assertion/subject. AxiomValueDescriptor has been split from AxiomDescriptor, as it can contain only one context per assertion/subject to prevent ambiguity issues when saving values.
- Loading branch information
Showing
6 changed files
with
261 additions
and
111 deletions.
There are no files selected for viewing
66 changes: 66 additions & 0 deletions
66
ontodriver-api/src/main/java/cz/cvut/kbss/ontodriver/descriptor/AbstractAxiomDescriptor.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
package cz.cvut.kbss.ontodriver.descriptor; | ||
|
||
import cz.cvut.kbss.ontodriver.model.Assertion; | ||
import cz.cvut.kbss.ontodriver.model.NamedResource; | ||
|
||
import java.net.URI; | ||
import java.util.Objects; | ||
import java.util.Set; | ||
|
||
/** | ||
* Defines common API for axiom descriptors. | ||
*/ | ||
public abstract class AbstractAxiomDescriptor { | ||
|
||
private final NamedResource subject; | ||
|
||
protected AbstractAxiomDescriptor(NamedResource subject) { | ||
this.subject = Objects.requireNonNull(subject); | ||
} | ||
|
||
public NamedResource getSubject() { | ||
return subject; | ||
} | ||
|
||
/** | ||
* Gets the set of assertions in this descriptor. | ||
* | ||
* @return Set of assertions | ||
*/ | ||
public abstract Set<Assertion> getAssertions(); | ||
|
||
/** | ||
* Checks whether this descriptor contains the specified assertion. | ||
* | ||
* @param assertion Assertion to look for | ||
* @return {@code boolean} result | ||
*/ | ||
public abstract boolean containsAssertion(Assertion assertion); | ||
|
||
/** | ||
* Gets the set of repository context identifiers in which this descriptor's subject may be. | ||
* | ||
* @return Set of context identifiers | ||
*/ | ||
public abstract Set<URI> getSubjectContexts(); | ||
|
||
/** | ||
* Gets the set of repository context identifiers in which the specified assertion values may be. | ||
* | ||
* @return Set of context identifiers | ||
*/ | ||
public abstract Set<URI> getAssertionContexts(Assertion assertion); | ||
|
||
@Override | ||
public boolean equals(Object o) { | ||
if (this == o) return true; | ||
if (!(o instanceof AbstractAxiomDescriptor)) return false; | ||
AbstractAxiomDescriptor that = (AbstractAxiomDescriptor) o; | ||
return subject.equals(that.subject); | ||
} | ||
|
||
@Override | ||
public int hashCode() { | ||
return Objects.hash(subject); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.