Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * This program is free software; you can redistribute it and/or modify it under the 
   * terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software 
   * Foundation.
   *
   * You should have received a copy of the GNU Lesser General Public License along with this 
   * program; if not, you can obtain a copy at http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html 
   * or from the Free Software Foundation, Inc., 
   * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  *
  * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 
  * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  * See the GNU Lesser General Public License for more details.
  *
  * Copyright 2005 - 2009 Pentaho Corporation.  All rights reserved.
  *
  *
  * @created Aug 17, 2005 
  * @author James Dixon
  */
 
 package org.pentaho.platform.plugin.action.builtin;
 
 import java.util.Set;
 
 import  org.pentaho.platform.api.engine.IActionParameter;
 import  org.pentaho.platform.api.engine.IActionSequenceResource;
 import  org.pentaho.platform.api.repository.IContentItem;
 import  org.pentaho.platform.engine.services.solution.ComponentBase;
 import  org.pentaho.platform.util.messages.LocaleHelper;
 
 public class TemplateComponent extends ComponentBase {
 
   private final static String TEMPLATE = "template"//$NON-NLS-1$
 
  
 
   private static final long serialVersionUID = 4383466190328580251L;
 
   @Override
   public Log getLogger() {
     return LogFactory.getLog(TemplateComponent.class);
   }
 
   @Override
   protected boolean validateAction() {
 
     // see if we have a template defined
     TemplateMsgAction actionDefinition = (TemplateMsgActiongetActionDefinition();
 
     boolean templateOk = false;
     if (null != actionDefinition.getTemplate()) {
       templateOk = true;
     } else if (isDefinedResource(.)) {
       templateOk = true;
     }
 
     if (!templateOk) {
       error(Messages.getString("Template.ERROR_0001_TEMPLATE_NOT_DEFINED")); //$NON-NLS-1$
       return false;
     }
     Set outputs = getOutputNames();
     if ((outputs == null) || (outputs.size() == 0) || (outputs.size() > 1)) {
       error(Messages.getString("Template.ERROR_0002_OUTPUT_COUNT_WRONG")); //$NON-NLS-1$
       return false;
     }
     return true;
   }
 
   @Override
   protected boolean validateSystemSettings() {
     // nothing to do here
     return true;
   }
 
   @Override
   public void done() {
     // nothing to do here
   }
 
   @Override
   protected boolean executeAction() {
 
     try {
 
       TemplateMsgAction actionDefinition = (TemplateMsgActiongetActionDefinition();
       String template = null;
 
       template = actionDefinition.getTemplate().getStringValue();
       if ((null == template) && isDefinedResource(.)) {
         IActionSequenceResource resource = getResource("template"); //$NON-NLS-1$
         template = getResourceAsString(resource);
       }
      String outputName = (StringgetOutputNames().iterator().next();
      IActionParameter outputParam = getOutputItem(outputName);
      if (outputParam.getType().equals(IActionParameter.TYPE_CONTENT)) {
        String mimeType = actionDefinition.getMimeType().getStringValue();
        String extension = actionDefinition.getExtension().getStringValue();
        //This would prevent null values being passed as parameters to getOutputItem
        if (mimeType == null) {
          mimeType = ""//$NON-NLS-1$
        }
        if (extension == null) {
          extension = ""//$NON-NLS-1$
        }
        // Removing the null check here because if we avoid null exception it gives misleading hibernate 
        // stale data exception which has nothing to do with a report that simply reads data.        
        IContentItem outputItem = getOutputContentItem(outputNamemimeType);
        //        IContentItem outputItem = getOutputItem(outputName, mimeType, extension);
        OutputStream outputStream = outputItem.getOutputStream(getActionName());
        outputStream.write(applyInputsToFormat(template).getBytes(LocaleHelper.getSystemEncoding()));
        outputItem.closeOutputStream();
        return true;
      } else {
        setOutputValue(outputNameapplyInputsToFormat(template));
      }
      return true;
    } catch (Exception e) {
      error(Messages.getString("Template.ERROR_0004_COULD_NOT_FORMAT_TEMPLATE"), e); //$NON-NLS-1$
      return false;
    }
  }
  public boolean init() {
    // nothing to do here
    return true;
  }
New to GrepCode? Check out our FAQ X