Search in sources :

Example 16 with NodeTypeDirection

use of org.eol.globi.util.NodeTypeDirection in project eol-globi-data by jhpoelen.

the class DatasetImporterForAkinTest method importHeaderAndASingleSpecimen.

@Test
public void importHeaderAndASingleSpecimen() throws StudyImporterException, ParseException {
    String csvString = ",\"Fish No\",\"Fish Species\",\"Date \",,\"Site \",\"SL(mm)\",\"Stomach volume\",\"Stomach status\",\"C. Method\",\"Detritus\",\"Sand\",\"Diatoms\",\"Centric diatoms\",\"Pennate diatoms\",\"Oscillatoria \",\"Filamentous algae\",\"Green algae\",\"Other blue green algae\",\"Unicellular green algae\",\"Brown algae\",\"Golden brown algae\",\"Nostocales (Blue green algae)\",\"Chara\",\"Ruppia maritima\",\"Other macrophytes\",\"Seeds\",\"Invertebrate eggs \",\"Fish bones\",\"Lucania parva eggs\",\"Other fish eggs\",\"Catfish egg\",\"Unidentified bone\",\"Fish eyes\",\"Fish otolith\",\"Ctenoid fish scale\",\"Cycloid fish scale\",\"Dinoflagellates (Noctiluca spp.)\",\"Protozoa\",\"Bivalvia\",\"Gastropoda\",\"Nematode\",\"Nemotode(Parasite)\",\"Calanoida copepoda\",\"Harpacticoida copepoda\",\"Copepoda nauplii\",\"Cyclopoid copepoda\",\"Cladocera\",\"Rotifera\",\"Unidefined zooplankton\",\"Chironomidae larvae\",\"Diptera 1\",\"Diptera 2\",\"Diptera midges(pupa)\",\"Polycheate worm\",\"Other annelid worms\",\"Amphipoda(Gammarus spp.)\",\"Corophium sp(amphipoda)\",\"Decopoda larvae\",\"Isopoda\",\"Unidentified invertebrate\",\"Other Ephemeroptera(Mayfly)\",\"Ephemeroptera(Baetidae)\",\"Coleoptera\",\"Other Hymenoptera\",\"Odonate\",\"Damselfly\",\"Other Thrips\",\"Thysanoptera (thrips)\",\"Pteromalitidae(Hymenoptera)\",\"Hemiptera\",\"Homoptera\",\"Unidentified insect larvae\",\"Arachnida \",\"Unidentified insects\",\"Mollusks (Oyster)\",\"Other Mollusks\",\"Ostracoda\",\"Brachyura (Crab zoea)\",\"Mysidacea\",\"Penneid shrimp post larvae\",\"Unidentified shrimp\",\"Palaemonotes pugio\",\"Peneaus setiferus\",\"Peneaus aztecus\",\"Callinectes sapidus\",\"Other crabs\",\"Neopunope sayi(mud crab)\",\"Myrophis punctatus (speckled worm eel)\",\"Mugil cephalus\",\"Brevoortia patronus\",\"Lepisosteus osseus \",\"Fundulus  grandis\",\"Other fundulus species\",\"Cyprinodon variegatus\",\"Pogonias cromis\",\"Menidia beryllina\",\"Anchoa mitchilli\",\"Other Sciaenidae species\",\"Lagodon rhomboides\",\"Arius felis\",\"Leiostomus xanthurus\",\"Gobiosoma bosc\",\"Lucania parva\",\"Micropogonias undulatus\",\"Cynoscion nebulosus\",\"Poecilia latipinna\",\"Unidentified fish\",\"Unidentified fish larvae\",\"Other Gobiidae \",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n" + ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n" + ",1,\"Pogonias cromis\",\"03.07.98\",,1,226,3,,\"Gillnet\",,0.15,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0.6,,,,,,0.45,,,,,,,,,,,,,,,,,,1.35,0.45,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,";
    DatasetImporter importer = new StudyImporterTestFactory(new TestParserFactory(csvString), nodeFactory).instantiateImporter((Class) DatasetImporterForAkin.class);
    importStudy(importer);
    StudyNode study = getStudySingleton(getGraphDb());
    Taxon taxon = taxonIndex.findTaxonByName("Pogonias cromis");
    assertNotNull(taxon);
    AtomicBoolean success = new AtomicBoolean(false);
    RelationshipListener relHandler = rel -> {
        assertThat(rel, is(not(nullValue())));
        if (rel.hasProperty(SpecimenConstant.EVENT_DATE)) {
            assertThat(rel.getProperty(SpecimenConstant.EVENT_DATE), is("1998-03-07T00:00:00Z"));
            Node specimenNode = rel.getEndNode();
            assertThat(specimenNode.getProperty(SpecimenConstant.LENGTH_IN_MM), is(226.0));
            assertThat(specimenNode.getProperty(SpecimenConstant.STOMACH_VOLUME_ML), is(3.0));
            Specimen specimen = new SpecimenNode(specimenNode);
            assertThat(specimen.getSampleLocation().getAltitude(), is(-0.7));
            Node speciesNode = specimenNode.getSingleRelationship(NodeUtil.asNeo4j(RelTypes.CLASSIFIED_AS), Direction.OUTGOING).getEndNode();
            assertThat(speciesNode.getProperty("name"), is("Pogonias cromis"));
            Iterable<Relationship> ateRels = specimenNode.getRelationships(NodeUtil.asNeo4j(InteractType.ATE), Direction.OUTGOING);
            Map<String, Map<String, Object>> preys = new TreeMap<String, Map<String, Object>>();
            for (Relationship ateRel : ateRels) {
                Node preyNode = ateRel.getEndNode();
                Node taxonNode = preyNode.getSingleRelationship(NodeUtil.asNeo4j(RelTypes.CLASSIFIED_AS), Direction.OUTGOING).getEndNode();
                String name = (String) taxonNode.getProperty("name");
                Map<String, Object> propertyMap = new TreeMap<String, Object>();
                propertyMap.put("name", name);
                propertyMap.put(SpecimenConstant.VOLUME_IN_ML, preyNode.getProperty(SpecimenConstant.VOLUME_IN_ML));
                preys.put(name, propertyMap);
            }
            Map<String, Object> sand = preys.get("Sand");
            assertThat(sand, is(notNullValue()));
            assertThat(sand.get("name"), is("Sand"));
            assertThat(sand.get(SpecimenConstant.VOLUME_IN_ML), is(0.15d));
            Map<String, Object> chironomidae = preys.get("Chironomidae larvae");
            assertThat(chironomidae, is(notNullValue()));
            assertThat(chironomidae.get("name"), is("Chironomidae larvae"));
            assertThat(chironomidae.get(SpecimenConstant.VOLUME_IN_ML), is(0.6d));
            Map<String, Object> amphipoda = preys.get("Amphipoda(Gammarus spp.)");
            assertThat(amphipoda, is(notNullValue()));
            assertThat(amphipoda.get("name"), is("Amphipoda(Gammarus spp.)"));
            assertThat(amphipoda.get(SpecimenConstant.VOLUME_IN_ML), is(0.45d));
            Map<String, Object> insecta = preys.get("Unidentified insects");
            assertThat(insecta, is(notNullValue()));
            assertThat(insecta.get("name"), is("Unidentified insects"));
            assertThat(insecta.get(SpecimenConstant.VOLUME_IN_ML), is(1.35d));
            Map<String, Object> mollusca = preys.get("Mollusks (Oyster)");
            assertThat(mollusca, is(notNullValue()));
            assertThat(mollusca.get("name"), is("Mollusks (Oyster)"));
            assertThat(mollusca.get(SpecimenConstant.VOLUME_IN_ML), is(0.45d));
            Node locationNode = specimenNode.getSingleRelationship(NodeUtil.asNeo4j(RelTypes.COLLECTED_AT), Direction.OUTGOING).getEndNode();
            assertThat(locationNode.getProperty(LocationConstant.LATITUDE), is(28.645202d));
            assertThat(locationNode.getProperty(LocationConstant.LONGITUDE), is(-96.099923d));
            success.set(true);
        }
    };
    NodeUtil.handleCollectedRelationships(new NodeTypeDirection(study.getUnderlyingNode()), relHandler);
    assertTrue(success.get());
}
Also used : DateUtil(org.eol.globi.util.DateUtil) NodeUtil(org.eol.globi.util.NodeUtil) Specimen(org.eol.globi.domain.Specimen) Date(java.util.Date) Direction(org.neo4j.graphdb.Direction) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) RelTypes(org.eol.globi.domain.RelTypes) Node(org.neo4j.graphdb.Node) InteractType(org.eol.globi.domain.InteractType) IsNull.nullValue(org.hamcrest.core.IsNull.nullValue) RelationshipListener(org.eol.globi.util.RelationshipListener) Map(java.util.Map) Is.is(org.hamcrest.core.Is.is) MatcherAssert.assertThat(org.hamcrest.MatcherAssert.assertThat) TermLookupServiceException(org.eol.globi.service.TermLookupServiceException) ParseException(java.text.ParseException) IsNot.not(org.hamcrest.core.IsNot.not) Taxon(org.eol.globi.domain.Taxon) UberonLookupService(org.eol.globi.taxon.UberonLookupService) Assert.assertNotNull(org.junit.Assert.assertNotNull) Assert.assertTrue(org.junit.Assert.assertTrue) Test(org.junit.Test) StudyNode(org.eol.globi.domain.StudyNode) NodeTypeDirection(org.eol.globi.util.NodeTypeDirection) Relationship(org.neo4j.graphdb.Relationship) TreeMap(java.util.TreeMap) IsNull.notNullValue(org.hamcrest.core.IsNull.notNullValue) SpecimenConstant(org.eol.globi.domain.SpecimenConstant) SpecimenNode(org.eol.globi.domain.SpecimenNode) LocationConstant(org.eol.globi.domain.LocationConstant) NodeTypeDirection(org.eol.globi.util.NodeTypeDirection) Taxon(org.eol.globi.domain.Taxon) Node(org.neo4j.graphdb.Node) StudyNode(org.eol.globi.domain.StudyNode) SpecimenNode(org.eol.globi.domain.SpecimenNode) SpecimenNode(org.eol.globi.domain.SpecimenNode) StudyNode(org.eol.globi.domain.StudyNode) RelationshipListener(org.eol.globi.util.RelationshipListener) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) Specimen(org.eol.globi.domain.Specimen) Relationship(org.neo4j.graphdb.Relationship) Map(java.util.Map) TreeMap(java.util.TreeMap) Test(org.junit.Test)

