コード例 #1
0
  @Override
  public ChangeStatus checkStatus(Database database) {
    ChangeStatus result = new ChangeStatus();
    try {
      Column column =
          SnapshotGeneratorFactory.getInstance()
              .createSnapshot(
                  new Column(
                      Table.class,
                      getCatalogName(),
                      getSchemaName(),
                      getTableName(),
                      getColumnName()),
                  database);
      if (column == null) {
        return result.unknown("Column " + getColumnName() + " does not exist");
      }

      result.assertComplete(
          column.getDefaultValue() != null, "Column " + getColumnName() + " has no default value");
      if (column.getDefaultValue() == null) {
        return result;
      }

      if (getDefaultValue() != null) {
        return result.assertCorrect(
            getDefaultValue().equals(column.getDefaultValue()),
            "Default value was " + column.getDefaultValue());
      } else if (getDefaultValueDate() != null) {
        return result.assertCorrect(
            getDefaultValueDate()
                .equals(new ISODateFormat().format((Date) column.getDefaultValue())),
            "Default value was " + column.getDefaultValue());
      } else if (getDefaultValueNumeric() != null) {
        return result.assertCorrect(
            getDefaultValueNumeric().equals(column.getDefaultValue().toString()),
            "Default value was " + column.getDefaultValue());
      } else if (getDefaultValueBoolean() != null) {
        return result.assertCorrect(
            getDefaultValueBoolean().equals(column.getDefaultValue()),
            "Default value was " + column.getDefaultValue());
      } else if (getDefaultValueComputed() != null) {
        return result.assertCorrect(
            getDefaultValueComputed().equals(column.getDefaultValue()),
            "Default value was " + column.getDefaultValue());
      } else if (getDefaultValueSequenceNext() != null) {
        return result.assertCorrect(
            getDefaultValueSequenceNext().equals(column.getDefaultValue()),
            "Default value was " + column.getDefaultValue());
      } else {
        return result.unknown("Unknown default value type");
      }
    } catch (Exception e) {
      return result.unknown(e);
    }
  }