Search in sources :

Example 1 with PostgreSQLArrayFieldDefinition

use of com.revolsys.gis.postgresql.type.PostgreSQLArrayFieldDefinition in project com.revolsys.open by revolsys.

the class PostgreSQLRecordStore method addField.

@Override
protected JdbcFieldDefinition addField(final JdbcRecordDefinition recordDefinition, final String dbColumnName, final String name, final String dbDataType, final int sqlType, final int length, final int scale, final boolean required, final String description) {
    final JdbcFieldDefinition field;
    if (dbDataType.charAt(0) == '_') {
        final String elementDbDataType = dbDataType.substring(1);
        final JdbcFieldAdder fieldAdder = getFieldAdder(elementDbDataType);
        final JdbcFieldDefinition elementField = fieldAdder.newField(this, recordDefinition, dbColumnName, name, elementDbDataType, sqlType, length, scale, required, description);
        final DataType elementDataType = elementField.getDataType();
        final CollectionDataType listDataType = new CollectionDataType("List" + elementDataType.getName(), List.class, elementDataType);
        field = new PostgreSQLArrayFieldDefinition(dbColumnName, name, listDataType, sqlType, length, scale, required, description, elementField, getProperties());
        recordDefinition.addField(field);
    } else {
        field = super.addField(recordDefinition, dbColumnName, name, dbDataType, sqlType, length, scale, required, description);
    }
    if (!dbColumnName.matches("[a-z_]+")) {
        field.setQuoteName(true);
    }
    return field;
}
Also used : JdbcFieldDefinition(com.revolsys.jdbc.field.JdbcFieldDefinition) CollectionDataType(com.revolsys.datatype.CollectionDataType) PostgreSQLArrayFieldDefinition(com.revolsys.gis.postgresql.type.PostgreSQLArrayFieldDefinition) CollectionDataType(com.revolsys.datatype.CollectionDataType) DataType(com.revolsys.datatype.DataType) JdbcFieldAdder(com.revolsys.jdbc.field.JdbcFieldAdder)

Aggregations

CollectionDataType (com.revolsys.datatype.CollectionDataType)1 DataType (com.revolsys.datatype.DataType)1 PostgreSQLArrayFieldDefinition (com.revolsys.gis.postgresql.type.PostgreSQLArrayFieldDefinition)1 JdbcFieldAdder (com.revolsys.jdbc.field.JdbcFieldAdder)1 JdbcFieldDefinition (com.revolsys.jdbc.field.JdbcFieldDefinition)1