Example 17 with NodeTypeDirection

use of org.eol.globi.util.NodeTypeDirection in project eol-globi-data by jhpoelen.

the class DatasetImporterForICESTest method parseSelection.

@Test
public void parseSelection() throws NodeFactoryException, StudyImporterException, ParseException {
    String firstBunchOfLines = "File Name,Latitude,Longitude,Estimated Lat/Lon,Date/Time,Year,Quarter,Month,Day,Time,Station/Haul,Sample Number,ICES StomachID,Depth,Temperature,Country,Ship,ICES Rectangle,Sampling Method,Predator,Predator NODC Code,Predator (mean) Lengh,Predator (mean) Weight,Predator (mean) Age,Predator Lower Length Bound,Predator Upper Length Bound,CPUE,Number Stomachs With Food,Number Stomachs Regurgitated,Number Stomachs With Skeletal Remains,Number Stomachs Empty,Number Stomachs,Digestion Stage,Prey Species Name,Prey NODC Code,Prey Weight,Prey Lower Length Bound,Prey Upper Length Bound,Prey Number,ICES Internal ID\n" + "Exccoddatsto_815,55.25,8.5,Yes,01/01/1981 00:00:00,1981,1,1,1,,,26,26,,,,,39F8,Demersal sampling,Gadus morhua,8791030402,125,,,100,150,29,26,0,0,2,28,,Polychaeta,5001000000,1.5,,,5,1\n" + "Exccoddatsto_815,55.25,8.5,Yes,01/01/1981 00:00:00,1981,1,1,1,,,26,26,,,,,39F8,Demersal sampling,Gadus morhua,8791030402,125,,,100,150,29,26,0,0,2,28,,Nereis,5001240400,5.3,,,1,2\n" + "Exccoddatsto_815,55.25,8.5,Yes,01/01/1981 00:00:00,1981,1,1,1,,,26,26,,,,,39F8,Demersal sampling,Gadus morhua,8791030402,125,,,100,150,29,26,0,0,2,28,,,5515290302,4.8,,,2,3";
    DatasetImporterForICES importer = new DatasetImporterForICES(new TestParserFactory(firstBunchOfLines), nodeFactory);
    importStudy(importer);
    StudyNode study = getStudySingleton(getGraphDb());
    assertNotNull(taxonIndex.findTaxonByName("Gadus morhua"));
    assertNotNull(taxonIndex.findTaxonByName("Polychaeta"));
    assertNotNull(taxonIndex.findTaxonByName("Nereis"));
    AtomicInteger specimenCollected = new AtomicInteger(0);
    AtomicInteger preyEaten = new AtomicInteger(0);
    RelationshipListener handler = new RelationshipListener() {

        @Override
        public void on(Relationship rel) {
            assertThat(rel.getProperty(SpecimenConstant.EVENT_DATE), is("1981-01-01T00:00:00Z"));
            Node specimen = rel.getEndNode();
            assertNotNull(specimen);
            Iterable<Relationship> relationships = specimen.getRelationships(Direction.OUTGOING, NodeUtil.asNeo4j(InteractType.ATE));
            for (Relationship ignored : relationships) {
                assertThat(specimen.getProperty(SpecimenConstant.LENGTH_IN_MM), is(125.0));
                preyEaten.incrementAndGet();
            }
            Relationship collectedAtRelationship = specimen.getSingleRelationship(NodeUtil.asNeo4j(RelTypes.COLLECTED_AT), Direction.OUTGOING);
            assertNotNull(collectedAtRelationship);
            Node locationNode = collectedAtRelationship.getEndNode();
            assertNotNull(locationNode);
            assertThat(locationNode.getProperty(LocationConstant.LATITUDE), is(55.25));
            assertThat(locationNode.getProperty(LocationConstant.LONGITUDE), is(8.5));
            specimenCollected.incrementAndGet();
        }
    };
    NodeUtil.handleCollectedRelationships(new NodeTypeDirection(study.getUnderlyingNode()), handler);
    assertThat(specimenCollected.get(), Is.is(3));
    assertThat(preyEaten.get(), Is.is(2));
}
Also used : AtomicInteger(java.util.concurrent.atomic.AtomicInteger) NodeTypeDirection(org.eol.globi.util.NodeTypeDirection) Relationship(org.neo4j.graphdb.Relationship) StudyNode(org.eol.globi.domain.StudyNode) Node(org.neo4j.graphdb.Node) StudyNode(org.eol.globi.domain.StudyNode) RelationshipListener(org.eol.globi.util.RelationshipListener) Test(org.junit.Test)

