first commit
This commit is contained in:
140
hrmsEjb/net/sf/jasperreports/engine/design/JRDesignQuery.java
Normal file
140
hrmsEjb/net/sf/jasperreports/engine/design/JRDesignQuery.java
Normal file
@@ -0,0 +1,140 @@
|
||||
package net.sf.jasperreports.engine.design;
|
||||
|
||||
import java.beans.PropertyChangeListener;
|
||||
import java.beans.PropertyChangeSupport;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import net.sf.jasperreports.engine.JRQueryChunk;
|
||||
import net.sf.jasperreports.engine.base.JRBaseQuery;
|
||||
import net.sf.jasperreports.engine.design.events.JRChangeEventsSupport;
|
||||
import net.sf.jasperreports.engine.design.events.JRPropertyChangeSupport;
|
||||
import net.sf.jasperreports.engine.util.JRQueryChunkHandler;
|
||||
import net.sf.jasperreports.engine.util.JRQueryParser;
|
||||
|
||||
public class JRDesignQuery extends JRBaseQuery implements JRChangeEventsSupport {
|
||||
private transient JRPropertyChangeSupport propSupport;
|
||||
|
||||
private static final long serialVersionUID = 10200L;
|
||||
|
||||
public static final String PROPERTY_LANGUAGE = "language";
|
||||
|
||||
public static final String PROPERTY_TEXT = "text";
|
||||
|
||||
protected List chunks = new ArrayList();
|
||||
|
||||
private final transient JRQueryChunkHandler chunkAdder = new JRQueryChunkHandler() {
|
||||
private final JRDesignQuery this$0;
|
||||
|
||||
public void handleParameterChunk(String text) {
|
||||
JRDesignQuery.this.addParameterChunk(text);
|
||||
}
|
||||
|
||||
public void handleParameterClauseChunk(String text) {
|
||||
JRDesignQuery.this.addParameterClauseChunk(text);
|
||||
}
|
||||
|
||||
public void handleTextChunk(String text) {
|
||||
JRDesignQuery.this.addTextChunk(text);
|
||||
}
|
||||
|
||||
public void handleClauseChunk(String[] tokens) {
|
||||
JRDesignQuery.this.addClauseChunk(tokens);
|
||||
}
|
||||
};
|
||||
|
||||
public JRQueryChunk[] getChunks() {
|
||||
JRQueryChunk[] chunkArray = null;
|
||||
if (this.chunks != null && this.chunks.size() > 0) {
|
||||
chunkArray = new JRQueryChunk[this.chunks.size()];
|
||||
this.chunks.toArray((Object[])chunkArray);
|
||||
}
|
||||
return chunkArray;
|
||||
}
|
||||
|
||||
public void setChunks(List chunks) {
|
||||
this.chunks = chunks;
|
||||
}
|
||||
|
||||
public void addChunk(JRDesignQueryChunk chunk) {
|
||||
this.chunks.add(chunk);
|
||||
}
|
||||
|
||||
public void addTextChunk(String text) {
|
||||
JRDesignQueryChunk chunk = new JRDesignQueryChunk();
|
||||
chunk.setType((byte)1);
|
||||
chunk.setText(text);
|
||||
this.chunks.add(chunk);
|
||||
}
|
||||
|
||||
public void addParameterChunk(String text) {
|
||||
JRDesignQueryChunk chunk = new JRDesignQueryChunk();
|
||||
chunk.setType((byte)2);
|
||||
chunk.setText(text);
|
||||
this.chunks.add(chunk);
|
||||
}
|
||||
|
||||
public void addParameterClauseChunk(String text) {
|
||||
JRDesignQueryChunk chunk = new JRDesignQueryChunk();
|
||||
chunk.setType((byte)3);
|
||||
chunk.setText(text);
|
||||
this.chunks.add(chunk);
|
||||
}
|
||||
|
||||
public void addClauseChunk(String[] tokens) {
|
||||
JRDesignQueryChunk chunk = new JRDesignQueryChunk();
|
||||
chunk.setType((byte)4);
|
||||
chunk.setTokens(tokens);
|
||||
this.chunks.add(chunk);
|
||||
}
|
||||
|
||||
public void setText(String text) {
|
||||
Object old = getText();
|
||||
this.chunks = new ArrayList();
|
||||
JRQueryParser.instance().parse(text, this.chunkAdder);
|
||||
getEventSupport().firePropertyChange("text", old, getText());
|
||||
}
|
||||
|
||||
public void setLanguage(String language) {
|
||||
String oldValue = this.language;
|
||||
this.language = language;
|
||||
getPropertyChangeSupport().firePropertyChange("language", oldValue, this.language);
|
||||
}
|
||||
|
||||
public JRPropertyChangeSupport getEventSupport() {
|
||||
synchronized (this) {
|
||||
if (this.propSupport == null)
|
||||
this.propSupport = new JRPropertyChangeSupport(this);
|
||||
}
|
||||
return this.propSupport;
|
||||
}
|
||||
|
||||
protected PropertyChangeSupport getPropertyChangeSupport() {
|
||||
return (PropertyChangeSupport)getEventSupport();
|
||||
}
|
||||
|
||||
public void addPropertyChangeListener(PropertyChangeListener l) {
|
||||
getPropertyChangeSupport().addPropertyChangeListener(l);
|
||||
}
|
||||
|
||||
public void addPropertyChangeListener(String propName, PropertyChangeListener l) {
|
||||
getPropertyChangeSupport().addPropertyChangeListener(propName, l);
|
||||
}
|
||||
|
||||
public void removePropertyChangeListener(PropertyChangeListener l) {
|
||||
getPropertyChangeSupport().removePropertyChangeListener(l);
|
||||
}
|
||||
|
||||
public void removePropertyChangeListener(String propName, PropertyChangeListener l) {
|
||||
getPropertyChangeSupport().removePropertyChangeListener(propName, l);
|
||||
}
|
||||
|
||||
public Object clone() {
|
||||
JRDesignQuery clone = (JRDesignQuery)super.clone();
|
||||
if (this.chunks != null) {
|
||||
clone.chunks = new ArrayList(this.chunks.size());
|
||||
for (int i = 0; i < this.chunks.size(); i++)
|
||||
clone.chunks.add(((JRQueryChunk)this.chunks.get(i)).clone());
|
||||
}
|
||||
return clone;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user