@SuppressWarnings("unchecked") private Object getDeSerializedObjectForUUID( Connection connection, Type objectType, String uuid ) throws IOException { Object result = null; try { PreparedStatement ps = connection.prepareStatement( mapTypeToTable( OBJ_FROM_ID, objectType ) ); ps.setString( 1, uuid ); ResultSet rs = ps.executeQuery(); ObjectSerializer<?> serializer = super.getSerializerForType( objectType ); if ( rs.next() ) { byte[] b = rs.getBytes( RelevantColumns.data.getColumnName() ); if ( b != null ) { result = serializer.deserializeDataObject( b ); if ( result != null ) { if ( result instanceof WorldRenderableObject ) { WorldRenderableObject wro = (WorldRenderableObject) result; wro.setId( uuid ); wro.setBbox( createEnvelope( ( (G) rs.getObject( RelevantColumns.envelope.getColumnName() ) ) ) ); } } } } ps.close(); } catch ( SQLException e ) { throw new IOException( e ); } return result; }
if ( wro != null ) { Envelope env = createEnvelope( (G) rs.getObject( RelevantColumns.envelope.getColumnName() ) ); wro.setBbox( env ); wro.setExternalReference( rs.getString( RelevantColumns.externalRef.getColumnName() ) ); wro.setType( rs.getString( RelevantColumns.type.getColumnName() ) );
/** * @param building * @return the DataObjectInfo which holds values of the given building. */ private DataObjectInfo<RenderablePrototype> createDataObjectInfo( WorldRenderableObject building ) { RenderableQualityModel rqm = building.getQualityLevel( 0 ); if ( rqm == null ) { LOG.info( "Could not extract the quality level of the RenderablePrototype with id:" + building.getId() ); return null; } rqm = createScaledQualityModel( rqm ); Envelope env = new GeometryFactory().createEnvelope( new double[] { 0, 0, 0 }, new double[] { 1, 1, 1 }, null ); building.setBbox( env ); RenderablePrototype rp = new RenderablePrototype( building.getId(), building.getTime(), building.getBbox(), rqm ); return new DataObjectInfo<RenderablePrototype>( building.getId(), Type.PROTOTYPE.getModelTypeName(), building.getName(), building.getExternalReference(), building.getBbox(), rp ); }