Example 18 with NodeTypeDirection

use of org.eol.globi.util.NodeTypeDirection in project eol-globi-data by jhpoelen.

the class DatasetImporterForLifeWatchGreeceTest method readAssociations.

@Test
public void readAssociations() throws StudyImporterException {
    List<StudyNode> studies = NodeUtil.findAllStudies(getGraphDb());
    assertThat(studies.size(), is(0));
    ParserFactoryLocal parserFactory = new ParserFactoryLocal();
    DatasetImporterForLifeWatchGreece importer = new DatasetImporterForLifeWatchGreece(parserFactory, nodeFactory);
    importer.setDataset(new DatasetLocal(inStream -> inStream));
    importStudy(importer);
    studies = NodeUtil.findAllStudies(getGraphDb());
    assertThat(studies.size(), is(146));
    Set<String> taxa = new HashSet<String>();
    final AtomicInteger totalPredatorPreyRelationships = new AtomicInteger(0);
    for (StudyNode study : studies) {
        assertThat(study.getCitation(), is(notNullValue()));
        assertThat(study.getTitle(), containsString("greece"));
        RelationshipListener handler = relationship -> {
            addTaxonNameForSpecimenNode(taxa, relationship.getEndNode());
            Specimen predatorSpecimen = new SpecimenNode(relationship.getEndNode());
            Iterable<Relationship> prey = NodeUtil.getStomachContents(predatorSpecimen);
            for (Relationship ateRel : prey) {
                totalPredatorPreyRelationships.incrementAndGet();
                addTaxonNameForSpecimenNode(taxa, ateRel.getEndNode());
            }
        };
        NodeUtil.handleCollectedRelationships(new NodeTypeDirection(study.getUnderlyingNode()), handler);
    }
    assertThat(taxa.contains("Aves"), is(true));
    assertThat(totalPredatorPreyRelationships.get(), is(793));
}
Also used : NodeUtil(org.eol.globi.util.NodeUtil) Specimen(org.eol.globi.domain.Specimen) Set(java.util.Set) Test(org.junit.Test) StudyNode(org.eol.globi.domain.StudyNode) Node(org.neo4j.graphdb.Node) DatasetLocal(org.eol.globi.service.DatasetLocal) NodeTypeDirection(org.eol.globi.util.NodeTypeDirection) HashSet(java.util.HashSet) List(java.util.List) Relationship(org.neo4j.graphdb.Relationship) RelationshipListener(org.eol.globi.util.RelationshipListener) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) IsNull.notNullValue(org.hamcrest.core.IsNull.notNullValue) Matchers.is(org.hamcrest.Matchers.is) MatcherAssert.assertThat(org.hamcrest.MatcherAssert.assertThat) SpecimenNode(org.eol.globi.domain.SpecimenNode) Matchers.containsString(org.hamcrest.Matchers.containsString) TaxonNode(org.eol.globi.domain.TaxonNode) NodeTypeDirection(org.eol.globi.util.NodeTypeDirection) Matchers.containsString(org.hamcrest.Matchers.containsString) SpecimenNode(org.eol.globi.domain.SpecimenNode) DatasetLocal(org.eol.globi.service.DatasetLocal) StudyNode(org.eol.globi.domain.StudyNode) RelationshipListener(org.eol.globi.util.RelationshipListener) Specimen(org.eol.globi.domain.Specimen) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Relationship(org.neo4j.graphdb.Relationship) HashSet(java.util.HashSet) Test(org.junit.Test)

