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); } } }
@Override public final Class<?>[] types() { int size = fields.length; Class<?>[] result = new Class[size]; for (int i = 0; i < size; i++) { result[i] = field(i).getType(); } return result; }
@Override public final Class<?>[] types() { int size = fields.length; Class<?>[] result = new Class[size]; for (int i = 0; i < size; i++) { result[i] = field(i).getType(); } return result; }
@Override public final Object[] intoArray(int fieldIndex) { Class<?> type = fields.fields[fieldIndex].getType(); List<?> list = getValues(fieldIndex); return list.toArray((Object[]) Array.newInstance(type, list.size())); }
@SuppressWarnings("unchecked") @Override public final <T> T[] intoArray(Field<T> field) { return getValues(field).toArray((T[]) Array.newInstance(field.getType(), 0)); }
@Override public final Object[] intoArray(int fieldIndex) { Class<?> type = fields.fields[fieldIndex].getType(); List<?> list = getValues(fieldIndex); return list.toArray((Object[]) Array.newInstance(type, list.size())); }
@Override public final Object[] intoArray(Name fieldName) { Class<?> type = field(fieldName).getType(); List<?> list = getValues(fieldName); return list.toArray((Object[]) Array.newInstance(type, list.size())); }
@Override public boolean isSigned(int column) throws SQLException { rs.checkNotClosed(); Field<?> field = rs.result.field(column - 1); Class<?> type = field.getType(); return Number.class.isAssignableFrom(type) && !UNumber.class.isAssignableFrom(type); }
@Override public String getColumnClassName(int column) throws SQLException { rs.checkNotClosed(); return rs.result.field(column - 1).getType().getName(); } }
/** * Get the MySQL-specific <code>DES_ENCRYPT()</code> function. */ @Support({ MYSQL }) public static <T> Field<T> desEncrypt(Field<T> string, Field<T> keyString) { return function("des_encrypt", string.getType(), string, keyString); }
/** * Get the MySQL-specific <code>SHA1()</code> function. */ @Support({ MYSQL }) public static <T> Field<T> sha1(Field<T> string) { return function("sha1", string.getType(), string); }
@Override public final Result<R> intern(int... fieldIndexes) { for (int fieldIndex : fieldIndexes) { if (fields.fields[fieldIndex].getType() == String.class) { for (Record record : this) { ((AbstractRecord) record).getValue0(fieldIndex).intern(); } } } return this; }
/** * Get the MySQL-specific <code>DECODE()</code> function. * <p> * Don't mix this up with the various {@link DSL#decode()} methods! */ @Support({ MYSQL }) public static <T> Field<T> decode(Field<T> cryptString, Field<T> keyString) { return function("decode", cryptString.getType(), cryptString, keyString); }
/** * Get the MySQL-specific <code>AES_ENCRYPT()</code> function. */ @Support({ MYSQL }) public static <T> Field<T> aesEncrypt(Field<T> string, Field<T> keyString) { return function("aes_encrypt", string.getType(), string, keyString); }
/** * Get the MySQL-specific <code>DES_DECRYPT()</code> function. */ @Support({ MYSQL }) public static <T> Field<T> desDecrypt(Field<T> cryptString, Field<T> keyString) { return function("des_decrypt", cryptString.getType(), cryptString, keyString); }
/** * Get the MySQL-specific <code>DES_DECRYPT()</code> function. */ @Support({ MYSQL }) public static <T> Field<T> desDecrypt(Field<T> cryptString) { return function("des_decrypt", cryptString.getType(), cryptString); }
/** * Get the MySQL-specific <code>DES_ENCRYPT()</code> function. */ @Support({ MYSQL }) public static <T> Field<T> desEncrypt(Field<T> string) { return function("des_encrypt", string.getType(), string); }
/** * Get the MySQL-specific <code>SHA2()</code> function. */ @Support({ MYSQL }) public static <T> Field<T> sha2(Field<T> string, Field<Integer> hashLength) { return function("sha2", string.getType(), string, hashLength); }
/** * Get the MySQL-specific <code>PASSWORD()</code> function. */ @Support({ MYSQL }) public static <T> Field<T> password(Field<T> string) { return function("password", string.getType(), string); }
final void intern0(int fieldIndex) { safeIndex(fieldIndex); if (field(fieldIndex).getType() == String.class) { values[fieldIndex] = intern((String) values[fieldIndex]); originals[fieldIndex] = intern((String) originals[fieldIndex]); } }