com.hfg.sql.table.DatabaseCol Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of com_hfg Show documentation
Show all versions of com_hfg Show documentation
com.hfg xml, html, svg, and bioinformatics utility library
package com.hfg.sql.table;
import com.hfg.exception.ProgrammingException;
import com.hfg.util.CompareUtil;
import com.hfg.util.StringUtil;
//------------------------------------------------------------------------------
/**
Database column object.
@author J. Alex Taylor, hairyfatguy.com
*/
//------------------------------------------------------------------------------
// com.hfg XML/HTML Coding Library
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
// version 2.1 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
// J. Alex Taylor, President, Founder, CEO, COO, CFO, OOPS hairyfatguy.com
// [email protected]
//------------------------------------------------------------------------------
public class DatabaseCol implements Cloneable, Comparable
{
private DatabaseTable mTable;
private String mName;
private int mType;
private boolean mIsId;
private boolean mNotRetrievedByDefault;
private DatabaseSequence mSequence;
//###########################################################################
// CONSTRUCTORS
//###########################################################################
//---------------------------------------------------------------------------
public DatabaseCol(DatabaseTable inTable, String inName, int inType)
{
mTable = inTable;
mName = inName;
mType = inType;
mTable.addCol(this);
}
//###########################################################################
// PUBLIC METHODS
//###########################################################################
//---------------------------------------------------------------------------
public DatabaseCol clone()
{
DatabaseCol clone;
try
{
clone = (DatabaseCol) super.clone();
}
catch (CloneNotSupportedException e)
{
throw new ProgrammingException(e);
}
return clone;
}
//---------------------------------------------------------------------------
@Override
public int compareTo(DatabaseCol inObj2)
{
int result = 1;
if (inObj2 != null)
{
result = CompareUtil.compare(getTable(), inObj2.getTable());
if (0 == result)
{
result = CompareUtil.compare(name(), inObj2.name());
}
}
return result;
}
//---------------------------------------------------------------------------
@Override
public boolean equals(Object inObj2)
{
return (inObj2 != null
&& inObj2 instanceof DatabaseCol
&& 0 == compareTo((DatabaseCol) inObj2));
}
//---------------------------------------------------------------------------
@Override
public int hashCode()
{
return getQualifiedName().hashCode();
}
//---------------------------------------------------------------------------
public String name()
{
return mName;
}
//---------------------------------------------------------------------------
public String qname(String inPrefix)
{
return (StringUtil.isSet(inPrefix) ? inPrefix + "." : "") + mName;
}
//---------------------------------------------------------------------------
public String getQualifiedName()
{
String prefix = null;
if (getTable() != null)
{
if (StringUtil.isSet(getTable().getAlias()))
{
prefix = getTable().getAlias();
}
else
{
prefix = getTable().name();
}
}
return (prefix != null ? prefix + "." : "") + name();
}
//---------------------------------------------------------------------------
@Override
public String toString()
{
return getQualifiedName();
}
//---------------------------------------------------------------------------
public DatabaseTable getTable()
{
return mTable;
}
//---------------------------------------------------------------------------
public DatabaseCol setTable(DatabaseTable inValue)
{
mTable = inValue;
return this;
}
//---------------------------------------------------------------------------
public int getType()
{
return mType;
}
//---------------------------------------------------------------------------
public DatabaseCol setIsId(boolean inValue)
{
mIsId = inValue;
return this;
}
//---------------------------------------------------------------------------
public boolean isId()
{
return mIsId;
}
//---------------------------------------------------------------------------
public DatabaseCol setRetrievedByDefault(boolean inValue)
{
mNotRetrievedByDefault = ! inValue;
return this;
}
//---------------------------------------------------------------------------
public boolean getRetrievedByDefault()
{
return ! mNotRetrievedByDefault;
}
//---------------------------------------------------------------------------
public DatabaseCol setSequence(DatabaseSequence inValue)
{
mSequence = inValue;
return this;
}
//---------------------------------------------------------------------------
public DatabaseSequence getSequence()
{
return mSequence;
}
}