@Override public String generateIdentifier() { return idService.getSupplier(PREFIX).get(); }
/** * Create a File-based Binary service. * * @param idService an identifier service * @param basePath the base file path * @param hierarchy the levels of hierarchy * @param length the length of each level of hierarchy */ public FileBinaryService(final IdentifierService idService, final String basePath, final int hierarchy, final int length) { this.basePath = requireNonNull(basePath, CONFIG_FILE_BINARY_BASE_PATH + " configuration may not be null!"); LOGGER.info("Storing binaries as files at {}", basePath); this.idSupplier = idService.getSupplier("file:///", hierarchy, length); }
/** * Create a triplestore-backed resource service. * @param rdfConnection the connection to an RDF datastore * @param identifierService an ID supplier service */ public TriplestoreResourceService(final RDFConnection rdfConnection, final IdentifierService identifierService) { super(); this.rdfConnection = requireNonNull(rdfConnection, "RDFConnection may not be null!"); this.supplier = requireNonNull(identifierService, "IdentifierService may not be null!").getSupplier(); this.supportedIxnModels = unmodifiableSet(asList(LDP.Resource, LDP.RDFSource, LDP.NonRDFSource, LDP.Container, LDP.BasicContainer, LDP.DirectContainer, LDP.IndirectContainer).stream().collect(toSet())); }
/** * Create a triplestore-backed resource service. * @param rdfConnection the connection to an RDF datastore * @param identifierService an ID supplier service */ public TriplestoreResourceService(final RDFConnection rdfConnection, final IdentifierService identifierService) { super(); this.rdfConnection = requireNonNull(rdfConnection, "RDFConnection may not be null!"); this.supplier = requireNonNull(identifierService, "IdentifierService may not be null!").getSupplier(); this.supportedIxnModels = unmodifiableSet(asList(LDP.Resource, LDP.RDFSource, LDP.NonRDFSource, LDP.Container, LDP.BasicContainer, LDP.DirectContainer, LDP.IndirectContainer).stream().collect(toSet())); }
/** * Create a Database-backed resource service. * @param jdbi the jdbi object * @param batchSize the batch size * @param identifierService an ID supplier service */ public DBResourceService(final Jdbi jdbi, final int batchSize, final IdentifierService identifierService) { this.jdbi = requireNonNull(jdbi, "Jdbi may not be null!"); this.supplier = requireNonNull(identifierService, "IdentifierService may not be null!").getSupplier(); this.batchSize = batchSize; this.supportedIxnModels = unmodifiableSet(asList(LDP.Resource, LDP.RDFSource, LDP.NonRDFSource, LDP.Container, LDP.BasicContainer, LDP.DirectContainer, LDP.IndirectContainer).stream().collect(toSet())); LOGGER.info("Using database persistence with TrellisLDP"); }
@Test public void testGenerator() { final String prefix1 = "http://example.org/"; final String prefix2 = "trellis:data/a/b/c/"; final IdentifierService svc = new DefaultIdentifierService(); final Supplier<String> gen1 = svc.getSupplier(prefix1); final Supplier<String> gen2 = svc.getSupplier(prefix2); final String id1 = gen1.get(); final String id2 = gen2.get(); assertTrue(id1.startsWith(prefix1), "Generated id has wrong prefix!"); assertNotEquals(prefix1, id1, "Generated id shouldn't equal prefix!"); assertTrue(id2.startsWith(prefix2), "Generated id has wrong prefix!"); assertNotEquals(prefix2, id2, "Generated id shouldn't equal prefix!"); }
@Test public void testGenerator2() { final IdentifierService svc = new DefaultIdentifierService(); final Supplier<String> gen = svc.getSupplier("", 4, 2); final String id = gen.get(); final String[] parts = id.split("/"); assertEquals(5L, parts.length, "hierarchical supplier has wrong number of levels!"); assertEquals(parts[0], parts[4].substring(0, 2), "hierarchical supplier has wrong first section!"); assertEquals(parts[1], parts[4].substring(2, 4), "hierarchical supplier has wrong second section!"); assertEquals(parts[2], parts[4].substring(4, 6), "hierarchical supplier has wrong third section!"); assertEquals(parts[3], parts[4].substring(6, 8), "hierarchical supplier has wrong fourth section!"); }