litesoft
@ 947
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 |
// This Source Code is in the Public Domain per: http://unlicense.org package org.litesoft.orsup.selection.nonpublic; import org.litesoft.orsup.selection.*; /** * An abstract helper class to make implementing SimpleColumnDefinition simpler.<p> * <a href="../../../Licence.txt">Licence</a><br> * <p/> * Exceptions: All problems caught when the parameter(s) are checked (as * indicated/implied in the @param tags) will generate an IllegalArgumentException, * and means the API user has a problem. If a NullPointerException (or some * others, like: ClassCastException or ArrayIndexOutOfBoundsException) is thrown, * it means the API developer has a problem. Any Exception that is explicitly * thrown in the API, but unrelated to a parameter, will be listed in the throws * clause (and hopefully in the tag @throws). These may (but probably won't) be * checked Exceptions. * * @author George Smith * @version 1.0 10/07/01 */ public abstract class AbstractColumnDefinition implements SimpleColumnDefinition { private String mName; private String mColumnName, mSearchColumnName; private boolean mHasSearchColumn; private Class mColumnType; /** * Constructor that simply sets the attributes to support the * SimpleColumnDefinition interface.<p> * * @param pName Logical Column Name (!null). * @param pColumnName SQL Column Name (!null). * @param pSearchColumnName Search SQL Column Name (!null). * @param pColumnType Java Class type for the SQL Column Type (!null). */ protected AbstractColumnDefinition( String pName, String pColumnName, String pSearchColumnName, Class pColumnType ) { mName = pName; mColumnName = pColumnName; mSearchColumnName = pSearchColumnName; mColumnType = pColumnType; mHasSearchColumn = (mColumnName != null) && !mColumnName.equals( mSearchColumnName ); } /** * Constructor that simply sets the attributes to support the * SimpleColumnDefinition interface.<p> * * @param pName Logical Column Name (!null). * @param pColumnName SQL Column Name (!null). * @param pColumnType Java Class type for the SQL Column Type (!null). */ protected AbstractColumnDefinition( String pName, String pColumnName, Class pColumnType ) { mName = pName; mColumnName = pColumnName; mSearchColumnName = pColumnName; mColumnType = pColumnType; } /** * Accessor for the logical name of this Column.<p> * <p/> * While this name can be equal to the ColumnName, it does not need * to be, it could be the name of an Object's attribute that is mapped * to this column by an OR mapper. In any case, this name is what * is used/displayed by the specific <b>WhereClause</b>'s toString() * method.<p> * * @return logical name of this Column.<p> * * @see WhereClause#toString() */ @Override public String getName() { return mName; } /** * Accessor for the <b>actual</b> SQL Column Name.<p> * <p/> * This ColumnName MUST match that declared in the SQL Table Meta-data, * as it is used/displayed by the specific <b>WhereClause</b>'s toSQL() * method.<p> * * @return SQL Column Name.<p> * * @see WhereClause#toSQL() */ @Override public String getColumnName() { return mColumnName; } /** * Return <code>true</code> if the SearchColumn should be a seperate Column.<p> * <p/> * * @see WhereClause#toSQL() */ @Override public boolean hasSearchColumn() { return mHasSearchColumn; } /** * Accessor for the SQL Column Name that should <b>actually</b> be used for Searching.<p> * <p/> * Normally this has the same value as <code>getColumnName</code>. If it doesn't, then it * indicates that there is a secondary column that needs to be maintained just for searching.<p> * <p/> * This ColumnName MUST match that declared in the SQL Table Meta-data, * as it is used/displayed by the specific <b>WhereClause</b>'s toSQL() * method.<p> * * @return SQL Column Name.<p> * * @see WhereClause#toSQL() */ @Override public String getSearchColumnName() { return mSearchColumnName; } /** * Accessor for the <i>Java</i> Class <i>type</i> of the SQL Column.<p> * <p/> * The primary purpose of this method (within the <b>WhereClause</b> * infrastructure) is to indicate (to the toString() and toSQL() methods) * how the values should be formatted/displayed. (e.g. that <b>String</b>s * must be quote safe and non-<b>String</b>s must use thier toString() * method to format)<p> * * @return <i>Java</i> Class <i>type</i> of the SQL Column.<p> * * @see WhereClause#toSQL() * @see WhereClause#toString() */ @Override public Class getColumnType() { return mColumnType; } } |