📄 column.java
字号:
package org.apache.ddlutils.model;
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
import java.io.Serializable;
import java.math.BigDecimal;
import java.sql.Date;
import java.sql.Time;
import java.sql.Timestamp;
import java.sql.Types;
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.ddlutils.util.Jdbc3Utils;
/**
* Represents a column in the database model.
*
* @version $Revision: 463305 $
*/
public class Column implements Cloneable, Serializable
{
/** Unique ID for serialization purposes. */
private static final long serialVersionUID = -6226348998874210093L;
/** The name of the column. */
private String _name;
/** The java name of the column (optional and unused by DdlUtils, for Torque compatibility). */
private String _javaName;
/** The column's description. */
private String _description;
/** Whether the column is a primary key column. */
private boolean _primaryKey;
/** Whether the column is required, ie. it must not contain <code>NULL</code>. */
private boolean _required;
/** Whether the column's value is incremented automatically. */
private boolean _autoIncrement;
/** The JDBC type code, one of the constants in {@link java.sql.Types}. */
private int _typeCode;
/** The name of the JDBC type. */
private String _type;
/** The size of the column for JDBC types that require/support this. */
private String _size;
/** The size of the column for JDBC types that require/support this. */
private Integer _sizeAsInt;
/** The scale of the column for JDBC types that require/support this. */
private int _scale;
/** The default value. */
private String _defaultValue;
/**
* Returns the name of the column.
*
* @return The name
*/
public String getName()
{
return _name;
}
/**
* Sets the name of the column.
*
* @param name The name
*/
public void setName(String name)
{
_name = name;
}
/**
* Returns the java name of the column. This property is unused by DdlUtils and only
* for Torque compatibility.
*
* @return The java name
*/
public String getJavaName()
{
return _javaName;
}
/**
* Sets the java name of the column. This property is unused by DdlUtils and only
* for Torque compatibility.
*
* @param javaName The java name
*/
public void setJavaName(String javaName)
{
_javaName = javaName;
}
/**
* Returns the description of the column.
*
* @return The description
*/
public String getDescription()
{
return _description;
}
/**
* Sets the description of the column.
*
* @param description The description
*/
public void setDescription(String description)
{
_description = description;
}
/**
* Determines whether this column is a primary key column.
*
* @return <code>true</code> if this column is a primary key column
*/
public boolean isPrimaryKey()
{
return _primaryKey;
}
/**
* Specifies whether this column is a primary key column.
*
* @param primaryKey <code>true</code> if this column is a primary key column
*/
public void setPrimaryKey(boolean primaryKey)
{
_primaryKey = primaryKey;
}
/**
* Determines whether this column is a required column, ie. that it is not allowed
* to contain <code>NULL</code> values.
*
* @return <code>true</code> if this column is a required column
*/
public boolean isRequired()
{
return _required;
}
/**
* Specifies whether this column is a required column, ie. that it is not allowed
* to contain <code>NULL</code> values.
*
* @param required <code>true</code> if this column is a required column
*/
public void setRequired(boolean required)
{
_required = required;
}
/**
* Determines whether this column is an auto-increment column.
*
* @return <code>true</code> if this column is an auto-increment column
*/
public boolean isAutoIncrement()
{
return _autoIncrement;
}
/**
* Specifies whether this column is an auto-increment column.
*
* @param autoIncrement <code>true</code> if this column is an auto-increment column
*/
public void setAutoIncrement(boolean autoIncrement)
{
_autoIncrement = autoIncrement;
}
/**
* Returns the code (one of the constants in {@link java.sql.Types}) of the
* JDBC type of the column.
*
* @return The type code
*/
public int getTypeCode()
{
return _typeCode;
}
/**
* Sets the code (one of the constants in {@link java.sql.Types}) of the
* JDBC type of the column.
*
* @param typeCode The type code
*/
public void setTypeCode(int typeCode)
{
_type = TypeMap.getJdbcTypeName(typeCode);
if (_type == null)
{
throw new ModelException("Unknown JDBC type code "+typeCode);
}
_typeCode = typeCode;
}
/**
* Returns the JDBC type of the column.
*
* @return The type
*/
public String getType()
{
return _type;
}
/**
* Sets the JDBC type of the column.
*
* @param type The type
*/
public void setType(String type)
{
Integer typeCode = TypeMap.getJdbcTypeCode(type);
if (typeCode == null)
{
throw new ModelException("Unknown JDBC type "+type);
}
else
{
_typeCode = typeCode.intValue();
// we get the corresponding string value from the TypeMap in order
// to detect extension types which we don't want in the model
_type = TypeMap.getJdbcTypeName(_typeCode);
}
}
/**
* Determines whether this column is of a numeric type.
*
* @return <code>true</code> if this column is of a numeric type
*/
public boolean isOfNumericType()
{
return TypeMap.isNumericType(getTypeCode());
}
/**
* Determines whether this column is of a text type.
*
* @return <code>true</code> if this column is of a text type
*/
public boolean isOfTextType()
{
return TypeMap.isTextType(getTypeCode());
}
/**
* Determines whether this column is of a binary type.
*
* @return <code>true</code> if this column is of a binary type
*/
public boolean isOfBinaryType()
{
return TypeMap.isBinaryType(getTypeCode());
}
/**
* Determines whether this column is of a special type.
*
* @return <code>true</code> if this column is of a special type
*/
public boolean isOfSpecialType()
{
return TypeMap.isSpecialType(getTypeCode());
}
/**
* Returns the size of the column.
*
* @return The size
*/
public String getSize()
{
return _size;
}
/**
* Returns the size of the column as an integer.
*
* @return The size as an integer
*/
public int getSizeAsInt()
{
return _sizeAsInt == null ? 0 : _sizeAsInt.intValue();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -