private String getId(Record r) { for (Property idprop : config.getIdentityProperties()) { String v = r.getValue(idprop.getName()); if (v != null) return v; } return null; }
private String getid(Record r) { for (Property p : idprops) { String v = r.getValue(p.getName()); if (v == null) continue; return v; } throw new DukeException("No identity for record " + r); } }
/** * Look up record by identity. */ public Record findRecordById(String id) { if (directory == null) init(); Property idprop = config.getIdentityProperties().iterator().next(); for (Record r : lookup(idprop, id)) if (r.getValue(idprop.getName()).equals(id)) return r; return null; // not found }
private String getid(Record r) { for (String propname : r.getProperties()) if (config.getPropertyByName(propname).isIdProperty()) return r.getValue(propname); return null; } }
private String getid(Record r) { for (String propname : r.getProperties()) { Property prop = config.getPropertyByName(propname); if (prop == null) throw new DukeConfigException("Record has property " + propname + " which is not in configuration"); if (prop.isIdProperty()) return r.getValue(propname); } return null; }
@Test public void testTrivial() throws IOException { Record record = TestUtils.makeRecord("ID", "1", "NAME", "AND", "EMAIL", "BBBBB"); db.index(record); db.commit(); record = db.findRecordById("1"); assertTrue("no record found", record != null); assertEquals("wrong ID", "1", record.getValue("ID")); assertEquals("wrong EMAIL", "BBBBB", record.getValue("EMAIL")); }
@Test public void testTrivialFind() throws IOException { Record record = TestUtils.makeRecord("ID", "1", "NAME", "AND", "EMAIL", "BBBBB"); db.index(record); db.commit(); Collection<Record> cands = db.findCandidateMatches(record); assertEquals("no record found", 1, cands.size()); assertEquals("wrong ID", "1", cands.iterator().next().getValue("ID")); }
@Test public void testSingleRecord2() { source.addColumn(new Column("?uri", "ID", null, null)); source.addColumn(new Column("http://b", "PROP", null, null)); RecordIterator it = read("<http://a> <http://b> \"foo\" .\n" + "<http://a> <http://c> \"foo\" .\n"); Record r = it.next(); assertEquals("http://a", r.getValue("ID")); assertEquals("foo", r.getValue("PROP")); assertFalse(it.hasNext()); }
@Test public void testSingleRecord() { source.addColumn(new Column("?uri", "ID", null, null)); source.addColumn(new Column("http://b", "PROP", null, null)); RecordIterator it = read("<http://a> <http://b> \"foo\" .\n"); Record r = it.next(); assertEquals("http://a", r.getValue("ID")); assertEquals("foo", r.getValue("PROP")); assertFalse(it.hasNext()); }
@Test public void testURI() throws IOException { Record record = TestUtils.makeRecord("ID", "http://norman.walsh.name/knows/who/robin-berjon", "NAME", "AND", "EMAIL", "BBBBB"); db.index(record); db.commit(); record = db.findRecordById("http://norman.walsh.name/knows/who/robin-berjon"); assertTrue("no record found", record != null); assertEquals("wrong ID", "http://norman.walsh.name/knows/who/robin-berjon", record.getValue("ID")); }
@Test public void testBNode() throws IOException { Record record = TestUtils.makeRecord("ID", "_:RHUKdfPM299", "NAME", "AND", "EMAIL", "BBBBB"); db.index(record); db.commit(); record = db.findRecordById("_:RHUKdfPM299"); assertTrue("no record found", record != null); assertEquals("wrong ID", "_:RHUKdfPM299", record.getValue("ID")); }
@Test public void testSingleRecord() throws IOException { source.addColumn(new Column("F1", null, null, null)); source.addColumn(new Column("F2", null, null, null)); source.addColumn(new Column("F3", null, null, null)); RecordIterator it = read("F1,F2,F3\na,b,c"); Record r = it.next(); assertEquals("a", r.getValue("F1")); assertEquals("b", r.getValue("F2")); assertEquals("c", r.getValue("F3")); }
@Test public void testSeparator() throws IOException { source.addColumn(new Column("F1", null, null, null)); source.addColumn(new Column("F2", null, null, null)); source.addColumn(new Column("F3", null, null, null)); RecordIterator it = read("F1;F2;F3\na;b;c", ';'); Record r = it.next(); assertEquals("a", r.getValue("F1")); assertEquals("b", r.getValue("F2")); assertEquals("c", r.getValue("F3")); }
@Test public void testNoValueForEmpty() throws IOException { source.addColumn(new Column("F1", null, null, null)); source.addColumn(new Column("F2", null, null, null)); source.addColumn(new Column("F3", null, null, null)); RecordIterator it = read("F1,F2,F3\na,b,"); Record r = it.next(); assertEquals("a", r.getValue("F1")); assertEquals("b", r.getValue("F2")); assertEquals(r.getValue("F3"), null); }
@Test public void testSingleRecordWithoutHeader() throws IOException { source.addColumn(new Column("1", "F1", null, null)); source.addColumn(new Column("2", "F2", null, null)); source.addColumn(new Column("3", "F3", null, null)); source.setHeaderLine(false); RecordIterator it = read("a,b,c"); Record r = it.next(); assertEquals("a", r.getValue("F1")); assertEquals("b", r.getValue("F2")); assertEquals("c", r.getValue("F3")); }
@Test public void testSingleRecordWithoutHeaderExtraColumn() throws IOException { source.addColumn(new Column("1", "F1", null, null)); source.addColumn(new Column("2", "F2", null, null)); source.addColumn(new Column("3", "F3", null, null)); source.setHeaderLine(false); RecordIterator it = read("a,b,c,d"); Record r = it.next(); assertEquals("a", r.getValue("F1")); assertEquals("b", r.getValue("F2")); assertEquals("c", r.getValue("F3")); }
@Test public void testSingleRecordWithComment() throws IOException { source.addColumn(new Column("F1", null, null, null)); source.addColumn(new Column("F2", null, null, null)); source.addColumn(new Column("F3", null, null, null)); source.setSkipLines(1); RecordIterator it = read("# this is a comment\nF1,F2,F3\na,b,c"); Record r = it.next(); assertEquals("a", r.getValue("F1")); assertEquals("b", r.getValue("F2")); assertEquals("c", r.getValue("F3")); }
@Test public void testOneRowSkipColumn() { perform("insert into testdata values (1, 'foo')"); source.addColumn(new Column("ID", null, null, null)); RecordIterator it = source.getRecords(); assertTrue(it.hasNext()); Record r = it.next(); assertEquals("1", r.getValue("ID")); assertEquals(null, r.getValue("NAME")); assertFalse(it.hasNext()); }
@Test public void testOneRow() { perform("insert into testdata values (1, 'foo')"); source.addColumn(new Column("ID", null, null, null)); source.addColumn(new Column("NAME", null, null, null)); RecordIterator it = source.getRecords(); assertTrue(it.hasNext()); Record r = it.next(); assertEquals("1", r.getValue("ID")); assertEquals("foo", r.getValue("NAME")); assertFalse(it.hasNext()); }