Search in sources :

Example 26 with org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Index

use of org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Index in project jaxdb by jaxdb.

the class Compiler method createConstraints.

private CreateStatement createConstraints(final Map<String, ColumnRef> columnNameToColumn, final $Table table) throws GeneratorExecutionException {
    final StringBuilder constraintsBuilder = new StringBuilder();
    if (table.getConstraints() != null) {
        final $Constraints constraints = table.getConstraints();
        // UNIQUE constraint
        final List<$Columns> uniques = constraints.getUnique();
        if (uniques != null) {
            final StringBuilder uniqueString = new StringBuilder();
            final StringBuilder uniqueBuilder = new StringBuilder();
            for (final $Columns unique : uniques) {
                final List<$Named> columns = unique.getColumn();
                final int[] columnIndexes = new int[columns.size()];
                for (int i = 0, len = columns.size(); i < len; ++i) {
                    if (i > 0)
                        uniqueBuilder.append(", ");
                    final String columnName = columns.get(i).getName$().text();
                    uniqueBuilder.append(q(columnName));
                    columnIndexes[i] = columnNameToColumn.get(columnName).index;
                }
                uniqueString.append(",\n  CONSTRAINT ").append(q(getConstraintName("uq", table, null, columnIndexes))).append(" UNIQUE (").append(uniqueBuilder).append(')');
                uniqueBuilder.setLength(0);
            }
            constraintsBuilder.append(uniqueString);
        }
        // CHECK constraint
        final List<$CheckReference> checks = constraints.getCheck();
        if (checks != null) {
            final StringBuilder checkBuilder = new StringBuilder();
            for (final $CheckReference check : checks) {
                final String checkRule = recurseCheckRule(check);
                final String checkClause = checkRule.startsWith("(") ? checkRule : "(" + checkRule + ")";
                checkBuilder.append(",\n  CONSTRAINT ").append(q(getConstraintName("ck", new StringBuilder(hash(table.getName$().text() + checkClause))))).append(" CHECK ").append(checkClause);
            }
            constraintsBuilder.append(checkBuilder);
        }
        // PRIMARY KEY constraint
        final String primaryKeyConstraint = blockPrimaryKey(table, constraints, columnNameToColumn);
        if (primaryKeyConstraint != null)
            constraintsBuilder.append(primaryKeyConstraint);
        // FOREIGN KEY constraints
        final List<$ForeignKeyComposite> foreignKeyComposites = constraints.getForeignKey();
        if (foreignKeyComposites != null) {
            for (final $ForeignKeyComposite foreignKeyComposite : foreignKeyComposites) {
                final List<$ForeignKeyComposite.Column> columns = foreignKeyComposite.getColumn();
                final int[] columnIndexes = new int[columns.size()];
                final String[] foreignKeyColumns = new String[columns.size()];
                final String[] foreignKeyReferences = new String[columns.size()];
                for (int i = 0, len = columns.size(); i < len; ++i) {
                    final $ForeignKeyComposite.Column column = columns.get(i);
                    final String columnName = column.getName$().text();
                    foreignKeyColumns[i] = q(columnName);
                    foreignKeyReferences[i] = q(column.getReferences$().text());
                    columnIndexes[i] = columnNameToColumn.get(columnName).index;
                }
                constraintsBuilder.append(",\n  ").append(foreignKey(table, foreignKeyComposite.getReferences$(), columnIndexes)).append(" (").append(ArrayUtil.toString(foreignKeyColumns, ", "));
                constraintsBuilder.append(") REFERENCES ").append(q(foreignKeyComposite.getReferences$().text()));
                constraintsBuilder.append(" (").append(ArrayUtil.toString(foreignKeyReferences, ", ")).append(')');
                appendOnDeleteOnUpdate(constraintsBuilder, foreignKeyComposite);
            }
        }
    }
    if (table.getColumn() != null) {
        final List<$Column> columns = table.getColumn();
        for (int c = 0, len = columns.size(); c < len; ++c) {
            final $Column column = columns.get(c);
            final $ForeignKeyUnary foreignKey = column.getForeignKey();
            if (foreignKey != null) {
                constraintsBuilder.append(",\n  ").append(foreignKey(table, foreignKey.getReferences$(), c)).append(" (").append(q(column.getName$().text()));
                constraintsBuilder.append(") REFERENCES ").append(q(foreignKey.getReferences$().text()));
                constraintsBuilder.append(" (").append(q(foreignKey.getColumn$().text())).append(')');
                appendOnDeleteOnUpdate(constraintsBuilder, foreignKey);
            }
        }
        // Parse the min & max constraints of numeric types
        for (int c = 0, len = columns.size(); c < len; ++c) {
            final $Column column = columns.get(c);
            String minCheck = null;
            String maxCheck = null;
            if (column instanceof $Integer) {
                if (column instanceof $Tinyint) {
                    final $Tinyint type = ($Tinyint) column;
                    minCheck = type.getMin$() != null ? String.valueOf(type.getMin$().text()) : null;
                    maxCheck = type.getMax$() != null ? String.valueOf(type.getMax$().text()) : null;
                } else if (column instanceof $Smallint) {
                    final $Smallint type = ($Smallint) column;
                    minCheck = type.getMin$() != null ? String.valueOf(type.getMin$().text()) : null;
                    maxCheck = type.getMax$() != null ? String.valueOf(type.getMax$().text()) : null;
                } else if (column instanceof $Int) {
                    final $Int type = ($Int) column;
                    minCheck = type.getMin$() != null ? String.valueOf(type.getMin$().text()) : null;
                    maxCheck = type.getMax$() != null ? String.valueOf(type.getMax$().text()) : null;
                } else if (column instanceof $Bigint) {
                    final $Bigint type = ($Bigint) column;
                    minCheck = type.getMin$() != null ? String.valueOf(type.getMin$().text()) : null;
                    maxCheck = type.getMax$() != null ? String.valueOf(type.getMax$().text()) : null;
                } else {
                    throw new UnsupportedOperationException("Unsupported type: " + column.getClass().getName());
                }
            } else if (column instanceof $Float) {
                final $Float type = ($Float) column;
                minCheck = type.getMin$() != null ? String.valueOf(type.getMin$().text()) : null;
                maxCheck = type.getMax$() != null ? String.valueOf(type.getMax$().text()) : null;
            } else if (column instanceof $Double) {
                final $Double type = ($Double) column;
                minCheck = type.getMin$() != null ? String.valueOf(type.getMin$().text()) : null;
                maxCheck = type.getMax$() != null ? String.valueOf(type.getMax$().text()) : null;
            } else if (column instanceof $Decimal) {
                final $Decimal type = ($Decimal) column;
                minCheck = type.getMin$() != null ? String.valueOf(type.getMin$().text()) : null;
                maxCheck = type.getMax$() != null ? String.valueOf(type.getMax$().text()) : null;
            }
            final String minCheckExp = minCheck == null ? null : q(column.getName$().text()) + " >= " + minCheck;
            final String maxCheckExp = maxCheck == null ? null : q(column.getName$().text()) + " <= " + maxCheck;
            if (minCheck != null) {
                if (maxCheck != null)
                    constraintsBuilder.append(",\n  ").append(check(table, c, Operator.GTE, minCheck, Operator.LTE, maxCheck)).append(" (").append(minCheckExp).append(" AND ").append(maxCheckExp).append(')');
                else
                    constraintsBuilder.append(",\n  ").append(check(table, c, Operator.GTE, minCheck, null, null)).append(" (").append(minCheckExp).append(')');
            } else if (maxCheck != null) {
                constraintsBuilder.append(",\n  ").append(check(table, c, Operator.LTE, maxCheck, null, null)).append(" (").append(maxCheckExp).append(')');
            }
        }
        // parse the <check/> element per type
        for (int c = 0, len = columns.size(); c < len; ++c) {
            final $Column column = columns.get(c);
            Operator operator = null;
            String condition = null;
            if (column instanceof $Char) {
                final $Char type = ($Char) column;
                if (type.getCheck() != null) {
                    operator = Operator.valueOf(type.getCheck().getOperator$().text());
                    condition = "'" + type.getCheck().getValue$().text() + "'";
                }
            } else if (column instanceof $Tinyint) {
                final $Tinyint type = ($Tinyint) column;
                if (type.getCheck() != null) {
                    operator = Operator.valueOf(type.getCheck().getOperator$().text());
                    condition = String.valueOf(type.getCheck().getValue$().text());
                }
            } else if (column instanceof $Smallint) {
                final $Smallint type = ($Smallint) column;
                if (type.getCheck() != null) {
                    operator = Operator.valueOf(type.getCheck().getOperator$().text());
                    condition = String.valueOf(type.getCheck().getValue$().text());
                }
            } else if (column instanceof $Int) {
                final $Int type = ($Int) column;
                if (type.getCheck() != null) {
                    operator = Operator.valueOf(type.getCheck().getOperator$().text());
                    condition = String.valueOf(type.getCheck().getValue$().text());
                }
            } else if (column instanceof $Bigint) {
                final $Bigint type = ($Bigint) column;
                if (type.getCheck() != null) {
                    operator = Operator.valueOf(type.getCheck().getOperator$().text());
                    condition = String.valueOf(type.getCheck().getValue$().text());
                }
            } else if (column instanceof $Float) {
                final $Float type = ($Float) column;
                if (type.getCheck() != null) {
                    operator = Operator.valueOf(type.getCheck().getOperator$().text());
                    condition = String.valueOf(type.getCheck().getValue$().text());
                }
            } else if (column instanceof $Double) {
                final $Double type = ($Double) column;
                if (type.getCheck() != null) {
                    operator = Operator.valueOf(type.getCheck().getOperator$().text());
                    condition = String.valueOf(type.getCheck().getValue$().text());
                }
            } else if (column instanceof $Decimal) {
                final $Decimal type = ($Decimal) column;
                if (type.getCheck() != null) {
                    operator = Operator.valueOf(type.getCheck().getOperator$().text());
                    condition = String.valueOf(type.getCheck().getValue$().text());
                }
            }
            if (operator != null) {
                if (condition != null)
                    constraintsBuilder.append(",\n  ").append(check(table, c, operator, condition, null, null)).append(" (").append(q(column.getName$().text())).append(' ').append(operator.symbol).append(' ').append(condition).append(')');
                else
                    throw new UnsupportedOperationException("Unsupported 'null' condition encountered on column '" + column.getName$().text());
            } else if (condition != null) {
                throw new UnsupportedOperationException("Unsupported 'null' operator encountered on column '" + column.getName$().text());
            }
        }
    }
    return constraintsBuilder.length() == 0 ? null : new CreateStatement(constraintsBuilder.toString());
}
Also used : org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Char(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Char) org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Tinyint(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Tinyint) org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Decimal(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Decimal) org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$ForeignKeyUnary(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$ForeignKeyUnary) org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$ForeignKeyComposite(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$ForeignKeyComposite) org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Bigint(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Bigint) org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$CheckReference(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$CheckReference) org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Constraints(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Constraints) org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Named(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Named) org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Column(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Column) org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Column(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Column) org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Smallint(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Smallint) org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Integer(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Integer) org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Float(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Float) org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Columns(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Columns) org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Double(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Double) org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Tinyint(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Tinyint) org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Bigint(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Bigint) org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Smallint(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Smallint) org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Int(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Int)

