private void findMetamodelGetters(Schema schema) { for (Table<?> table: schema.getTables()) { String recordClassName = Type.getInternalName(table.getRecordType()); for (Field<?> field: table.fields()) { String name = field.getName(); String getterName = "get" + name.substring(0, 1).toUpperCase() + name.substring(1).toLowerCase(); MethodSignature methodSig = new MethodSignature( recordClassName, getterName, Type.getMethodDescriptor(Type.getType(field.getType()))); fieldMethods.put(methodSig, field); } } }
public static JdbcTimestampBoundStore create(final JdbcKeyValueService kvs) { final JdbcTimestampBoundStore store = new JdbcTimestampBoundStore(kvs); kvs.run((Function<DSLContext, Void>) ctx -> { String partialSql = ctx.createTable(store.TABLE) .column(DUMMY_COLUMN, INTEGER.nullable(false)) .column(LATEST_TIMESTAMP, BIGINT.nullable(false)) .getSQL(); int endIndex = partialSql.lastIndexOf(')'); String fullSql = partialSql.substring(0, endIndex) + "," + " CONSTRAINT " + kvs.primaryKey(TIMESTAMP_TABLE) + " PRIMARY KEY (" + DUMMY_COLUMN.getName() + ")" + partialSql.substring(endIndex); try { ctx.execute(fullSql); } catch (DataAccessException e) { kvs.handleTableCreationException(e); } ctx.insertInto(store.TABLE, DUMMY_COLUMN, LATEST_TIMESTAMP) .select(ctx.select(DUMMY_COLUMN, LATEST_TIMESTAMP) .from(kvs.values(ctx, new RowN[] {(RowN) DSL.row(0, 10000L)}, "t", DUMMY_COLUMN.getName(), LATEST_TIMESTAMP.getName())) .whereNotExists(ctx.selectOne() .from(store.TABLE) .where(DUMMY_COLUMN.eq(0)))) .execute(); return null; }); return store; }
static final String[] fieldNameStrings(Field<?>[] fields) { if (fields == null) return null; String[] result = new String[fields.length]; for (int i = 0; i < fields.length; i++) result[i] = fields[i].getName(); return result; }
@Override public final Field<?> field(String name) { if (name == null) { return null; } for (Field<?> f : fields) { if (f.getName().equals(name)) { return f; } } return null; }
String fullSql = partialSql.substring(0, endIndex) + "," + " CONSTRAINT pk_" + kvs.METADATA_TABLE.getName() + " PRIMARY KEY (" + TABLE_NAME.getName() + ")" + partialSql.substring(endIndex); try {
protected Function<Object, Object> getValueConverter(Field<Object> field) { String name = field.getName(); Function<Object, Object> converter = this.valueConverterMap.get(name); return converter == null ? Function.identity() : converter; }
static final boolean hasAmbiguousNames(Collection<? extends Field<?>> fields) { if (fields == null) return false; Set<String> names = new HashSet<String>(); for (Field<?> field : fields) if (!names.add(field.getName())) return true; return false; }
@Override public void preDeserialize(Class<? extends T> clazz, JsonElement jsonElement, Gson gson) { // valid JSON object if (jsonElement != null && jsonElement.isJsonObject()) { JsonObject root = jsonElement.getAsJsonObject(); // map data to string so it can be persisted as jsonb if (root.has(CDR.DATA_FIELD.getName())) { root.addProperty(CDR.DATA_FIELD.getName(), new Gson().toJson(root.get(CDR.DATA_FIELD.getName()))); } } } }
@Override public void preDeserialize(Class<? extends T> clazz, JsonElement jsonElement, Gson gson) { // valid JSON object if (jsonElement != null && jsonElement.isJsonObject()) { JsonObject root = jsonElement.getAsJsonObject(); // map data to string so it can be persisted as jsonb if (root.has(Bill.DATA_FIELD.getName())) { root.addProperty(Bill.DATA_FIELD.getName(), new Gson().toJson(root.get(Bill.DATA_FIELD.getName()))); } } } }
@SuppressWarnings("unchecked") private Field<Date> getRemoveField(Table<?> table) { for (String fieldName : TIMESTAMP_FIELD_NAME_PRECEDENCE) { for (Field<?> field : table.fields()) { if (fieldName.equals(field.getName())) { return (Field<Date>) field; } } } return null; }
@SuppressWarnings("unchecked") private Field<Long> getIdField(Table<?> table) { for (Field<?> field : table.fields()) { if (field.getName().equals("id")) { return (Field<Long>) field; } } return null; }
@Override public final void fromMap(Map<String, ?> map, Field<?>... f) { for (int i = 0; i < f.length; i++) { String name = f[i].getName(); // Set only those values contained in the map if (map.containsKey(name)) { Utils.setValue(this, f[i], map.get(name)); } } }
@Override protected String getCreateIndexQuery(SubDocTable table, Field<?> field, Configuration conf) { StringBuilder sb = new StringBuilder(); sb.append("CREATE INDEX ON \"") .append(table.getSchema().getName()) .append("\".\"") .append(table.getName()) .append("\" (\"") .append(field.getName()) .append("\")"); return sb.toString(); }
private HashMap<Object, ArrayList<Object>> getPkEmptyValues(ReflectedTable t1, ArrayList<Record> records) { HashMap<Object, ArrayList<Object>> pkValues = new HashMap<>(); for (Record record : records) { Object key = record.get(t1.getPk().getName()); pkValues.put(key, new ArrayList<>()); } return pkValues; }
@Override public String getColumnName(int column) throws SQLException { rs.checkNotClosed(); return rs.result.field(column - 1).getName(); }
/** * Render a list of names of the <code>NamedQueryParts</code> contained in * this list. */ static final void fieldNames(RenderContext context, Collection<? extends Field<?>> list) { String separator = ""; for (Field<?> field : list) { context.sql(separator).literal(field.getName()); separator = ", "; } }
RenamedTable(Schema schema, Table<R> delegate, String rename) { super(rename, schema); for (Field<?> field : delegate.fields()) createField(field.getName(), field.getDataType(), this); } }
private <R extends Record> TargetColumnsMapperKey getMapperKey(RecordType<R> recordType, Class<?> type) { String[] columns = new String[recordType.size()]; int i = 0; for(Field<?> field : recordType.fields()) { columns[i++] = field.getName(); } return new TargetColumnsMapperKey(type, columns); }
@Override final Fields<Record> fields0() { List<Field<?>> fields = new ArrayList<Field<?>>(); for (Table<?> table : tables) for (Field<?> field : table.fields()) fields.add(DSL.field(DSL.name(field.getName()), field.getDataType())); return new Fields<Record>(fields); }
RenamedTable(Table<R> delegate, String rename) { super(rename, delegate.getSchema()); for (Field<?> field : delegate.fields()) { createField(field.getName(), field.getDataType(), this); } } }