Example 19 with NodeTypeDirection

use of org.eol.globi.util.NodeTypeDirection in project eol-globi-data by jhpoelen.

the class DatasetImporterForRSSLocalTest method importLocalFieldMuseumResourceRelationArchive.

@Test
public void importLocalFieldMuseumResourceRelationArchive() throws StudyImporterException, IOException {
    URL resource = getClass().getResource("/org/eol/globi/data/fmnh-rr-8278596f-4d3f-4f82-8cd1-b5070fe1bc7c.zip");
    importDwCViaRSS(resource);
    List<StudyNode> allStudies = NodeUtil.findAllStudies(getGraphDb());
    assertThat(allStudies.size(), greaterThan(0));
    StudyNode study = allStudies.get(0);
    AtomicInteger counter = new AtomicInteger(0);
    NodeUtil.handleCollectedRelationships(new NodeTypeDirection(study.getUnderlyingNode()), relationship -> {
        assertThat(relationship.getType().name(), is("COLLECTED"));
        SpecimenNode source = new SpecimenNode(relationship.getEndNode());
        Relationship singleRelationship = source.getUnderlyingNode().getSingleRelationship(NodeUtil.asNeo4j(InteractType.ECTOPARASITE_OF), Direction.OUTGOING);
        if (singleRelationship != null) {
            SpecimenNode target = new SpecimenNode(singleRelationship.getEndNode());
            assertNotNull(target);
            assertNotNull(source);
            Node sourceOrigTaxon = source.getUnderlyingNode().getSingleRelationship(NodeUtil.asNeo4j(RelTypes.ORIGINALLY_DESCRIBED_AS), Direction.OUTGOING).getEndNode();
            Node targetOrigTaxon = target.getUnderlyingNode().getSingleRelationship(NodeUtil.asNeo4j(RelTypes.ORIGINALLY_DESCRIBED_AS), Direction.OUTGOING).getEndNode();
            assertThat(new TaxonNode(sourceOrigTaxon).getName(), is("Orchopeas fulleri Traub, 1950"));
            assertThat(new TaxonNode(targetOrigTaxon).getName(), is("Glaucomys volans"));
            counter.getAndIncrement();
        }
    });
    assertThat(counter.get(), is(1));
}
Also used : TaxonNode(org.eol.globi.domain.TaxonNode) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) NodeTypeDirection(org.eol.globi.util.NodeTypeDirection) Relationship(org.neo4j.graphdb.Relationship) ObjectNode(com.fasterxml.jackson.databind.node.ObjectNode) Node(org.neo4j.graphdb.Node) StudyNode(org.eol.globi.domain.StudyNode) SpecimenNode(org.eol.globi.domain.SpecimenNode) TaxonNode(org.eol.globi.domain.TaxonNode) SpecimenNode(org.eol.globi.domain.SpecimenNode) URL(java.net.URL) StudyNode(org.eol.globi.domain.StudyNode) Test(org.junit.Test)

