001: package org.apache.ojb.broker.query;
002:
003: /* Copyright 2002-2005 The Apache Software Foundation
004: *
005: * Licensed under the Apache License, Version 2.0 (the "License");
006: * you may not use this file except in compliance with the License.
007: * You may obtain a copy of the License at
008: *
009: * http://www.apache.org/licenses/LICENSE-2.0
010: *
011: * Unless required by applicable law or agreed to in writing, software
012: * distributed under the License is distributed on an "AS IS" BASIS,
013: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014: * See the License for the specific language governing permissions and
015: * limitations under the License.
016: */
017:
018: import java.util.Map;
019:
020: /**
021: * Query for Reports.
022: * Supports selection of a subset of attributes.
023: *
024: * @author <a href="mailto:jbraeuchi@gmx.ch">Jakob Braeuchi</a>
025: * @version $Id: ReportQueryByCriteria.java,v 1.10.2.2 2005/12/21 22:27:09 tomdz Exp $
026: */
027: public class ReportQueryByCriteria extends QueryByCriteria implements
028: ReportQuery {
029: // define the attributes (columns) to be selected for reports
030: private String[] m_attributes = null;
031:
032: // define the Jdbc-Types of the columns to be selected for reports
033: private int[] m_jdbcTypes = null;
034:
035: // define the additional attributes (columns) to be used for the join
036: private String[] m_joinAttributes = null;
037:
038: // attribute -> FieldDescriptor
039: private Map m_attrToFld = null;
040:
041: /**
042: * Constructor for ReportQueryByCriteria.
043: * @param targetClass
044: * @param attributes[]
045: * @param criteria
046: * @param distinct
047: */
048: public ReportQueryByCriteria(Class targetClass,
049: String[] attributes, Criteria criteria, boolean distinct) {
050: super (targetClass, criteria, distinct);
051: setAttributes(attributes);
052: }
053:
054: /**
055: * Constructor for ReportQueryByCriteria.
056: * @param targetClass
057: * @param attributes[]
058: * @param criteria
059: */
060: public ReportQueryByCriteria(Class targetClass,
061: String[] attributes, Criteria criteria) {
062: this (targetClass, attributes, criteria, false);
063: }
064:
065: /**
066: * Constructor for ReportQueryByCriteria.
067: * @param targetClass
068: * @param criteria
069: */
070: public ReportQueryByCriteria(Class targetClass, Criteria criteria) {
071: this (targetClass, null, criteria, false);
072: }
073:
074: /**
075: * Constructor for ReportQueryByCriteria.
076: * @param targetClass
077: * @param criteria
078: * @param distinct
079: */
080: public ReportQueryByCriteria(Class targetClass, Criteria criteria,
081: boolean distinct) {
082: this (targetClass, null, criteria, distinct);
083: }
084:
085: /**
086: * Gets the columns.
087: * @return Returns a String[]
088: * @deprecated use getAttributes()
089: */
090: public String[] getColumns() {
091: return getAttributes();
092: }
093:
094: /**
095: * Sets the columns.
096: * @param columns The columns to set
097: * @deprecated use setAttributes()
098: */
099: public void setColumns(String[] columns) {
100: setAttributes(columns);
101: }
102:
103: /**
104: * Gets the attributes to be selected.</br>
105: * Attributes are translated into db-columns
106: * @return the attributes to be selected
107: */
108: public String[] getAttributes() {
109: return m_attributes;
110: }
111:
112: /**
113: * Sets the attributes to be selected.</br>
114: * Attributes are translated into db-columns
115: * @param attributes The attributes to set
116: */
117: public void setAttributes(String[] attributes) {
118: m_attributes = attributes;
119: }
120:
121: /**
122: * @return Returns the jdbcTypes.
123: */
124: public int[] getJdbcTypes() {
125: return m_jdbcTypes;
126: }
127:
128: /**
129: * @param jdbcTypes The jdbcTypes to set.
130: */
131: public void setJdbcTypes(int[] jdbcTypes) {
132: this .m_jdbcTypes = jdbcTypes;
133: }
134:
135: /**
136: * @return Returns the joinAttributes.
137: */
138: public String[] getJoinAttributes() {
139: return m_joinAttributes;
140: }
141:
142: /**
143: * @param joinAttributes The joinAttributes to set.
144: */
145: public void setJoinAttributes(String[] joinAttributes) {
146: m_joinAttributes = joinAttributes;
147: }
148:
149: /**
150: * @see java.lang.Object#toString()
151: */
152: public String toString() {
153: String[] cols = getAttributes();
154: StringBuffer buf = new StringBuffer("ReportQuery from ");
155: buf.append(getSearchClass() + " ");
156: if (cols != null) {
157: for (int i = 0; i < cols.length; i++) {
158: buf.append(cols[i] + " ");
159: }
160: }
161: if (getCriteria() != null && !getCriteria().isEmpty()) {
162: buf.append(" where " + getCriteria());
163: }
164:
165: return buf.toString();
166: }
167:
168: public Map getAttributeFieldDescriptors() {
169: return m_attrToFld;
170: }
171:
172: public void setAttributeFieldDescriptors(Map attrToFld) {
173: m_attrToFld = attrToFld;
174: }
175:
176: }
|