/** * Determine if the values in the named column is generated by the database. * * @param columnName the name of the column * @return {@code true} if a column exists in this table and its values are generated, or {@code false} otherwise */ default boolean isGenerated(String columnName) { Column column = columnWithName(columnName); return column == null ? false : column.isGenerated(); }
@Override public boolean equals(Object obj) { if (obj == this) return true; if (obj instanceof Column) { Column that = (Column) obj; return this.name().equalsIgnoreCase(that.name()) && this.typeExpression().equalsIgnoreCase(that.typeExpression()) && this.typeName().equalsIgnoreCase(that.typeName()) && this.jdbcType() == that.jdbcType() && Strings.equalsIgnoreCase(this.charsetName(),that.charsetName()) && this.position() == that.position() && this.length() == that.length() && this.scale().equals(that.scale()) && this.isOptional() == that.isOptional() && this.isAutoIncremented() == that.isAutoIncremented() && this.isGenerated() == that.isGenerated() && Objects.equals(this.defaultValue(), that.defaultValue()) && this.hasDefaultValue() == that.hasDefaultValue(); } return false; }
.scale(selectedColumn.scale().orElse(null)) .autoIncremented(selectedColumn.isAutoIncremented()) .generated(selectedColumn.isGenerated()) .optional(selectedColumn.isOptional()).create());
private Document toDocument(Column column) { Document document = Document.create(); document.setString("name", column.name()); document.setNumber("jdbcType", column.jdbcType()); if (column.nativeType() != Column.UNSET_INT_VALUE) { document.setNumber("nativeType", column.nativeType()); } document.setString("typeName", column.typeName()); document.setString("typeExpression", column.typeExpression()); document.setString("charsetName", column.charsetName()); if (column.length() != Column.UNSET_INT_VALUE) { document.setNumber("length", column.length()); } column.scale().ifPresent(s -> document.setNumber("scale", s)); document.setNumber("position", column.position()); document.setBoolean("optional", column.isOptional()); document.setBoolean("autoIncremented", column.isAutoIncremented()); document.setBoolean("generated", column.isGenerated()); return document; }
@Test public void shouldFilterColumnsUsingPredicate() { assertThat(table.filterColumns(c->c.isAutoIncremented())).containsExactly(c4); assertThat(table.filterColumns(c->c.isGenerated())).containsExactly(c1); assertThat(table.filterColumns(c->c.isOptional())).containsExactly(c3,c4); }
protected void assertColumn(Table table, String name, String typeName, int jdbcType, int length, int scale, boolean optional, boolean generated, boolean autoIncremented ) { Column column = table.columnWithName(name); assertThat(column.name()).isEqualTo(name); assertThat(column.typeName()).isEqualTo(typeName); assertThat(column.jdbcType()).isEqualTo(jdbcType); assertThat(column.length()).isEqualTo(length); if (scale == Column.UNSET_INT_VALUE) { assertFalse(column.scale().isPresent()); } else { assertThat(column.scale().get()).isEqualTo(scale); } assertThat(column.isOptional()).isEqualTo(optional); assertThat(column.isGenerated()).isEqualTo(generated); assertThat(column.isAutoIncremented()).isEqualTo(autoIncremented); }
protected void assertColumn(Table table, String name, String typeName, int jdbcType, int length, int scale, boolean optional, boolean generated, boolean autoIncremented) { Column column = table.columnWithName(name); assertThat(column.name()).isEqualTo(name); assertThat(column.typeName()).isEqualTo(typeName); assertThat(column.jdbcType()).isEqualTo(jdbcType); assertThat(column.length()).isEqualTo(length); if (scale == Column.UNSET_INT_VALUE) { assertFalse(column.scale().isPresent()); } else { assertThat(column.scale().get()).isEqualTo(scale); } assertThat(column.isOptional()).isEqualTo(optional); assertThat(column.isGenerated()).isEqualTo(generated); assertThat(column.isAutoIncremented()).isEqualTo(autoIncremented); }
protected void assertColumn(Table table, String name, String typeName, int jdbcType, int length, String charsetName, boolean optional) { Column column = table.columnWithName(name); assertThat(column.name()).isEqualTo(name); assertThat(column.typeName()).isEqualTo(typeName); assertThat(column.jdbcType()).isEqualTo(jdbcType); assertThat(column.length()).isEqualTo(length); assertThat(column.charsetName()).isEqualTo(charsetName); assertFalse(column.scale().isPresent()); assertThat(column.isOptional()).isEqualTo(optional); assertThat(column.isGenerated()).isFalse(); assertThat(column.isAutoIncremented()).isFalse(); }
@Test public void shouldCreateColumnWithAllFieldsSetToNonDefaults() { createColumnWithAllFieldsSetToNonDefaults(); assertThat(column.name()).isEqualTo("price"); assertThat(column.typeName()).isEqualTo("NUMBER"); assertThat(column.jdbcType()).isEqualTo(Types.DOUBLE); assertThat(column.length()).isEqualTo(5); assertThat(column.scale().get()).isEqualTo(2); assertThat(column.position()).isEqualTo(4); assertThat(column.isOptional()).isTrue(); assertThat(column.isAutoIncremented()).isTrue(); assertThat(column.isGenerated()).isTrue(); }
@Test public void shouldCreateColumnWithAllFieldsSetToDefaults() { Column column = editor.create(); assertThat(column.name()).isNull(); assertThat(column.typeName()).isNull(); assertThat(column.jdbcType()).isEqualTo(Types.INTEGER); assertThat(column.length()).isEqualTo(-1); Assert.assertFalse(column.scale().isPresent()); assertThat(column.position()).isEqualTo(1); assertThat(column.isOptional()).isTrue(); assertThat(column.isAutoIncremented()).isFalse(); assertThat(column.isGenerated()).isFalse(); }
@Test public void shouldFindGeneratedColumns() { editor.tableId(id); Column c1 = columnEditor.name("C1").type("VARCHAR").jdbcType(Types.VARCHAR).length(10).position(1).create(); Column c2 = columnEditor.name("C2").type("NUMBER").jdbcType(Types.NUMERIC).length(5).generated(true).create(); Column c3 = columnEditor.name("C3").type("DATE").jdbcType(Types.DATE).generated(true).create(); editor.addColumns(c1, c2, c3); editor.setPrimaryKeyNames("C1"); table = editor.create(); assertThat(table.retrieveColumnNames()).containsExactly("C1", "C2", "C3"); table.columns().forEach(col -> { assertThat(table.isGenerated(col.name())).isEqualTo(col.isGenerated()); }); assertValidPositions(editor); }
assertThat(person.columnWithName("name").position()).isEqualTo(1); assertThat(person.columnWithName("name").isAutoIncremented()).isFalse(); assertThat(person.columnWithName("name").isGenerated()).isFalse(); assertThat(person.columnWithName("name").isOptional()).isFalse(); assertThat(person.columnWithName("birthdate").name()).isEqualTo("birthdate"); assertThat(person.columnWithName("birthdate").position()).isEqualTo(2); assertThat(person.columnWithName("birthdate").isAutoIncremented()).isFalse(); assertThat(person.columnWithName("birthdate").isGenerated()).isFalse(); assertThat(person.columnWithName("birthdate").isOptional()).isTrue(); assertThat(person.columnWithName("age").name()).isEqualTo("age"); assertThat(person.columnWithName("age").position()).isEqualTo(3); assertThat(person.columnWithName("age").isAutoIncremented()).isFalse(); assertThat(person.columnWithName("age").isGenerated()).isFalse(); assertThat(person.columnWithName("age").isOptional()).isTrue(); assertThat(person.columnWithName("salary").name()).isEqualTo("salary"); assertThat(person.columnWithName("salary").position()).isEqualTo(4); assertThat(person.columnWithName("salary").isAutoIncremented()).isFalse(); assertThat(person.columnWithName("salary").isGenerated()).isFalse(); assertThat(person.columnWithName("salary").isOptional()).isTrue(); assertThat(person.columnWithName("bitStr").name()).isEqualTo("bitStr"); assertThat(person.columnWithName("bitStr").position()).isEqualTo(5); assertThat(person.columnWithName("bitStr").isAutoIncremented()).isFalse(); assertThat(person.columnWithName("bitStr").isGenerated()).isFalse(); assertThat(person.columnWithName("bitStr").isOptional()).isTrue();
/** * Determine if the values in the named column is generated by the database. * * @param columnName the name of the column * @return {@code true} if a column exists in this table and its values are generated, or {@code false} otherwise */ default boolean isGenerated(String columnName) { Column column = columnWithName(columnName); return column == null ? false : column.isGenerated(); }
@Override public boolean equals(Object obj) { if (obj == this) return true; if (obj instanceof Column) { Column that = (Column) obj; return this.name().equalsIgnoreCase(that.name()) && this.typeExpression().equalsIgnoreCase(that.typeExpression()) && this.typeName().equalsIgnoreCase(that.typeName()) && this.jdbcType() == that.jdbcType() && Strings.equalsIgnoreCase(this.charsetName(),that.charsetName()) && this.position() == that.position() && this.length() == that.length() && this.scale().equals(that.scale()) && this.isOptional() == that.isOptional() && this.isAutoIncremented() == that.isAutoIncremented() && this.isGenerated() == that.isGenerated() && Objects.equals(this.defaultValue(), that.defaultValue()) && this.hasDefaultValue() == that.hasDefaultValue(); } return false; }
private Document toDocument(Column column) { Document document = Document.create(); document.setString("name", column.name()); document.setNumber("jdbcType", column.jdbcType()); if (column.nativeType() != Column.UNSET_INT_VALUE) { document.setNumber("nativeType", column.nativeType()); } document.setString("typeName", column.typeName()); document.setString("typeExpression", column.typeExpression()); document.setString("charsetName", column.charsetName()); if (column.length() != Column.UNSET_INT_VALUE) { document.setNumber("length", column.length()); } column.scale().ifPresent(s -> document.setNumber("scale", s)); document.setNumber("position", column.position()); document.setBoolean("optional", column.isOptional()); document.setBoolean("autoIncremented", column.isAutoIncremented()); document.setBoolean("generated", column.isGenerated()); return document; }
protected void assertColumn(Table table, String name, String typeName, int jdbcType, int length, int scale, boolean optional, boolean generated, boolean autoIncremented) { Column column = table.columnWithName(name); assertThat(column.name()).isEqualTo(name); assertThat(column.typeName()).isEqualTo(typeName); assertThat(column.jdbcType()).isEqualTo(jdbcType); assertThat(column.length()).isEqualTo(length); if (scale == Column.UNSET_INT_VALUE) { assertFalse(column.scale().isPresent()); } else { assertThat(column.scale().get()).isEqualTo(scale); } assertThat(column.isOptional()).isEqualTo(optional); assertThat(column.isGenerated()).isEqualTo(generated); assertThat(column.isAutoIncremented()).isEqualTo(autoIncremented); }
protected void assertColumn(Table table, String name, String typeName, int jdbcType, int length, String charsetName, boolean optional) { Column column = table.columnWithName(name); assertThat(column.name()).isEqualTo(name); assertThat(column.typeName()).isEqualTo(typeName); assertThat(column.jdbcType()).isEqualTo(jdbcType); assertThat(column.length()).isEqualTo(length); assertThat(column.charsetName()).isEqualTo(charsetName); assertFalse(column.scale().isPresent()); assertThat(column.isOptional()).isEqualTo(optional); assertThat(column.isGenerated()).isFalse(); assertThat(column.isAutoIncremented()).isFalse(); }
assertThat(person.columnWithName("name").position()).isEqualTo(1); assertThat(person.columnWithName("name").isAutoIncremented()).isFalse(); assertThat(person.columnWithName("name").isGenerated()).isFalse(); assertThat(person.columnWithName("name").isOptional()).isFalse(); assertThat(person.columnWithName("birthdate").name()).isEqualTo("birthdate"); assertThat(person.columnWithName("birthdate").position()).isEqualTo(2); assertThat(person.columnWithName("birthdate").isAutoIncremented()).isFalse(); assertThat(person.columnWithName("birthdate").isGenerated()).isFalse(); assertThat(person.columnWithName("birthdate").isOptional()).isTrue(); assertThat(person.columnWithName("age").name()).isEqualTo("age"); assertThat(person.columnWithName("age").position()).isEqualTo(3); assertThat(person.columnWithName("age").isAutoIncremented()).isFalse(); assertThat(person.columnWithName("age").isGenerated()).isFalse(); assertThat(person.columnWithName("age").isOptional()).isTrue(); assertThat(person.columnWithName("salary").name()).isEqualTo("salary"); assertThat(person.columnWithName("salary").position()).isEqualTo(4); assertThat(person.columnWithName("salary").isAutoIncremented()).isFalse(); assertThat(person.columnWithName("salary").isGenerated()).isFalse(); assertThat(person.columnWithName("salary").isOptional()).isTrue(); assertThat(person.columnWithName("bitStr").name()).isEqualTo("bitStr"); assertThat(person.columnWithName("bitStr").position()).isEqualTo(5); assertThat(person.columnWithName("bitStr").isAutoIncremented()).isFalse(); assertThat(person.columnWithName("bitStr").isGenerated()).isFalse(); assertThat(person.columnWithName("bitStr").isOptional()).isTrue();