Example 20 with NodeTypeDirection

use of org.eol.globi.util.NodeTypeDirection in project eol-globi-data by jhpoelen.

the class CmdGenerateReport method countInteractionsAndTaxa.

private void countInteractionsAndTaxa(Set<Long> ids, Counter interactionCounter, Set<Long> idsNoMatch, Node studyNode) {
    RelationshipListener handler = specimen -> {
        Iterable<Relationship> relationships = specimen.getEndNode().getRelationships();
        for (Relationship relationship : relationships) {
            InteractType[] types = InteractType.values();
            for (InteractType type : types) {
                if (relationship.isType(NodeUtil.asNeo4j(type)) && !relationship.hasProperty(PropertyAndValueDictionary.INVERTED)) {
                    interactionCounter.count();
                    break;
                }
            }
        }
        Relationship classifiedAs = specimen.getEndNode().getSingleRelationship(NodeUtil.asNeo4j(RelTypes.CLASSIFIED_AS), Direction.OUTGOING);
        if (classifiedAs != null) {
            Node taxonNode = classifiedAs.getEndNode();
            ids.add(taxonNode.getId());
            if (!TaxonUtil.isResolved(new TaxonNode(taxonNode))) {
                idsNoMatch.add(taxonNode.getId());
            }
        }
    };
    NodeUtil.handleCollectedRelationshipsNoTx(new NodeTypeDirection(studyNode), handler);
}
Also used : CacheService(org.eol.globi.service.CacheService) TaxonUtil(org.eol.globi.service.TaxonUtil) Logger(org.slf4j.Logger) NodeUtil(org.eol.globi.util.NodeUtil) Direction(org.neo4j.graphdb.Direction) LoggerFactory(org.slf4j.LoggerFactory) Set(java.util.Set) StudyConstant(org.eol.globi.domain.StudyConstant) IOException(java.io.IOException) StudyNode(org.eol.globi.domain.StudyNode) UUID(java.util.UUID) StringUtils(org.apache.commons.lang3.StringUtils) RelTypes(org.eol.globi.domain.RelTypes) Node(org.neo4j.graphdb.Node) InteractType(org.eol.globi.domain.InteractType) NodeTypeDirection(org.eol.globi.util.NodeTypeDirection) Relationship(org.neo4j.graphdb.Relationship) GraphDatabaseService(org.neo4j.graphdb.GraphDatabaseService) RelationshipListener(org.eol.globi.util.RelationshipListener) Dataset(org.globalbioticinteractions.dataset.Dataset) PropertyAndValueDictionary(org.eol.globi.domain.PropertyAndValueDictionary) DB(org.mapdb.DB) TaxonNode(org.eol.globi.domain.TaxonNode) InteractType(org.eol.globi.domain.InteractType) TaxonNode(org.eol.globi.domain.TaxonNode) NodeTypeDirection(org.eol.globi.util.NodeTypeDirection) Relationship(org.neo4j.graphdb.Relationship) StudyNode(org.eol.globi.domain.StudyNode) Node(org.neo4j.graphdb.Node) TaxonNode(org.eol.globi.domain.TaxonNode) RelationshipListener(org.eol.globi.util.RelationshipListener)

Aggregations

NodeTypeDirection (org.eol.globi.util.NodeTypeDirection)29 StudyNode (org.eol.globi.domain.StudyNode)25 Node (org.neo4j.graphdb.Node)21 Relationship (org.neo4j.graphdb.Relationship)20 Test (org.junit.Test)19 NodeUtil (org.eol.globi.util.NodeUtil)16 RelationshipListener (org.eol.globi.util.RelationshipListener)16 SpecimenNode (org.eol.globi.domain.SpecimenNode)15 Direction (org.neo4j.graphdb.Direction)14 RelTypes (org.eol.globi.domain.RelTypes)12 Specimen (org.eol.globi.domain.Specimen)10 MatcherAssert.assertThat (org.hamcrest.MatcherAssert.assertThat)10 TaxonNode (org.eol.globi.domain.TaxonNode)9 IOException (java.io.IOException)8 InteractType (org.eol.globi.domain.InteractType)8 Is.is (org.hamcrest.core.Is.is)8 AtomicBoolean (java.util.concurrent.atomic.AtomicBoolean)7 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)7 Study (org.eol.globi.domain.Study)7 Assert.assertTrue (org.junit.Assert.assertTrue)7