package net.sf.jasperreports.engine.base; import java.io.Serializable; import net.sf.jasperreports.engine.JRQuery; import net.sf.jasperreports.engine.JRQueryChunk; import net.sf.jasperreports.engine.JRRuntimeException; import net.sf.jasperreports.engine.util.JRQueryParser; public class JRBaseQuery implements JRQuery, Serializable { private static final long serialVersionUID = 10200L; private JRQueryChunk[] chunks = null; protected String language = "sql"; protected JRBaseQuery() {} protected JRBaseQuery(JRQuery query, JRBaseObjectFactory factory) { factory.put(query, this); JRQueryChunk[] jrChunks = query.getChunks(); if (jrChunks != null && jrChunks.length > 0) { this.chunks = new JRQueryChunk[jrChunks.length]; for (int i = 0; i < this.chunks.length; i++) this.chunks[i] = factory.getQueryChunk(jrChunks[i]); } this.language = query.getLanguage(); } public JRQueryChunk[] getChunks() { return this.chunks; } public String getText() { return JRQueryParser.instance().asText(getChunks()); } public String getLanguage() { return this.language; } public Object clone() { JRBaseQuery clone = null; try { clone = (JRBaseQuery)super.clone(); } catch (CloneNotSupportedException e) { throw new JRRuntimeException(e); } if (this.chunks != null) { clone.chunks = new JRQueryChunk[this.chunks.length]; for (int i = 0; i < this.chunks.length; i++) clone.chunks[i] = (JRQueryChunk)this.chunks[i].clone(); } return clone; } }