Example 27 with org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Index

use of org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Index in project jaxdb by jaxdb.

the class Compiler method indexes.

List<CreateStatement> indexes(final $Table table, final Map<String, ColumnRef> columnNameToColumn) {
    final List<CreateStatement> statements = new ArrayList<>();
    if (table.getIndexes() != null) {
        for (final $Table.Indexes.Index index : table.getIndexes().getIndex()) {
            final List<$Named> columns = index.getColumn();
            final int[] columnIndexes = new int[columns.size()];
            for (int c = 0, len = columns.size(); c < len; ++c) {
                final $Named column = columns.get(c);
                columnIndexes[c] = columnNameToColumn.get(column.getName$().text()).index;
            }
            final CreateStatement createIndex = createIndex(index.getUnique$() != null && index.getUnique$().text(), getIndexName(table, index, columnIndexes), index.getType$(), table.getName$().text(), index.getColumn().toArray(new $Named[index.getColumn().size()]));
            if (createIndex != null)
                statements.add(createIndex);
        }
    }
    if (table.getColumn() != null) {
        final List<$Column> columns = table.getColumn();
        for (int c = 0, len = columns.size(); c < len; ++c) {
            final $Column column = columns.get(c);
            if (column.getIndex() != null) {
                final CreateStatement createIndex = createIndex(column.getIndex().getUnique$() != null && column.getIndex().getUnique$().text(), getIndexName(table, column.getIndex(), c), column.getIndex().getType$(), table.getName$().text(), column);
                if (createIndex != null)
                    statements.add(createIndex);
            }
        }
    }
    return statements;
}
Also used : org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Named(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Named) ArrayList(java.util.ArrayList) org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Tinyint(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Tinyint) org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Bigint(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Bigint) org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Smallint(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Smallint) org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Column(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Column)

