Package it.eng.spagobi.engines.qbe.query

Examples of it.eng.spagobi.engines.qbe.query.TemplateBuilder


    String jpaQueryStr = null;
    String sqlQuery = null;
    SQLFieldsReader fieldsReader = null;
    Vector extractedFields = null;
    Map params = null;
    TemplateBuilder templateBuilder = null;
    String templateContent = null;
    File reportFile = null;
    ReportRunner runner = null;
    boolean isFormEngineInstance = false;
   
    logger.debug("IN");
   
    try {
      super.service(request, response)
     
      mimeType = getAttributeAsString( MIME_TYPE );
      logger.debug(MIME_TYPE + ": " + mimeType);   
      responseType = getAttributeAsString( RESPONSE_TYPE );
      logger.debug(RESPONSE_TYPE + ": " + responseType);
         
      Assert.assertNotNull(getEngineInstance(), "It's not possible to execute " + this.getActionName() + " service before having properly created an instance of EngineInstance class");
     
      transaction = (getEngineInstance().getDataSource()).getTransaction()
      transaction.open();
     
      fileExtension = MimeUtils.getFileExtension( mimeType );
      writeBackResponseInline = RESPONSE_TYPE_INLINE.equalsIgnoreCase(responseType);
     
      isFormEngineInstance = getEngineInstance().getTemplate().getProperty("formJSONTemplate") != null;
      if (!isFormEngineInstance) {
        // case of standard QBE
       
        Assert.assertNotNull(getEngineInstance().getActiveQuery(), "Query object cannot be null in oder to execute " + this.getActionName() + " service");
        Assert.assertTrue(getEngineInstance().getActiveQuery().isEmpty() == false, "Query object cannot be empty in oder to execute " + this.getActionName() + " service");
           
        Assert.assertNotNull(mimeType, "Input parameter [" + MIME_TYPE + "] cannot be null in oder to execute " + this.getActionName() + " service");   
        Assert.assertTrue( MimeUtils.isValidMimeType( mimeType ) == true, "[" + mimeType + "] is not a valid value for " + MIME_TYPE + " parameter");
       
        Assert.assertNotNull(responseType, "Input parameter [" + RESPONSE_TYPE + "] cannot be null in oder to execute " + this.getActionName() + " service");   
        Assert.assertTrue( RESPONSE_TYPE_INLINE.equalsIgnoreCase(responseType) || RESPONSE_TYPE_ATTACHMENT.equalsIgnoreCase(responseType), "[" + responseType + "] is not a valid value for " + RESPONSE_TYPE + " parameter");
       
        statement = getEngineInstance().getDataSource().createStatement( getEngineInstance().getActiveQuery() );   
        //logger.debug("Parametric query: [" + statement.getQueryString() + "]");
       
        statement.setParameters( getEnv() );
        jpaQueryStr = statement.getQueryString();
        logger.debug("Executable HQL/JPQL query: [" + jpaQueryStr + "]");
       
        sqlQuery = statement.getSqlQueryString();
        Assert.assertNotNull(sqlQuery, "The SQL query is needed while exporting results.");
       
      } else {
        // case of FormEngine
       
        sqlQuery = this.getAttributeFromSessionAsString(ExecuteDetailQueryAction.LAST_DETAIL_QUERY);
        Assert.assertNotNull(sqlQuery, "The detail query was not found, maybe you have not execute the detail query yet.");
      }
      logger.debug("Executable SQL query: [" + sqlQuery + "]");
     
      logger.debug("Exctracting fields ...");
      fieldsReader = new SQLFieldsReader(sqlQuery, transaction.getSQLConnection());
      try {
        extractedFields = fieldsReader.readFields();
      } catch (Exception e) {
        logger.debug("Impossible to extract fields from query");
        throw new SpagoBIEngineException("Impossible to extract fields from query: " + jpaQueryStr, e);
      }
      logger.debug("Fields extracted succesfully");
     
      Assert.assertTrue(getEngineInstance().getActiveQuery().getDataMartSelectFields(true).size()+getEngineInstance().getActiveQuery().getInLineCalculatedSelectFields(true).size() == extractedFields.size(),
          "The number of fields extracted from query resultset cannot be different from the number of fields specified into the query select clause");
     
      decorateExtractedFields( extractedFields );
     
      params = new HashMap();
      params.put("pagination", getPaginationParamVaue(mimeType) );
     
     
      SourceBean config = (SourceBean)ConfigSingleton.getInstance();   
      SourceBean baseTemplateFileSB = (SourceBean)config.getAttribute("QBE.TEMPLATE-BUILDER.BASE-TEMPLATE");
      String baseTemplateFileStr = null;
      if(baseTemplateFileSB != null) baseTemplateFileStr = baseTemplateFileSB.getCharacters();
      File baseTemplateFile = null;
      if(baseTemplateFileStr != null) baseTemplateFile = new File(baseTemplateFileStr);
     
      templateBuilder = new TemplateBuilder(sqlQuery, extractedFields, params, baseTemplateFile);
      templateContent = templateBuilder.buildTemplate();
     
      if( !"text/jrxml".equalsIgnoreCase( mimeType ) ) {
        if( "application/vnd.ms-excel".equalsIgnoreCase( mimeType ) ) {
         
          IDataStore dataStore = null;
View Full Code Here

TOP

Related Classes of it.eng.spagobi.engines.qbe.query.TemplateBuilder

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.