private void next() throws IOException { try { triple = Triple.read(in); empty = false; } catch (EOFException e) { empty = true; triple = null; } }
public Triple(final String subject, final String predicate, final String object, final ObjectType objectType) { this.subject = subject; this.predicate = predicate; this.object = object; this.objectType = objectType; preCompHashCode = computeHashCode(); }
@Override public int compareTo(final Triple triple) { int result = subject.compareTo(triple.subject); if (result == 0) { result = predicate.compareTo(triple.predicate); if (result == 0) { result = object.compareTo(triple.object); if(result == 0) { return objectType.compareTo(triple.objectType); } } } return result; }
@Override public void process(final Triple triple) { assert !isClosed(); if (triple.getObjectType() != ObjectType.STRING) { return; } final String objectValue = retrieveObjectValue(triple.getObject()); getReceiver().process(new Triple(triple.getSubject(), triple.getPredicate(), objectValue)); }
public static Triple read(final ObjectInputStream in) throws IOException { try { return new Triple(in.readUTF(), in.readUTF(), in.readUTF(), (ObjectType) in.readObject()); } catch (final ClassNotFoundException e) { throw new IOException("Cannot read triple", e); } }
@Override public void process(final Triple obj) { subjectMatcher.reset(obj.getSubject()); predicateMatcher.reset(obj.getPredicate()); objectMatcher.reset(obj.getObject()); final boolean matches = subjectMatcher.matches() || predicateMatcher.matches() || objectMatcher.matches(); if ((matches && passMatches) || (!matches && !passMatches)) { getReceiver().process(obj); } }
private Path buildFilePath(final Triple triple) { final Path file = Paths.get(triple.getSubject(), triple.getPredicate()); return baseDir.resolve(file).toAbsolutePath().normalize(); }
@Override public int compare(final Triple o1, final Triple o2) { return order.order(o1.getSubject().compareTo(o2.getSubject())); } };
@Override public int compare(final Triple o1, final Triple o2) { return order.order(o1.getPredicate().compareTo(o2.getPredicate())); } };
@Override public void process(final Triple obj) { try { obj.write(outputStream); } catch (IOException e) { throw new MetafactureException(e); } }
@Override public int compare(final Triple o1, final Triple o2) { return order.order(o1.compareTo(o2)); } };
@Override public void process(final Triple triple) { final String[] elements = { triple.getSubject(), triple.getPredicate(), triple.getObject(), }; getReceiver().process(new Triple( elements[subjectFrom.ordinal()], elements[predicateFrom.ordinal()], elements[objectFrom.ordinal()] )); }
@Test public void shouldSkipTriplesWithObjectTypeEntity() { tripleObjectRetriever.process( new Triple(SUBJECT, PREDICATE, ENTITY, ObjectType.ENTITY)); verifyZeroInteractions(receiver); }
@Test(expected=IllegalArgumentException.class) public void testIllegalArgument() { final CooccurrenceMetricCalculator calculator = new CooccurrenceMetricCalculator("X2"); calculator.setReceiver(new DefaultObjectReceiver<Triple>()); calculator.process(new Triple("2:x&x", "", Integer.toString(COUNT_A_AND_B))); calculator.process(new Triple("1:x", "", Integer.toString(COUNT_B))); } }
@Test public void shouldBuildTripleFromLiteral() { streamToTriples.startRecord("id"); streamToTriples.literal("literal", "value"); streamToTriples.endRecord(); Mockito.verify(receiver).process(new Triple("id", "literal", "value")); }
@Test public void shouldRedirectOnMoveToInName() { streamToTriples.setRedirect(true); streamToTriples.startRecord("id"); streamToTriples.literal("{to:altId}literal", "value"); streamToTriples.endRecord(); Mockito.verify(receiver).process(new Triple("altId", "literal", "value")); }
@Test public void shouldRedirectIfAltIdGiven() { streamToTriples.setRedirect(true); streamToTriples.startRecord("id"); streamToTriples.literal(StandardEventNames.ID, "altId"); streamToTriples.literal("literal", "value"); streamToTriples.endRecord(); Mockito.verify(receiver).process(new Triple("altId", "literal", "value")); }
@Test public void shouldRedirectEvenIfRecordPredicateIsGiven() { streamToTriples.setRecordPredicate("record"); streamToTriples.setRedirect(true); streamToTriples.startRecord("id"); streamToTriples.literal(StandardEventNames.ID, "altId"); streamToTriples.literal("literal", "value"); streamToTriples.endRecord(); final String encodedRecord = "{literal:value}"; Mockito.verify(receiver).process( new Triple("altId", "record", encodedRecord, ObjectType.ENTITY)); }