Package org.apache.ddlutils.model

Examples of org.apache.ddlutils.model.Column


     * {@inheritDoc}
     */
    public void apply(Database database, boolean caseSensitive)
    {
        Table  table  = database.findTable(getChangedTable().getName(), caseSensitive);
        Column column = table.findColumn(_column.getName(), caseSensitive);

        table.removeColumn(column);
    }
View Full Code Here


     * {@inheritDoc}
     */
    public void apply(Database database, boolean caseSensitive)
    {
        Table  table  = database.findTable(getChangedTable().getName(), caseSensitive);
        Column column = table.findColumn(_column.getName(), caseSensitive);

        column.setAutoIncrement(!_column.isAutoIncrement());
    }
View Full Code Here

    /**
     * {@inheritDoc}
     */
  protected Column readColumn(DatabaseMetaDataWrapper metaData, Map values) throws SQLException
  {
    Column column       = super.readColumn(metaData, values);
    String defaultValue = column.getDefaultValue();

    // Sql Server tends to surround the returned default value with one or two sets of parentheses
    if (defaultValue != null)
    {
      while (defaultValue.startsWith("(") && defaultValue.endsWith(")"))
      {
        defaultValue = defaultValue.substring(1, defaultValue.length() - 1);
      }

      if (column.getTypeCode() == Types.TIMESTAMP)
      {
        // Sql Server maintains the default values for DATE/TIME jdbc types, so we have to
        // migrate the default value to TIMESTAMP
        PatternMatcher matcher   = new Perl5Matcher();
        Timestamp      timestamp = null;
 
        if (matcher.matches(defaultValue, _isoDatePattern))
        {
          timestamp = new Timestamp(Date.valueOf(matcher.getMatch().group(1)).getTime());
        }
        else if (matcher.matches(defaultValue, _isoTimePattern))
        {
          timestamp = new Timestamp(Time.valueOf(matcher.getMatch().group(1)).getTime());
        }
        if (timestamp != null)
        {
          defaultValue = timestamp.toString();
        }
      }
      else if (column.getTypeCode() == Types.DECIMAL)
      {
        // For some reason, Sql Server 2005 always returns DECIMAL default values with a dot
        // even if the scale is 0, so we remove the dot
        if ((column.getScale() == 0) && defaultValue.endsWith("."))
        {
          defaultValue = defaultValue.substring(0, defaultValue.length() - 1);
        }
      }
            else if (TypeMap.isTextType(column.getTypeCode()))
            {
                defaultValue = unescape(defaultValue, "'", "''");
            }
           
      column.setDefaultValue(defaultValue);
    }
    if ((column.getTypeCode() == Types.DECIMAL) && (column.getSizeAsInt() == 19) && (column.getScale() == 0))
    {
      column.setTypeCode(Types.BIGINT);
    }

    return column;
  }
View Full Code Here

            Object change = changeIt.next();

            if ((change instanceof ColumnDataTypeChange) ||
                (change instanceof ColumnSizeChange))
            {
                Column column = ((ColumnChange)change).getChangedColumn();
                Table  table  = ((ColumnChange)change).getChangedTable();

                if (column.isPrimaryKey() && !removedPKs.contains(table))
                {
                    Column[] pk = table.getPrimaryKeyColumns();

                    additionalChanges.add(new RemovePrimaryKeyChange(table, pk));
                    additionalChanges.add(new AddPrimaryKeyChange(table, pk));
View Full Code Here

            HashSet processedColumns = new HashSet();

            for (Iterator changeIt = columnChanges.iterator(); changeIt.hasNext();)
            {
                ColumnChange change       = (ColumnChange)changeIt.next();
                Column       sourceColumn = change.getChangedColumn();
                Column       targetColumn = targetTable.findColumn(sourceColumn.getName(), getPlatform().isDelimitedIdentifierModeOn());

                if (!processedColumns.contains(targetColumn))
                {
                    processColumnChange(sourceTable,
                                        targetTable,
View Full Code Here

    /**
     * {@inheritDoc}
     */
    protected Column readColumn(DatabaseMetaDataWrapper metaData, Map values) throws SQLException
    {
        Column column = super.readColumn(metaData, values);

        if (TypeMap.isTextType(column.getTypeCode()) &&
            (column.getDefaultValue() != null))
        {
            column.setDefaultValue(unescape(column.getDefaultValue(), "'", "''"));
        }
        return column;
    }
View Full Code Here

     * {@inheritDoc}
     */
    public void apply(Database database, boolean caseSensitive)
    {
        Table  table  = database.findTable(getChangedTable().getName(), caseSensitive);
        Column column = table.findColumn(_column.getName(), caseSensitive);

        column.setRequired(!_column.isRequired());
    }
View Full Code Here

    {
        Table table = database.findTable(getChangedTable().getName(), caseSensitive);

        for (int idx = 0; idx < _primaryKeyColumns.length; idx++)
        {
            Column column = table.findColumn(_primaryKeyColumns[idx].getName(), caseSensitive);

            column.setPrimaryKey(false);
        }
    }
View Full Code Here

    /**
     * {@inheritDoc}
     */
    public void apply(Database database, boolean caseSensitive)
    {
        Column newColumn = null;

        try
        {
            newColumn = (Column)_newColumn.clone();
        }
View Full Code Here

    {
        Table table = database.findTable(getChangedTable().getName(), caseSensitive);

        for (int idx = 0; idx < _primaryKeyColumns.length; idx++)
        {
            Column column = table.findColumn(_primaryKeyColumns[idx].getName(), caseSensitive);

            column.setPrimaryKey(true);
        }
    }
View Full Code Here

TOP

Related Classes of org.apache.ddlutils.model.Column

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.