1 28 package net.sf.jasperreports.engine.base; 29 30 import java.io.Serializable ; 31 32 import net.sf.jasperreports.engine.JRConstants; 33 import net.sf.jasperreports.engine.JRQuery; 34 import net.sf.jasperreports.engine.JRQueryChunk; 35 import net.sf.jasperreports.engine.query.JRJdbcQueryExecuterFactory; 36 37 38 42 public class JRBaseQuery implements JRQuery, Serializable 43 { 44 45 46 49 private static final long serialVersionUID = JRConstants.SERIAL_VERSION_UID; 50 51 54 private JRQueryChunk[] chunks = null; 55 56 protected String language = JRJdbcQueryExecuterFactory.QUERY_LANGUAGE_SQL; 57 58 59 62 protected JRBaseQuery() 63 { 64 } 65 66 67 70 protected JRBaseQuery(JRQuery query, JRBaseObjectFactory factory) 71 { 72 factory.put(query, this); 73 74 75 JRQueryChunk[] jrChunks = query.getChunks(); 76 if (jrChunks != null && jrChunks.length > 0) 77 { 78 chunks = new JRQueryChunk[jrChunks.length]; 79 for(int i = 0; i < chunks.length; i++) 80 { 81 chunks[i] = factory.getQueryChunk(jrChunks[i]); 82 } 83 } 84 85 language = query.getLanguage(); 86 } 87 88 89 92 public JRQueryChunk[] getChunks() 93 { 94 return this.chunks; 95 } 96 97 98 101 public String getText() 102 { 103 String text = ""; 104 105 JRQueryChunk[] cks = this.getChunks(); 106 if (cks != null && cks.length > 0) 107 { 108 StringBuffer sbuffer = new StringBuffer (); 109 110 for(int i = 0; i < cks.length; i++) 111 { 112 switch(cks[i].getType()) 113 { 114 case JRQueryChunk.TYPE_PARAMETER : 115 { 116 sbuffer.append("$P{"); 117 sbuffer.append( cks[i].getText() ); 118 sbuffer.append("}"); 119 break; 120 } 121 case JRQueryChunk.TYPE_PARAMETER_CLAUSE : 122 { 123 sbuffer.append("$P!{"); 124 sbuffer.append( cks[i].getText() ); 125 sbuffer.append("}"); 126 break; 127 } 128 case JRQueryChunk.TYPE_TEXT : 129 default : 130 { 131 sbuffer.append( cks[i].getText() ); 132 break; 133 } 134 } 135 } 136 137 text = sbuffer.toString(); 138 } 139 140 return text; 141 } 142 143 144 public String getLanguage() 145 { 146 return language; 147 } 148 149 150 } 151 | Popular Tags |