use of io.syndesis.common.util.IndexedProperty in project syndesis by syndesisio.
the class DataStoreConfiguration method jsonDB.
@Bean
@Autowired
@SuppressWarnings("PMD.EmptyCatchBlock")
public SqlJsonDB jsonDB(DBI dbi, Optional<List<Index>> beanIndexes) {
ArrayList<Index> indexes = new ArrayList<>();
if (beanIndexes.isPresent()) {
indexes.addAll(beanIndexes.get());
}
for (Kind kind : Kind.values()) {
addIndex(indexes, kind, kind.getModelClass().getAnnotation(UniqueProperty.class));
UniqueProperty.Multiple ump = kind.getModelClass().getAnnotation(UniqueProperty.Multiple.class);
if (ump != null) {
for (UniqueProperty p : ump.value()) {
addIndex(indexes, kind, p);
}
}
addIndex(indexes, kind, kind.getModelClass().getAnnotation(IndexedProperty.class));
IndexedProperty.Multiple imp = kind.getModelClass().getAnnotation(IndexedProperty.Multiple.class);
if (imp != null) {
for (IndexedProperty p : imp.value()) {
addIndex(indexes, kind, p);
}
}
}
SqlJsonDB jsondb = new SqlJsonDB(dbi, null, indexes);
try {
jsondb.createTables();
} catch (@SuppressWarnings("PMD.AvoidCatchingGenericException") Exception ignore) {
LOG.debug("Could not create tables", ignore);
}
return jsondb;
}
Aggregations