Ignore:
Timestamp:
Sep 26, 2012, 12:56:42 PM (12 years ago)
Author:
casties
Branch:
default
Message:

saving and loading resource targets should work now (no searching yet)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/main/java/de/mpiwg/itgroup/annotations/neo4j/AnnotationStore.java

    r36 r40  
    528528             */
    529529            String targetBaseUri = annot.getTargetBaseUri();
     530            Node targetNode = null;
    530531            if (targetBaseUri != null) {
    531                 Node target = getOrCreateTargetNode(targetBaseUri);
    532                 getOrCreateRelation(annotNode, RelationTypes.ANNOTATES, target);
     532                targetNode = getOrCreateTargetNode(targetBaseUri, NodeTypes.TARGET);
     533                getOrCreateRelation(annotNode, RelationTypes.ANNOTATES, targetNode);
    533534            }
    534535
     
    541542                annotNode.setProperty("targetFragment", targetFragment);
    542543                annotNode.setProperty("fragmentType", fragmentType.name());
     544            }
     545
     546            /*
     547             * the annotation resource
     548             */
     549            String resourceUri = annot.getResourceUri();
     550            if (resourceUri != null) {
     551                Node resource = getOrCreateTargetNode(resourceUri, NodeTypes.RESOURCE);
     552                getOrCreateRelation(annotNode, RelationTypes.ANNOTATES, resource);
     553                getOrCreateRelation(targetNode, RelationTypes.PART_OF, resource);
    543554            }
    544555
     
    712723     */
    713724    protected Relationship getOrCreateRelation(Node start, RelationshipType type, Node end) {
     725        if (start == null || end == null) return null;
    714726        if (start.hasRelationship()) {
    715727            // there are relations
     
    754766    }
    755767
    756     protected Node getOrCreateTargetNode(String uri) {
    757         Index<Node> idx = getNodeIndex(NodeTypes.TARGET);
     768    protected Node getOrCreateTargetNode(String uri, NodeTypes type) {
     769        Index<Node> idx = getNodeIndex(type);
    758770        IndexHits<Node> targets = idx.get("uri", uri);
    759771        Node target = targets.getSingle();
     
    763775            try {
    764776                target = graphDb.createNode();
    765                 target.setProperty("TYPE", NodeTypes.TARGET.name());
     777                target.setProperty("TYPE", type.name());
    766778                target.setProperty("uri", uri);
    767779                idx.add(target, "uri", uri);
Note: See TracChangeset for help on using the changeset viewer.