56 lines
1.6 KiB
Java
56 lines
1.6 KiB
Java
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;
|
|
}
|
|
}
|