Example 28 with org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Index

use of org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Index in project jaxdb by jaxdb.

the class Generator method getColumnMeta.

private ColumnMeta getColumnMeta(final Table table, final $Column column) throws GeneratorExecutionException {
    final String columnName = column.getName$().text();
    boolean isKeyForUpdate = false;
    // FIXME: Make efficient
    if (table.getJsqlKeyForUpdate() != null)
        for (final xLygluGCXAA.$Named col : table.getJsqlKeyForUpdate().getColumn()) if (isKeyForUpdate = columnName.equals(col.getName$().text()))
            break;
    final Class<?> cls = column.getClass().getSuperclass();
    GenerateOn<?> generateOnInsert = null;
    GenerateOn<?> generateOnUpdate = null;
    final boolean isPrimary = ddlx.isPrimary(table, column);
    final Object[] commonParams = { THIS, MUTABLE, "\"" + column.getName$().text() + "\"", ddlx.isUnique(table, column), isPrimary, isNull(column) };
    if (column instanceof $Char) {
        final $Char col = ($Char) column;
        if (col.getSqlxGenerateOnInsert$() != null) {
            if ($Char.GenerateOnInsert$.UUID.text().equals(col.getSqlxGenerateOnInsert$().text()))
                generateOnInsert = GenerateOn.UUID;
            else
                throw new GeneratorExecutionException("Unknown generateOnInsert specification: " + col.getSqlxGenerateOnInsert$().text());
        }
        return new ColumnMeta(table, column, isPrimary, data.CHAR.class, commonParams, col.getDefault$() == null ? null : col.getDefault$().text(), generateOnInsert, generateOnUpdate, isKeyForUpdate, col.getLength$() == null ? null : col.getLength$().text(), isVarying(col.getVarying$()));
    }
    if (column instanceof $Clob) {
        final $Clob col = ($Clob) column;
        return new ColumnMeta(table, column, isPrimary, data.CLOB.class, commonParams, null, generateOnInsert, generateOnUpdate, isKeyForUpdate, col.getLength$() == null ? null : col.getLength$().text());
    }
    if (column instanceof $Binary) {
        final $Binary col = ($Binary) column;
        return new ColumnMeta(table, column, isPrimary, data.BINARY.class, commonParams, col.getDefault$() == null ? null : col.getDefault$().text(), generateOnInsert, generateOnUpdate, isKeyForUpdate, col.getLength$() == null ? null : col.getLength$().text(), isVarying(col.getVarying$()));
    }
    if (column instanceof $Blob) {
        final $Blob col = ($Blob) column;
        return new ColumnMeta(table, column, isPrimary, data.BLOB.class, commonParams, null, generateOnInsert, generateOnUpdate, isKeyForUpdate, col.getLength$() == null ? null : col.getLength$().text());
    }
    if (column instanceof $Integer) {
        final $Integer integerColumn = ($Integer) column;
        if (integerColumn.getGenerateOnInsert$() != null) {
            if ($Integer.GenerateOnInsert$.AUTO_5FINCREMENT.text().equals(integerColumn.getGenerateOnInsert$().text())) {
                generateOnInsert = GenerateOn.AUTO_GENERATED;
            } else {
                throw new GeneratorExecutionException("Unknown generateOnInsert specification: " + integerColumn.getGenerateOnInsert$().text());
            }
        }
        if (column instanceof $Tinyint) {
            final $Tinyint integer = ($Tinyint) column;
            if (integer.getSqlxGenerateOnUpdate$() != null) {
                if ($Tinyint.GenerateOnUpdate$.INCREMENT.text().equals(integer.getSqlxGenerateOnUpdate$().text())) {
                    if (isPrimary)
                        throw new GeneratorExecutionException("Primary column \"" + table.getName$().text() + "." + column.getName$().text() + "\" cannot specify generateOnUpdate");
                    generateOnUpdate = GenerateOn.INCREMENT;
                } else {
                    throw new GeneratorExecutionException("Unknown generateOnUpdate specification: " + integer.getSqlxGenerateOnUpdate$().text());
                }
            }
            return new ColumnMeta(table, column, isPrimary, data.TINYINT.class, commonParams, integer.getDefault$() == null ? null : integer.getDefault$().text(), generateOnInsert, generateOnUpdate, isKeyForUpdate, integer.getPrecision$() == null ? null : integer.getPrecision$().text().intValue(), integer.getMin$() == null ? null : integer.getMin$().text(), integer.getMax$() == null ? null : integer.getMax$().text());
        }
        if (column instanceof $Smallint) {
            final $Smallint integer = ($Smallint) column;
            if (integer.getSqlxGenerateOnUpdate$() != null) {
                if ($Smallint.GenerateOnUpdate$.INCREMENT.text().equals(integer.getSqlxGenerateOnUpdate$().text())) {
                    if (isPrimary)
                        throw new GeneratorExecutionException("Primary column \"" + table.getName$().text() + "." + column.getName$().text() + "\" cannot specify generateOnUpdate");
                    generateOnUpdate = GenerateOn.INCREMENT;
                } else {
                    throw new GeneratorExecutionException("Unknown generateOnUpdate specification: " + integer.getSqlxGenerateOnUpdate$().text());
                }
            }
            return new ColumnMeta(table, column, isPrimary, data.SMALLINT.class, commonParams, integer.getDefault$() == null ? null : integer.getDefault$().text(), generateOnInsert, generateOnUpdate, isKeyForUpdate, integer.getPrecision$() == null ? null : integer.getPrecision$().text().intValue(), integer.getMin$() == null ? null : integer.getMin$().text(), integer.getMax$() == null ? null : integer.getMax$().text());
        }
        if (column instanceof $Int) {
            final $Int integer = ($Int) column;
            if (integer.getSqlxGenerateOnInsert$() != null) {
                if (generateOnInsert != null)
                    throw new GeneratorExecutionException("ddlx:generateOnInsert and sqlx:generateOnInsert are mutually exclusive");
                if ($Int.GenerateOnInsert$.EPOCH_5FMINUTES.text().equals(integer.getSqlxGenerateOnInsert$().text())) {
                    if (integer.getPrecision$().text() != null && integer.getPrecision$().text() < 8)
                        throw new GeneratorExecutionException("INT(" + integer.getPrecision$().text() + ") requires minimum precision of 8 for EPOCH_MINUTES");
                    generateOnInsert = GenerateOn.EPOCH_MINUTES;
                } else if ($Int.GenerateOnInsert$.EPOCH_5FSECONDS.text().equals(integer.getSqlxGenerateOnInsert$().text())) {
                    if (integer.getPrecision$().text() != null && integer.getPrecision$().text() < 10)
                        throw new GeneratorExecutionException("INT(" + integer.getPrecision$().text() + ") requires minimum precision of 10 for EPOCH_SECONDS");
                    generateOnInsert = GenerateOn.EPOCH_SECONDS;
                } else {
                    throw new GeneratorExecutionException("Unknown generateOnInsert specification: " + integer.getSqlxGenerateOnInsert$().text());
                }
            }
            if (integer.getSqlxGenerateOnUpdate$() != null) {
                if (isPrimary)
                    throw new GeneratorExecutionException("Primary column \"" + table.getName$().text() + "." + column.getName$().text() + "\" cannot specify generateOnUpdate");
                if ($Int.GenerateOnUpdate$.INCREMENT.text().equals(integer.getSqlxGenerateOnUpdate$().text())) {
                    generateOnUpdate = GenerateOn.INCREMENT;
                } else if ($Int.GenerateOnUpdate$.EPOCH_5FMINUTES.text().equals(integer.getSqlxGenerateOnUpdate$().text())) {
                    if (integer.getPrecision$().text() != null && integer.getPrecision$().text() < 8)
                        throw new GeneratorExecutionException("INT(" + integer.getPrecision$().text() + ") requires minimum precision of 8 for EPOCH_MINUTES");
                    generateOnUpdate = GenerateOn.EPOCH_MINUTES;
                } else if ($Int.GenerateOnUpdate$.EPOCH_5FSECONDS.text().equals(integer.getSqlxGenerateOnUpdate$().text())) {
                    if (integer.getPrecision$().text() != null && integer.getPrecision$().text() < 10)
                        throw new GeneratorExecutionException("INT(" + integer.getPrecision$().text() + ") requires minimum precision of 10 for EPOCH_SECONDS");
                    generateOnUpdate = GenerateOn.EPOCH_SECONDS;
                } else {
                    throw new GeneratorExecutionException("Unknown generateOnUpdate specification: " + integer.getSqlxGenerateOnUpdate$().text());
                }
            }
            return new ColumnMeta(table, column, isPrimary, data.INT.class, commonParams, integer.getDefault$() == null ? null : integer.getDefault$().text(), generateOnInsert, generateOnUpdate, isKeyForUpdate, integer.getPrecision$() == null ? null : integer.getPrecision$().text().intValue(), integer.getMin$() == null ? null : integer.getMin$().text(), integer.getMax$() == null ? null : integer.getMax$().text());
        }
        if (column instanceof $Bigint) {
            final $Bigint integer = ($Bigint) column;
            if (integer.getSqlxGenerateOnInsert$() != null) {
                if (generateOnInsert != null)
                    throw new GeneratorExecutionException("ddlx:generateOnInsert and sqlx:generateOnInsert are mutually exclusive");
                if ($Bigint.GenerateOnInsert$.EPOCH_5FMINUTES.text().equals(integer.getSqlxGenerateOnInsert$().text())) {
                    if (integer.getPrecision$().text() != null && integer.getPrecision$().text() < 8)
                        throw new GeneratorExecutionException("BIGINT(" + integer.getPrecision$().text() + ") requires minimum precision of 8 for EPOCH_MINUTES");
                    generateOnInsert = GenerateOn.EPOCH_MINUTES;
                } else if ($Bigint.GenerateOnInsert$.EPOCH_5FSECONDS.text().equals(integer.getSqlxGenerateOnInsert$().text())) {
                    if (integer.getPrecision$().text() != null && integer.getPrecision$().text() < 10)
                        throw new GeneratorExecutionException("BIGINT(" + integer.getPrecision$().text() + ") requires minimum precision of 10 for EPOCH_SECONDS");
                    generateOnInsert = GenerateOn.EPOCH_SECONDS;
                } else if ($Bigint.GenerateOnInsert$.EPOCH_5FMILLIS.text().equals(integer.getSqlxGenerateOnInsert$().text())) {
                    if (integer.getPrecision$().text() != null && integer.getPrecision$().text() < 13)
                        throw new GeneratorExecutionException("BIGINT(" + integer.getPrecision$().text() + ") requires minimum precision of 13 for EPOCH_MILLIS");
                    generateOnInsert = GenerateOn.EPOCH_MILLIS;
                } else {
                    throw new GeneratorExecutionException("Unknown generateOnInsert specification: " + integer.getSqlxGenerateOnInsert$().text());
                }
            }
            if (integer.getSqlxGenerateOnUpdate$() != null) {
                if (isPrimary)
                    throw new GeneratorExecutionException("Primary column \"" + table.getName$().text() + "." + column.getName$().text() + "\" cannot specify generateOnUpdate");
                if ($Bigint.GenerateOnUpdate$.INCREMENT.text().equals(integer.getSqlxGenerateOnUpdate$().text())) {
                    generateOnUpdate = GenerateOn.INCREMENT;
                } else if ($Bigint.GenerateOnUpdate$.EPOCH_5FMINUTES.text().equals(integer.getSqlxGenerateOnUpdate$().text())) {
                    if (integer.getPrecision$().text() != null && integer.getPrecision$().text() < 8)
                        throw new GeneratorExecutionException("BIGINT(" + integer.getPrecision$().text() + ") requires minimum precision of 8 for EPOCH_MINUTES");
                    generateOnUpdate = GenerateOn.EPOCH_MINUTES;
                } else if ($Bigint.GenerateOnUpdate$.EPOCH_5FSECONDS.text().equals(integer.getSqlxGenerateOnUpdate$().text())) {
                    if (integer.getPrecision$().text() != null && integer.getPrecision$().text() < 10)
                        throw new GeneratorExecutionException("BIGINT(" + integer.getPrecision$().text() + ") requires minimum precision of 10 for EPOCH_SECONDS");
                    generateOnUpdate = GenerateOn.EPOCH_SECONDS;
                } else if ($Bigint.GenerateOnUpdate$.EPOCH_5FMILLIS.text().equals(integer.getSqlxGenerateOnUpdate$().text())) {
                    if (integer.getPrecision$().text() != null && integer.getPrecision$().text() < 13)
                        throw new GeneratorExecutionException("BIGINT(" + integer.getPrecision$().text() + ") requires minimum precision of 13 for EPOCH_MILLIS");
                    generateOnUpdate = GenerateOn.EPOCH_MILLIS;
                } else {
                    throw new GeneratorExecutionException("Unknown generateOnUpdate specification: " + integer.getSqlxGenerateOnUpdate$().text());
                }
            }
            return new ColumnMeta(table, column, isPrimary, data.BIGINT.class, commonParams, integer.getDefault$() == null ? null : integer.getDefault$().text(), generateOnInsert, generateOnUpdate, isKeyForUpdate, integer.getPrecision$() == null ? null : integer.getPrecision$().text().intValue(), integer.getMin$() == null ? null : integer.getMin$().text(), integer.getMax$() == null ? null : integer.getMax$().text());
        }
    }
    if (column instanceof $Float) {
        final $Float col = ($Float) column;
        final Number min = col.getMin$() != null ? col.getMin$().text() : null;
        final Number max = col.getMax$() != null ? col.getMax$().text() : null;
        return new ColumnMeta(table, column, isPrimary, data.FLOAT.class, commonParams, col.getDefault$() == null ? null : col.getDefault$().text(), generateOnInsert, generateOnUpdate, isKeyForUpdate, min, max);
    }
    if (column instanceof $Double) {
        final $Double col = ($Double) column;
        final Number min = col.getMin$() != null ? col.getMin$().text() : null;
        final Number max = col.getMax$() != null ? col.getMax$().text() : null;
        return new ColumnMeta(table, column, isPrimary, data.DOUBLE.class, commonParams, col.getDefault$() == null ? null : col.getDefault$().text(), generateOnInsert, generateOnUpdate, isKeyForUpdate, min, max);
    }
    if (column instanceof $Decimal) {
        final $Decimal col = ($Decimal) column;
        return new ColumnMeta(table, column, isPrimary, data.DECIMAL.class, commonParams, col.getDefault$() == null ? null : col.getDefault$().text(), generateOnInsert, generateOnUpdate, isKeyForUpdate, col.getPrecision$() == null ? null : col.getPrecision$().text().intValue(), col.getScale$() == null ? null : col.getScale$().text().intValue(), col.getMin$() == null ? null : col.getMin$().text(), col.getMax$() == null ? null : col.getMax$().text());
    }
    if (column instanceof $Date) {
        final $Date col = ($Date) column;
        if (col.getSqlxGenerateOnInsert$() != null) {
            if ($Date.GenerateOnInsert$.TIMESTAMP.text().equals(col.getSqlxGenerateOnInsert$().text()))
                generateOnInsert = GenerateOn.TIMESTAMP;
            else
                throw new GeneratorExecutionException("Unknown generateOnInsert specification: " + col.getSqlxGenerateOnInsert$().text());
        }
        if (col.getSqlxGenerateOnUpdate$() != null) {
            if ($Date.GenerateOnUpdate$.TIMESTAMP.text().equals(col.getSqlxGenerateOnUpdate$().text())) {
                if (isPrimary)
                    throw new GeneratorExecutionException("Primary column \"" + table.getName$().text() + "." + column.getName$().text() + "\" cannot specify generateOnUpdate");
                generateOnUpdate = GenerateOn.TIMESTAMP;
            } else {
                throw new GeneratorExecutionException("Unknown generateOnUpdate specification: " + col.getSqlxGenerateOnUpdate$().text());
            }
        }
        return new ColumnMeta(table, column, isPrimary, data.DATE.class, commonParams, col.getDefault$() == null ? null : col.getDefault$().text(), generateOnInsert, generateOnUpdate, isKeyForUpdate);
    }
    if (column instanceof $Time) {
        final $Time col = ($Time) column;
        if (col.getSqlxGenerateOnInsert$() != null) {
            if ($Time.GenerateOnInsert$.TIMESTAMP.text().equals(col.getSqlxGenerateOnInsert$().text()))
                generateOnInsert = GenerateOn.TIMESTAMP;
            else
                throw new GeneratorExecutionException("Unknown generateOnInsert specification: " + col.getSqlxGenerateOnInsert$().text());
        }
        if (col.getSqlxGenerateOnUpdate$() != null) {
            if ($Time.GenerateOnUpdate$.TIMESTAMP.text().equals(col.getSqlxGenerateOnUpdate$().text())) {
                if (isPrimary)
                    throw new GeneratorExecutionException("Primary column \"" + table.getName$().text() + "." + column.getName$().text() + "\" cannot specify generateOnUpdate");
                generateOnUpdate = GenerateOn.TIMESTAMP;
            } else {
                throw new GeneratorExecutionException("Unknown generateOnUpdate specification: " + col.getSqlxGenerateOnUpdate$().text());
            }
        }
        return new ColumnMeta(table, column, isPrimary, data.TIME.class, commonParams, col.getDefault$() == null ? null : col.getDefault$().text(), generateOnInsert, generateOnUpdate, isKeyForUpdate, col.getPrecision$() == null ? null : col.getPrecision$().text());
    }
    if (column instanceof $Datetime) {
        final $Datetime col = ($Datetime) column;
        if (col.getSqlxGenerateOnInsert$() != null) {
            if ($Datetime.GenerateOnInsert$.TIMESTAMP.text().equals(col.getSqlxGenerateOnInsert$().text()))
                generateOnInsert = GenerateOn.TIMESTAMP;
            else
                throw new GeneratorExecutionException("Unknown generateOnInsert specification: " + col.getSqlxGenerateOnInsert$().text());
        }
        if (col.getSqlxGenerateOnUpdate$() != null) {
            if ($Datetime.GenerateOnUpdate$.TIMESTAMP.text().equals(col.getSqlxGenerateOnUpdate$().text())) {
                if (isPrimary)
                    throw new GeneratorExecutionException("Primary column \"" + table.getName$().text() + "." + column.getName$().text() + "\" cannot specify generateOnUpdate");
                generateOnUpdate = GenerateOn.TIMESTAMP;
            } else {
                throw new GeneratorExecutionException("Unknown generateOnUpdate specification: " + col.getSqlxGenerateOnUpdate$().text());
            }
        }
        return new ColumnMeta(table, column, isPrimary, data.DATETIME.class, commonParams, col.getDefault$() == null ? null : col.getDefault$().text(), generateOnInsert, generateOnUpdate, isKeyForUpdate, col.getPrecision$() == null ? null : col.getPrecision$().text());
    }
    if (column instanceof $Boolean) {
        final $Boolean col = ($Boolean) column;
        return new ColumnMeta(table, column, isPrimary, data.BOOLEAN.class, commonParams, col.getDefault$() == null ? null : col.getDefault$().text(), generateOnInsert, generateOnUpdate, isKeyForUpdate);
    }
    if (column instanceof $Enum) {
        final $Enum col = ($Enum) column;
        return new ColumnMeta(table, column, isPrimary, data.ENUM.class, commonParams, col.getDefault$() == null ? null : getClassNameOfEnum(table, col).append('.').append(enumStringToEnum(col.getDefault$().text())), generateOnInsert, generateOnUpdate, isKeyForUpdate);
    }
    throw new IllegalArgumentException("Unknown class: " + cls);
}
Also used : org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Char(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Char) org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Tinyint(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Tinyint) org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Decimal(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Decimal) org.jaxdb.jsql.data(org.jaxdb.jsql.data) GeneratorExecutionException(org.jaxdb.ddlx.GeneratorExecutionException) org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Bigint(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Bigint) org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Named(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Named) org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Enum(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Enum) org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Boolean(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Boolean) org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Clob(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Clob) org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Datetime(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Datetime) org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Smallint(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Smallint) org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Integer(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Integer) org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Float(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Float) org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Double(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Double) org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Date(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Date) org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Time(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Time) org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Int(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Int) org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Blob(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Blob) org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Binary(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Binary)

