/** * The contents of this file are subject to the license and copyright * detailed in the LICENSE and NOTICE files at the root of the source * tree and available online at * * http://www.dspace.org/license/ */ package org.dspace.storage.rdbms; /** * Represents a column in an RDBMS table. */ public class ColumnInfo { /** The name of the column */ private String name; private String canonicalizedName; /** The JDBC type of the column */ private int type; /** True if this column is a primary key */ private boolean isPrimaryKey; /** * Constructor */ ColumnInfo() { } /** * Constructor */ ColumnInfo(String name, int type) { this.name = name; this.type = type; this.canonicalizedName = canonicalize(name); } /** * Return the column name. * * @return - The column name */ public String getName() { return name; } /** * Return the column name. * * @return - The column name */ public String getCanonicalizedName() { return canonicalizedName; } /** * Set the column name * * @param v - * The column name */ void setName(String v) { name = v; canonicalizedName = canonicalize(name); } /** * Return the JDBC type. This is one of the constants from java.sql.Types. * * @return - The JDBC type * @see java.sql.Types */ public int getType() { return type; } /** * Set the JDBC type. This should be one of the constants from * java.sql.Types. * * @param v - * The JDBC type * @see java.sql.Types */ void setType(int v) { type = v; } /** * Return true if this column is a primary key. * * @return True if this column is a primary key, false otherwise. */ public boolean isPrimaryKey() { return isPrimaryKey; } /** * Set whether this column is a primary key. * * @param v * True if this column is a primary key. */ void setIsPrimaryKey(boolean v) { this.isPrimaryKey = v; } /* * Return true if this object is equal to other, false otherwise. * * @return True if this object is equal to other, false otherwise. */ public boolean equals(Object other) { if (!(other instanceof ColumnInfo)) { return false; } ColumnInfo theOther = (ColumnInfo) other; return ((name != null) ? name.equals(theOther.name) : (theOther.name == null)) && (type == theOther.type) && (isPrimaryKey == theOther.isPrimaryKey); } /* * Return a hashCode for this object. * * @return A hashcode for this object. */ public int hashCode() { return new StringBuffer().append(name).append(type) .append(isPrimaryKey).toString().hashCode(); } static String canonicalize(String column) { return column.toLowerCase(); } }