/*
*
* SchemaCrawler
* http://sourceforge.net/projects/schemacrawler
* Copyright (c) 2000-2010, Sualeh Fatehi.
*
* 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.
*
*/
package schemacrawler.build;
import schemacrawler.schema.DatabaseObject;
import schemacrawler.schema.ResultsColumn;
/**
* Represents a column in a result set.
*
* @author Sualeh Fatehi
*/
final class MutableResultsColumn
extends BaseColumnMetadata
implements ResultsColumn
{
public final class ResultsColumnBuilder
extends BaseColumnBuilder
{
private String label;
private int displaySize;
private boolean autoIncrement;
private boolean caseSensitive;
private boolean currency;
private boolean definitelyWritable;
private boolean readOnly;
private boolean searchable;
private boolean signed;
private boolean writable;
public ResultsColumnBuilder(final DatabaseObject parent, final String name)
{
super(parent, name);
}
public ResultsColumn build()
{
return new MutableResultsColumn(this);
}
public int getDisplaySize()
{
return displaySize;
}
public String getLabel()
{
return label;
}
public boolean isAutoIncrement()
{
return autoIncrement;
}
public boolean isCaseSensitive()
{
return caseSensitive;
}
public boolean isCurrency()
{
return currency;
}
public boolean isDefinitelyWritable()
{
return definitelyWritable;
}
public boolean isReadOnly()
{
return readOnly;
}
public boolean isSearchable()
{
return searchable;
}
public boolean isSigned()
{
return signed;
}
public boolean isWritable()
{
return writable;
}
public void setAutoIncrement(final boolean isAutoIncrement)
{
autoIncrement = isAutoIncrement;
}
public void setCaseSensitive(final boolean isCaseSensitive)
{
caseSensitive = isCaseSensitive;
}
public void setCurrency(final boolean isCurrency)
{
currency = isCurrency;
}
public void setDefinitelyWritable(final boolean isDefinitelyWritable)
{
definitelyWritable = isDefinitelyWritable;
}
public void setDisplaySize(final int displaySize)
{
this.displaySize = displaySize;
}
public void setLabel(final String label)
{
this.label = label;
}
public void setReadOnly(final boolean isReadOnly)
{
readOnly = isReadOnly;
}
public void setSearchable(final boolean isSearchable)
{
searchable = isSearchable;
}
public void setSigned(final boolean isSigned)
{
signed = isSigned;
}
public void setWritable(final boolean isWritable)
{
writable = isWritable;
}
}
private static final long serialVersionUID = -6983013302549352559L;
private final String label;
private final int displaySize;
private final boolean autoIncrement;
private final boolean caseSensitive;
private final boolean currency;
private final boolean definitelyWritable;
private final boolean readOnly;
private final boolean searchable;
private final boolean signed;
private final boolean writable;
MutableResultsColumn(final ResultsColumnBuilder builder)
{
super(builder);
label = builder.label;
displaySize = builder.displaySize;
autoIncrement = builder.autoIncrement;
caseSensitive = builder.caseSensitive;
currency = builder.currency;
definitelyWritable = builder.definitelyWritable;
readOnly = builder.readOnly;
searchable = builder.searchable;
signed = builder.signed;
writable = builder.writable;
}
/**
* {@inheritDoc}
*
* @see schemacrawler.schema.ResultsColumn#getDisplaySize()
*/
public int getDisplaySize()
{
return displaySize;
}
/**
* {@inheritDoc}
*
* @see schemacrawler.schema.ResultsColumn#getLabel()
*/
public String getLabel()
{
return label;
}
/**
* {@inheritDoc}
*
* @see schemacrawler.schema.ResultsColumn#isAutoIncrement()
*/
public boolean isAutoIncrement()
{
return autoIncrement;
}
/**
* {@inheritDoc}
*
* @see schemacrawler.schema.ResultsColumn#isCaseSensitive()
*/
public boolean isCaseSensitive()
{
return caseSensitive;
}
/**
* {@inheritDoc}
*
* @see schemacrawler.schema.ResultsColumn#isCurrency()
*/
public boolean isCurrency()
{
return currency;
}
/**
* {@inheritDoc}
*
* @see schemacrawler.schema.ResultsColumn#isDefinitelyWritable()
*/
public boolean isDefinitelyWritable()
{
return definitelyWritable;
}
/**
* {@inheritDoc}
*
* @see schemacrawler.schema.ResultsColumn#isReadOnly()
*/
public boolean isReadOnly()
{
return readOnly;
}
/**
* {@inheritDoc}
*
* @see schemacrawler.schema.ResultsColumn#isSearchable()
*/
public boolean isSearchable()
{
return searchable;
}
/**
* {@inheritDoc}
*
* @see schemacrawler.schema.ResultsColumn#isSigned()
*/
public boolean isSigned()
{
return signed;
}
/**
* {@inheritDoc}
*
* @see schemacrawler.schema.ResultsColumn#isWritable()
*/
public boolean isWritable()
{
return writable;
}
}