Example 29 with org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Index

use of org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Index in project jaxdb by jaxdb.

the class Generator method generate.

private void generate() throws GeneratorExecutionException, IOException {
    if (logger.isInfoEnabled())
        logger.info("Generating jSQL: " + name);
    final File dir = new File(destDir, packageName.replace('.', '/'));
    if (!dir.exists() && !dir.mkdirs())
        throw new IOException("Unable to create output dir: " + dir.getAbsolutePath());
    final StringBuilder out = new StringBuilder(HEADER_COMMENT);
    out.append("package ").append(packageName).append(";\n\n");
    out.append(getDoc(ddlx.getNormalizedSchema(), 0, '\0', '\n'));
    out.append('@').append(SuppressWarnings.class.getName()).append("(\"all\")\n");
    out.append('@').append(Generated.class.getName()).append("(value=\"").append(GENERATED_VALUE).append("\", date=\"").append(GENERATED_DATE).append("\")\n");
    out.append("public final class ").append(schemaClassSimpleName).append(" extends ").append(Schema.class.getCanonicalName()).append(" {");
    final List<Table> tables = ddlx.getNormalizedSchema().getTable();
    final SchemaManifest schemaManifest = new SchemaManifest(tables);
    final StringBuilder cachedTables = new StringBuilder();
    for (final TableMeta tableMeta : schemaManifest.tableNameToTableMeta.values()) {
        tableMeta.init(schemaManifest);
        if (!tableMeta.isAbstract)
            cachedTables.append(tableMeta.classCase).append("(), ");
    }
    if (cachedTables.length() > 0)
        cachedTables.setLength(cachedTables.length() - 2);
    final List<$Column> templates = ddlx.getNormalizedSchema().getTemplate();
    if (templates != null)
        for (final $Column template : templates) if (template instanceof $Enum)
            out.append(declareEnumClass(schemaClassName, ($Enum) template, 2)).append('\n');
    // First create the abstract entities
    for (final TableMeta tableMeta : schemaManifest.tableNameToTableMeta.values()) if (tableMeta.table.getAbstract$().text())
        out.append(makeTable(tableMeta)).append('\n');
    // Then, in proper inheritance order, the real entities
    final List<Table> sortedTables = new ArrayList<>();
    for (final TableMeta tableMeta : schemaManifest.tableNameToTableMeta.values()) {
        if (!tableMeta.table.getAbstract$().text()) {
            sortedTables.add(tableMeta.table);
            out.append(makeTable(tableMeta)).append('\n');
        }
    }
    sortedTables.sort(namedComparator);
    out.append("\n  private static final ").append(String.class.getName()).append("[] names = {");
    for (final Table table : sortedTables) out.append('"').append(table.getName$().text()).append("\", ");
    out.setCharAt(out.length() - 2, '}');
    out.setCharAt(out.length() - 1, ';');
    out.append("\n  private static final ").append(data.Table.class.getCanonicalName()).append("<?>[] tables = {");
    for (final Table table : sortedTables) getClassNameOfTable(out, table).append("(), ");
    out.setCharAt(out.length() - 2, '}');
    out.setCharAt(out.length() - 1, ';');
    out.append('\n');
    out.append("\n  public static ").append(data.Table.class.getCanonicalName()).append("<?>[] getTables() {");
    out.append("\n    return tables;");
    out.append("\n  }\n");
    out.append("\n  public static ").append(data.Table.class.getCanonicalName()).append("<?> getTable(final ").append(String.class.getName()).append(" name) {");
    out.append("\n    final int index = ").append(Arrays.class.getName()).append(".binarySearch(names, name);");
    out.append("\n    return index < 0 ? null : tables[index];");
    out.append("\n  }\n");
    out.append("\n  private static final ").append(schemaClassSimpleName).append(" _schema$ = new ").append(schemaClassSimpleName).append("();\n");
    out.append("\n  static ").append(schemaClassSimpleName).append(" getSchema() {");
    out.append("\n    return _schema$;");
    out.append("\n  }\n");
    // out.append("\n  private static ").append(TableCache.class.getName()).append(" cache;\n");
    // out.append("\n  public static ").append(TableCache.class.getName()).append(" getRowCache() {");
    // out.append("\n    return cache;");
    // out.append("\n  }\n");
    // out.append("\n  public static void setRowCache(").append(TableCache.class.getName()).append(" cache) {");
    // out.append("\n    ").append(schemaClassSimpleName).append(".cache = cache;");
    // out.append("\n  }\n");
    out.append("\n  private ").append(schemaClassSimpleName).append("() {");
    out.append("\n  }");
    out.append("\n}");
    final File javaFile = new File(dir, schemaClassSimpleName + ".java");
    Files.write(javaFile.toPath(), out.toString().getBytes());
}
Also used : Table(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Schema.Table) org.jaxdb.jsql.data(org.jaxdb.jsql.data) ArrayList(java.util.ArrayList) org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Enum(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Enum) IOException(java.io.IOException) File(java.io.File) org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Column(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Column)

