private TypeManager getTypeManager() { return manager.getProvider().getTypeManager(); }
private TypeManager getTypeManager() { return manager.getProvider().getTypeManager(); }
@VisibleForTesting static DDLIndex[] parseIndexes( final DatabaseProvider provider, final NameConverters nameConverters, final Class<? extends RawEntity<?>> clazz ) { final IndexParser indexParser = new IndexParser(provider, nameConverters, provider.getTypeManager()); final Set<DDLIndex> indexes = indexParser.parseIndexes(clazz); return indexes.toArray(new DDLIndex[indexes.size()]); }
@VisibleForTesting static DDLIndex[] parseIndexes( final DatabaseProvider provider, final NameConverters nameConverters, final Class<? extends RawEntity<?>> clazz ) { final IndexParser indexParser = new IndexParser(provider, nameConverters, provider.getTypeManager()); final Set<DDLIndex> indexes = indexParser.parseIndexes(clazz); return indexes.toArray(new DDLIndex[indexes.size()]); }
private TypeManager getTypeManager() { return getManager().getProvider().getTypeManager(); }
private TypeManager getTypeManager() { return getManager().getProvider().getTypeManager(); }
/** * Creates a new instance of <code>EntityManager</code> using the specified {@link DatabaseProvider}. * * @param provider the {@link DatabaseProvider} to use in all database operations. * @param configuration the configuration for this entity manager */ public EntityManager(DatabaseProvider provider, EntityManagerConfiguration configuration) { this.provider = Objects.requireNonNull(provider, "provider can't be null"); this.configuration = Objects.requireNonNull(configuration); valGenCache = CacheBuilder.newBuilder().build(new CacheLoader<Class<? extends ValueGenerator<?>>, ValueGenerator<?>>() { @Override public ValueGenerator<?> load(Class<? extends ValueGenerator<?>> generatorClass) throws Exception { return generatorClass.newInstance(); } }); // TODO: move caching out of there! nameConverters = new CachingNameConverters(configuration.getNameConverters()); schemaConfiguration = Objects.requireNonNull(configuration.getSchemaConfiguration(), "schema configuration can't be null"); typeMapper = new DefaultPolymorphicTypeMapper(new HashMap<Class<? extends RawEntity<?>>, String>()); entityInfoResolver = Objects.requireNonNull(configuration.getEntityInfoResolverFactory().create(nameConverters, provider.getTypeManager()), "entityInfoResolver"); }
/** * Creates a new instance of <code>EntityManager</code> using the specified {@link DatabaseProvider}. * * @param provider the {@link DatabaseProvider} to use in all database operations. * @param configuration the configuration for this entity manager */ public EntityManager(DatabaseProvider provider, EntityManagerConfiguration configuration) { this.provider = Objects.requireNonNull(provider, "provider can't be null"); this.configuration = Objects.requireNonNull(configuration); valGenCache = CacheBuilder.newBuilder().build(new CacheLoader<Class<? extends ValueGenerator<?>>, ValueGenerator<?>>() { @Override public ValueGenerator<?> load(Class<? extends ValueGenerator<?>> generatorClass) throws Exception { return generatorClass.newInstance(); } }); // TODO: move caching out of there! nameConverters = new CachingNameConverters(configuration.getNameConverters()); schemaConfiguration = Objects.requireNonNull(configuration.getSchemaConfiguration(), "schema configuration can't be null"); typeMapper = new DefaultPolymorphicTypeMapper(new HashMap<Class<? extends RawEntity<?>>, String>()); entityInfoResolver = Objects.requireNonNull(configuration.getEntityInfoResolverFactory().create(nameConverters, provider.getTypeManager()), "entityInfoResolver"); }
private void putStatementParameters(PreparedStatement stmt, Object... parameters) throws SQLException { for (int i = 0; i < parameters.length; ++i) { Object parameter = parameters[i]; Class entityTypeOrClass = (parameter instanceof RawEntity) ? ((RawEntity) parameter).getEntityType() : parameter.getClass(); @SuppressWarnings("unchecked") TypeInfo<Object> typeInfo = provider.getTypeManager().getType(entityTypeOrClass); typeInfo.getLogicalType().putToDatabase(this, stmt, i + 1, parameter, typeInfo.getJdbcWriteType()); } }
private void putStatementParameters(PreparedStatement stmt, Object... parameters) throws SQLException { for (int i = 0; i < parameters.length; ++i) { Object parameter = parameters[i]; Class entityTypeOrClass = (parameter instanceof RawEntity) ? ((RawEntity) parameter).getEntityType() : parameter.getClass(); @SuppressWarnings("unchecked") TypeInfo<Object> typeInfo = provider.getTypeManager().getType(entityTypeOrClass); typeInfo.getLogicalType().putToDatabase(this, stmt, i + 1, parameter, typeInfo.getJdbcWriteType()); } }
private static Iterable<Iterable<SQLAction>> generateImpl(final DatabaseProvider provider, final SchemaConfiguration schemaConfiguration, final NameConverters nameConverters, final boolean executeDestructiveUpdates, Class<? extends RawEntity<?>>... classes) throws SQLException { final DDLTable[] parsedTables = parseDDL(provider, nameConverters, classes); final DDLTable[] readTables = SchemaReader.readSchema(provider, nameConverters, schemaConfiguration); final DDLAction[] actions = SchemaReader.sortTopologically(SchemaReader.diffSchema(provider.getTypeManager(), parsedTables, readTables, provider.isCaseSensitive())); return Iterables.transform(Iterables.filter(ImmutableList.copyOf(actions), new Predicate<DDLAction>() { @Override public boolean apply(final DDLAction input) { switch (input.getActionType()) { case DROP: case ALTER_DROP_COLUMN: return executeDestructiveUpdates; default: return true; } } }), new Function<DDLAction, Iterable<SQLAction>>() { public Iterable<SQLAction> apply(DDLAction from) { return provider.renderAction(nameConverters, from); } }); }
private static Iterable<Iterable<SQLAction>> generateImpl(final DatabaseProvider provider, final SchemaConfiguration schemaConfiguration, final NameConverters nameConverters, final boolean executeDestructiveUpdates, Class<? extends RawEntity<?>>... classes) throws SQLException { final DDLTable[] parsedTables = parseDDL(provider, nameConverters, classes); final DDLTable[] readTables = SchemaReader.readSchema(provider, nameConverters, schemaConfiguration); final DDLAction[] actions = SchemaReader.sortTopologically(SchemaReader.diffSchema(provider.getTypeManager(), parsedTables, readTables, provider.isCaseSensitive())); return Iterables.transform(Iterables.filter(ImmutableList.copyOf(actions), new Predicate<DDLAction>() { @Override public boolean apply(final DDLAction input) { switch (input.getActionType()) { case DROP: case ALTER_DROP_COLUMN: return executeDestructiveUpdates; default: return true; } } }), new Function<DDLAction, Iterable<SQLAction>>() { public Iterable<SQLAction> apply(DDLAction from) { return provider.renderAction(nameConverters, from); } }); }
final TypeManager typeManager = provider.getTypeManager(); Connection conn = null; PreparedStatement stmt = null;
protected DDLIndexField field(String name, Class type, Class<? extends RawEntity<?>> entity) { return DDLIndexField.builder() .fieldName(getFieldName(entity, name)) .type(entityManager.getProvider().getTypeManager().getType(type)) .build(); }
@SuppressWarnings("unchecked") protected void setParameters(EntityManager manager, PreparedStatement stmt) throws SQLException { if (whereParams != null) { final TypeManager typeManager = manager.getProvider().getTypeManager(); for (int i = 0; i < whereParams.length; i++) { if (whereParams[i] == null) { manager.getProvider().putNull(stmt, i + 1); } else { Class javaType = whereParams[i].getClass(); if (whereParams[i] instanceof RawEntity) { javaType = ((RawEntity) whereParams[i]).getEntityType(); } TypeInfo<Object> typeInfo = typeManager.getType(javaType); typeInfo.getLogicalType().putToDatabase(manager, stmt, i + 1, whereParams[i], typeInfo.getJdbcWriteType()); } } } }
@SuppressWarnings("unchecked") protected void setParameters(EntityManager manager, PreparedStatement stmt) throws SQLException { if (whereParams != null) { final TypeManager typeManager = manager.getProvider().getTypeManager(); for (int i = 0; i < whereParams.length; i++) { if (whereParams[i] == null) { manager.getProvider().putNull(stmt, i + 1); } else { Class javaType = whereParams[i].getClass(); if (whereParams[i] instanceof RawEntity) { javaType = ((RawEntity) whereParams[i]).getEntityType(); } TypeInfo<Object> typeInfo = typeManager.getType(javaType); typeInfo.getLogicalType().putToDatabase(manager, stmt, i + 1, whereParams[i], typeInfo.getJdbcWriteType()); } } } }
public Iterable<? extends Field> getFields(DatabaseMetaData databaseMetaData, String tableName) { final TypeManager manager = databaseProvider.getTypeManager(); final List<String> sequenceNames = getSequenceNames(databaseMetaData); final Set<String> uniqueFields = getUniqueFields(databaseMetaData, tableName);
public Iterable<? extends Field> getFields(DatabaseMetaData databaseMetaData, String tableName) { final TypeManager manager = databaseProvider.getTypeManager(); final List<String> sequenceNames = getSequenceNames(databaseMetaData); final Set<String> uniqueFields = getUniqueFields(databaseMetaData, tableName);
field.setName(attributeName); final TypeManager typeManager = provider.getTypeManager(); final TypeInfo<?> sqlType = getSQLTypeFromMethod(typeManager, type, method, annotations); field.setType(sqlType);
field.setName(attributeName); final TypeManager typeManager = provider.getTypeManager(); final TypeInfo<?> sqlType = getSQLTypeFromMethod(typeManager, type, method, annotations); field.setType(sqlType);