public Iterable<Statement> serialize( final EntityState entityState, final boolean includeNonQueryable ) { Graph graph = new GraphImpl(); serialize( entityState, includeNonQueryable, graph ); return graph; }
private void indexEntityState( final EntityState entityState, final RepositoryConnection connection ) throws RepositoryException { if( entityState.entityDescriptor().queryable() ) { EntityReference reference = entityState.entityReference(); final URI entityURI = stateSerializer.createEntityURI( getValueFactory(), reference); Graph graph = new GraphImpl(); stateSerializer.serialize( entityState, false, graph ); connection.add( graph, entityURI ); } }
@Override @Before public void setUp() throws Exception { super.setUp(); createDummyData(); }
vb2.prototype().data().set( "Zout" ); valueBuilder.prototype().test1().set( 4L ); valueBuilder.prototype().test3().set( vb2.newInstance() ); TestValue testValue = valueBuilder.newInstance(); rickardTemplate.name().set( "Rickard" ); rickardTemplate.title().set( "Mr" ); rickardTemplate.value().set( testValue ); TestEntity testEntity = builder.newInstance(); niclasTemplate.name().set( "Niclas" ); niclasTemplate.title().set( "Mr" ); niclasTemplate.association().set( testEntity ); niclasTemplate.manyAssoc().add( 0, testEntity ); niclasTemplate.group().add( 0, testEntity ); niclasTemplate.group().add( 0, testEntity ); niclasTemplate.group().add( 0, testEntity ); valueBuilder = valueBuilderFactory.newValueBuilderWithPrototype( testValue ); valueBuilder.prototype().test1().set( 5L ); testValue = valueBuilder.newInstance(); niclasTemplate.value().set( testValue ); TestEntity testEntity2 = builder2.newInstance(); unitOfWork.complete();
public void serialize( final EntityState entityState, final boolean includeNonQueryable, final Graph graph ) { ValueFactory values = graph.getValueFactory(); EntityReference reference = entityState.entityReference(); URI entityUri = createEntityURI( values, reference ); graph.add( entityUri, Rdfs.TYPE, values.createURI( Classes.toURI( entityState.entityDescriptor().types().findFirst().orElse( null ) ) ) ); serializeProperties( entityState, graph, entityUri, entityState.entityDescriptor(), includeNonQueryable ); serializeAssociations( entityState, graph, entityUri, entityState.entityDescriptor().state().associations(), includeNonQueryable ); serializeManyAssociations( entityState, graph, entityUri, entityState.entityDescriptor().state().manyAssociations(), includeNonQueryable ); }
public Iterable<Statement> serialize( final EntityDescriptor entityDescriptor ) { Graph graph = new GraphImpl(); ValueFactory values = graph.getValueFactory(); URI entityTypeUri = values.createURI( Classes.toURI( entityDescriptor.types().findFirst().orElse( null ) ) ); graph.add( entityTypeUri, Rdfs.TYPE, Rdfs.CLASS ); graph.add( entityTypeUri, Rdfs.TYPE, OWL.CLASS ); graph.add( entityTypeUri, PolygeneEntityType.TYPE, values.createLiteral( entityDescriptor.types().findFirst().get().toString() ) ); graph.add( entityTypeUri, PolygeneEntityType.QUERYABLE, values.createLiteral( entityDescriptor.queryable() ) ); serializeMixinTypes( entityDescriptor, graph, entityTypeUri ); serializePropertyTypes( entityDescriptor, graph, entityTypeUri ); serializeAssociationTypes( entityDescriptor, graph, entityTypeUri ); serializeManyAssociationTypes( entityDescriptor, graph, entityTypeUri ); return graph; }
private void indexEntityType( final EntityDescriptor entityType, final RepositoryConnection connection ) throws RepositoryException { if( entityType.queryable() ) { String uri = Classes.toURI(entityType.types().findFirst().orElse(null)); final URI compositeURI = getValueFactory().createURI( uri ); // remove composite type if already present connection.clear( compositeURI ); Iterable<Statement> statements = typeSerializer.serialize( entityType ); connection.add( statements, compositeURI ); } }
private void removeEntityStates( Iterable<EntityState> entityStates, RepositoryConnection connection ) throws RepositoryException { List<URI> removedStates = new ArrayList<>(); for( EntityState entityState : entityStates ) { if( entityState.status().equals( EntityStatus.REMOVED ) ) { removedStates.add( stateSerializer.createEntityURI( getValueFactory(), entityState.entityReference() ) ); } else if( entityState.status().equals( EntityStatus.UPDATED ) ) { removedStates.add( stateSerializer.createEntityURI( getValueFactory(), entityState.entityReference() ) ); } } if( !removedStates.isEmpty() ) { Resource[] resources = removedStates.toArray( new Resource[ removedStates.size() ] ); connection.remove( null, null, null, resources ); } }
.qualifiedName() .name() ); serializeValueComposite( collection, pred, (ValueComposite) propertyValue, type, graph, serializeProperty( persistentProperty, propertyValue, collection, graph,
@Override @Before public void setUp() throws Exception { super.setUp(); createDummyData(); }
private void serializeProperties( EntityState entityState, Graph graph, Resource subject, EntityDescriptor entityType, boolean includeNonQueryable ) { // Properties entityType.state().properties().forEach( persistentProperty -> { Object property = entityState.propertyValueOf( persistentProperty.qualifiedName() ); if( property != null ) { serializeProperty( persistentProperty, property, subject, graph, includeNonQueryable ); } } ); }
private void serializeProperty( PropertyDescriptor persistentProperty, Object property, Resource subject, Graph graph, boolean includeNonQueryable ) { if( !( includeNonQueryable || persistentProperty.queryable() ) ) { return; // Skip non-queryable } ValueType valueType = persistentProperty.valueType(); final ValueFactory valueFactory = graph.getValueFactory(); String propertyURI = persistentProperty.qualifiedName().toURI(); URI predicate = valueFactory.createURI( propertyURI ); String baseURI = propertyURI.substring( 0, propertyURI.indexOf( '#' ) ) + "/"; if( valueType instanceof ValueCompositeType ) { serializeValueComposite( subject, predicate, (ValueComposite) property, valueType, graph, baseURI, includeNonQueryable ); } else { String stringProperty = serializer.serialize( Serializer.Options.NO_TYPE_INFO, property ); final Literal object = valueFactory.createLiteral( stringProperty ); graph.add( subject, predicate, object ); } }
private void indexEntityState( final EntityState entityState, final RepositoryConnection connection ) throws RepositoryException { if( entityState.entityDescriptor().queryable() ) { EntityReference reference = entityState.entityReference(); final URI entityURI = stateSerializer.createEntityURI( getValueFactory(), reference); Graph graph = new GraphImpl(); stateSerializer.serialize( entityState, false, graph ); connection.add( graph, entityURI ); } }
valueBuilder.prototype().test1().set( 4L ); ValueBuilder<Test2Value> valueBuilder2 = valueBuilderFactory.newValueBuilder( Test2Value.class ); valueBuilder2.prototype().data().set( "Habba" ); valueBuilder.prototype().test3().set( valueBuilder2.newInstance() ); TestValue testValue = valueBuilder.newInstance(); rickardTemplate.name().set( "Rickard" ); rickardTemplate.title().set( "Mr" ); rickardTemplate.value().set( testValue ); TestEntity testEntity = builder.newInstance(); niclasTemplate.name().set( "Niclas" ); niclasTemplate.title().set( "Mr" ); niclasTemplate.association().set( testEntity ); niclasTemplate.manyAssoc().add( 0, testEntity ); niclasTemplate.group().add( 0, testEntity ); niclasTemplate.group().add( 0, testEntity ); niclasTemplate.group().add( 0, testEntity ); valueBuilder = valueBuilderFactory.newValueBuilderWithPrototype( testValue ); valueBuilder.prototype().test1().set( 5L ); testValue = valueBuilder.newInstance(); niclasTemplate.value().set( testValue ); builder2.newInstance(); unitOfWork.complete();
@Override public void write( Writer writer ) throws IOException { try { Iterable<Statement> statements = entitySerializer.serialize( entity ); new RdfXmlSerializer().serialize( statements, writer ); } catch( RDFHandlerException e ) { throw new IOException( e ); } } };
private void indexEntityType( final EntityDescriptor entityType, final RepositoryConnection connection ) throws RepositoryException { if( entityType.queryable() ) { String uri = Classes.toURI(entityType.types().findFirst().orElse(null)); final URI compositeURI = getValueFactory().createURI( uri ); // remove composite type if already present connection.clear( compositeURI ); Iterable<Statement> statements = typeSerializer.serialize( entityType ); connection.add( statements, compositeURI ); } }
private void removeEntityStates( Iterable<EntityState> entityStates, RepositoryConnection connection ) throws RepositoryException { List<URI> removedStates = new ArrayList<>(); for( EntityState entityState : entityStates ) { if( entityState.status().equals( EntityStatus.REMOVED ) ) { removedStates.add( stateSerializer.createEntityURI( getValueFactory(), entityState.entityReference() ) ); } else if( entityState.status().equals( EntityStatus.UPDATED ) ) { removedStates.add( stateSerializer.createEntityURI( getValueFactory(), entityState.entityReference() ) ); } } if( !removedStates.isEmpty() ) { Resource[] resources = removedStates.toArray( new Resource[ removedStates.size() ] ); connection.remove( null, null, null, resources ); } }
@Test public void testEntitySerializer() throws RDFHandlerException { EntityReference entityReference = EntityReference.parseEntityReference( "test2" ); Usecase usecase = UsecaseBuilder.newUsecase( "Test" ); Instant currentTime = SystemTime.now(); EntityStoreUnitOfWork unitOfWork = entityStore.newUnitOfWork( module, usecase, currentTime ); EntityState entityState = unitOfWork.entityStateOf( module, entityReference ); Iterable<Statement> graph = serializer.serialize( entityState ); String[] prefixes = new String[]{ "rdf", "dc", " vc" }; String[] namespaces = new String[]{ Rdfs.RDF, DcRdf.NAMESPACE, "http://www.w3.org/2001/vcard-rdf/3.0#" }; new RdfXmlSerializer().serialize( graph, new PrintWriter( System.out ), prefixes, namespaces ); }
@Test public void testEntityTypeSerializer() throws RDFHandlerException { EntityDescriptor entityDescriptor = module.entityDescriptor(TestEntity.class.getName()); Iterable<Statement> graph = serializer.serialize( entityDescriptor ); String[] prefixes = new String[]{ "rdf", "dc", " vc", "polygene" }; String[] namespaces = new String[]{ Rdfs.RDF, DcRdf.NAMESPACE, "http://www.w3.org/2001/vcard-rdf/3.0#", PolygeneEntityType.NAMESPACE }; new RdfXmlSerializer().serialize( graph, new PrintWriter( System.out ), prefixes, namespaces ); }
stateSerializer.serialize( entityState, false, graph );