Example 30 with org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Index

use of org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Index in project jaxdb by jaxdb.

the class Generator method declareEnumClass.

private static String declareEnumClass(final String containerClassName, final $Enum column, final int spaces) {
    final String classSimpleName = Identifiers.toClassCase(column.getName$().text());
    final String className = containerClassName + "." + classSimpleName;
    final List<String> names = Dialect.parseEnum(column.getValues$().text());
    final StringBuilder out = new StringBuilder();
    final String s = Strings.repeat(' ', spaces);
    out.append('\n').append(s).append('@').append(EntityEnum.Type.class.getCanonicalName()).append("(\"").append(Dialect.getTypeName(column, null)).append("\")");
    out.append('\n').append(s).append("public static final class ").append(classSimpleName).append(" implements ").append(EntityEnum.class.getName()).append(" {");
    out.append('\n').append(s).append("  private static byte index = 0;");
    out.append('\n').append(s).append("  public static final ").append(className);
    for (int i = 0, len = names.size(); i < len; ++i) {
        out.append(' ').append(enumStringToEnum(names.get(i))).append(',');
    }
    out.setCharAt(out.length() - 1, ';');
    out.append('\n').append(s).append("  private static final ").append(className).append("[] values = {");
    for (int i = 0, len = names.size(); i < len; ++i) {
        final String name = names.get(i);
        out.append(enumStringToEnum(name)).append(" = new ").append(className).append("(\"").append(name).append("\"), ");
    }
    out.setCharAt(out.length() - 2, '}');
    out.setCharAt(out.length() - 1, ';');
    out.append("\n\n").append(s).append("  public static ").append(className).append("[] values() {");
    out.append('\n').append(s).append("    return values;");
    out.append('\n').append(s).append("  }\n");
    out.append('\n').append(s).append("  public static ").append(className).append(" valueOf(final ").append(String.class.getName()).append(" string) {");
    out.append('\n').append(s).append("    if (string == null)");
    out.append('\n').append(s).append("      return null;\n");
    out.append('\n').append(s).append("    for (final ").append(className).append(" value : values())");
    out.append('\n').append(s).append("      if (string.equals(value.name))");
    out.append('\n').append(s).append("        return value;\n");
    out.append('\n').append(s).append("    return null;");
    out.append('\n').append(s).append("  }\n");
    out.append('\n').append(s).append("  private final byte ordinal;");
    out.append('\n').append(s).append("  private final ").append(String.class.getName()).append(" name;\n");
    out.append('\n').append(s).append("  private ").append(classSimpleName).append("(final ").append(String.class.getName()).append(" name) {");
    out.append('\n').append(s).append("    this.ordinal = index++;");
    out.append('\n').append(s).append("    this.name = name;");
    out.append('\n').append(s).append("  }\n");
    out.append('\n').append(s).append("  public byte ordinal() {");
    out.append('\n').append(s).append("    return ordinal;");
    out.append('\n').append(s).append("  }\n");
    out.append('\n').append(s).append("  @").append(Override.class.getName()).append('\n').append(s).append("  public ").append(String.class.getName()).append(" toString() {\n").append(s).append("    return name;\n").append(s).append("  }\n").append(s).append("}");
    return out.toString();
}
Also used : EntityEnum(org.jaxdb.jsql.EntityEnum) org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Tinyint(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Tinyint) org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Bigint(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Bigint) org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Smallint(org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Smallint)

Aggregations

Index (ucar.ma2.Index)30 ArrayList (java.util.ArrayList)21 Array (ucar.ma2.Array)20 Test (org.junit.Test)12 IOException (java.io.IOException)11 Attribute (ucar.nc2.Attribute)11 AbstractMessage (com.google.protobuf.AbstractMessage)10 WritableRaster (java.awt.image.WritableRaster)10 ArrayFloat (ucar.ma2.ArrayFloat)10 Index (com.google.firestore.admin.v1.Index)9 Dimension (ucar.nc2.Dimension)9 org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Bigint (org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Bigint)8 org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Smallint (org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Smallint)8 org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Tinyint (org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Tinyint)8 NetcdfFileWriteable (ucar.nc2.NetcdfFileWriteable)8 Variable (ucar.nc2.Variable)8 org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Column (org.jaxdb.www.ddlx_0_5.xLygluGCXAA.$Column)7 File (java.io.File)5 List (java.util.List)5 ArrayDouble (ucar.ma2.ArrayDouble)5