001: package de.webman.form.db.queries;
002:
003: import java.sql.Connection;
004: import com.teamkonzept.db.TKPrepQuery;
005: import de.webman.form.db.FieldAttributeConstants;
006: import de.webman.form.db.FormConstants;
007:
008: /**
009: * Selects the dependency state of the specified form definition.
010: * <TABLE>
011: * <TR>
012: * <TD><B>Order</B></TD>
013: * <TD><B>Name</B></TD>
014: * <TD><B>Type</B></TD>
015: * </TR>
016: * <TR>
017: * <TD COLSPAN="3"><I>Parameters</I></TD>
018: * </TR>
019: * <TR>
020: * <TD><TT>1</TT></TD>
021: * <TD><TT>de.webman.form.db.FormConstants.FORM_ID</TT></TD>
022: * <TD><TT>java.lang.Integer</TT></TD>
023: * </TR>
024: * <TR>
025: * <TD COLSPAN="3"><I>Results</I></TD>
026: * </TR>
027: * <TR>
028: * <TD><TT>1</TT></TD>
029: * <TD><TT>'1'</TT></TD>
030: * <TD><TT>java.lang.Integer</TT></TD>
031: * </TR>
032: * </TABLE>
033: *
034: * @author $Author: uli $
035: * @version $Revision: 1.1 $
036: */
037: public class FormDepends extends TKPrepQuery {
038:
039: // Constants.
040:
041: /**
042: * The preparation state.
043: */
044: private final static boolean IS_PREPARED = true;
045:
046: /**
047: * The parameter order.
048: */
049: private final static String[] PARAMETER_ORDER = {
050: FieldAttributeConstants.COLUMN_NAMES[FieldAttributeConstants.VALUE],
051: FormConstants.COLUMN_NAMES[FormConstants.FORM_ID],
052: FormConstants.COLUMN_NAMES[FormConstants.FORM_ID],
053: FormConstants.COLUMN_NAMES[FormConstants.FORM_ID] };
054:
055: /**
056: * The parameter types.
057: */
058: private final static Object[][] PARAMETER_TYPES = {
059: {
060: FieldAttributeConstants.COLUMN_NAMES[FieldAttributeConstants.VALUE],
061: FieldAttributeConstants.COLUMN_TYPES[FieldAttributeConstants.VALUE] },
062: { FormConstants.COLUMN_NAMES[FormConstants.FORM_ID],
063: FormConstants.COLUMN_TYPES[FormConstants.FORM_ID] },
064: { FormConstants.COLUMN_NAMES[FormConstants.FORM_ID],
065: FormConstants.COLUMN_TYPES[FormConstants.FORM_ID] },
066: { FormConstants.COLUMN_NAMES[FormConstants.FORM_ID],
067: FormConstants.COLUMN_TYPES[FormConstants.FORM_ID] } };
068:
069: /**
070: * The relevance state.
071: */
072: private final static boolean[] SET_RELEVANTS = { true };
073:
074: /**
075: * The SQL statement.
076: */
077: private final static String SQL_STRING = "SELECT 1 FROM FIELD_ATTRIBUTE WHERE NAME = 'FORM_ID' AND VALUE = ? "
078: + "UNION "
079: + "SELECT 1 FROM CONTENT_TREE WHERE CONTENT_FORM = ? "
080: + "UNION "
081: + "SELECT 1 FROM PRESENTATION_CONTENT WHERE FORM_ID = ? "
082: + "UNION "
083: + "SELECT 1 FROM STRUCTURED_CONTENT WHERE FORM_ID = ? ";
084:
085: // Implementation of 'com.teamkonzept.db.TKQuery'
086:
087: /**
088: * Initializes the query with the given connection.
089: *
090: * @param connection the connection.
091: */
092: public void initQuery(Connection connection) {
093: super .initQuery(connection, IS_PREPARED, PARAMETER_ORDER,
094: PARAMETER_TYPES, SET_RELEVANTS, SQL_STRING);
095: }
096:
097: /**
098: * Sets a query parameter.
099: *
100: * @param name the parameter name.
101: * @param value the parameter value.
102: */
103: public final void setQueryParams(String name, Object value) {
104: if (FormConstants.COLUMN_NAMES[FormConstants.FORM_ID]
105: .equals(name)) {
106: super
107: .setQueryParams(
108: FieldAttributeConstants.COLUMN_NAMES[FieldAttributeConstants.VALUE],
109: value != null ? value.toString()
110: : (String) null);
111: }
112:
113: super.setQueryParams(name, value);
114: }
115:
116: }
|