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 2006 - 2009 Pentaho Corporation.  All rights reserved.
  *
  *
  * @created May 4, 2006 
  * @author James Dixon
  */
 
 package org.pentaho.platform.plugin.action.examples;
 
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
 import org.dom4j.Node;
 import  org.pentaho.platform.api.engine.IActionParameter;
 import  org.pentaho.platform.api.engine.IActionSequenceResource;
 import  org.pentaho.platform.api.engine.IComponent;
 import  org.pentaho.platform.api.engine.ILogger;
 import  org.pentaho.platform.api.engine.IPentahoSession;
 import  org.pentaho.platform.api.engine.IRuntimeContext;
 import  org.pentaho.platform.api.engine.ISelectionMapper;
 import  org.pentaho.platform.api.repository.IContentItem;
 import  org.pentaho.platform.api.util.IVersionHelper;
 import  org.pentaho.platform.engine.core.system.PentahoSystem;
 import  org.pentaho.platform.engine.services.solution.StandardSettings;
 
 public class ComponentImplementationExample extends Object implements IComponent {
 
   protected int loggingLevel = ILogger.UNKNOWN;
 
   public static final String LOGID_MASK1 = "{0}:{1}:{2}: "//$NON-NLS-1$
 
   public static final String LOGID_MASK2 = "{0}:{1}:{2}:{3} "//$NON-NLS-1$
 
   public static final String LOGID_SEPARATOR = ":"//$NON-NLS-1$
 
   public String EMPTYLOGID = "::: "//$NON-NLS-1$
 
   private String logId = ;
 
   protected static final boolean debug = PentahoSystem.debug;
 
   private IRuntimeContext runtimeContext;
 
   private IPentahoSession sessionContext;
 
   private String processId;
 
   private String actionName;
 
   private String instanceId;
 
   private String id;
 
   private boolean baseInitOk;
 
   private boolean componentInitOk;
 
   private Node componentDefinition;
 
 
   private HashMap settings;
 
 
   protected boolean executeAction() throws Throwable {
     // TODO add your execute code here
     return false;
   }
 
   public boolean validateAction() {
     // TODO add any validation code in here and return true
     return false;
   }
  protected boolean validateSystemSettings() {
    // TODO add any validation of system settings here and return true
    return false;
  }
  public void done() {
    // TODO add any cleanup code here
  }
  public boolean init() {
    // TODO add any initialization code and return true
    return false;
  }
  public void setLogId(final String lId) {
     = lId;
  }
  public Log getLogger() {
    return LogFactory.getLog(this.getClass());
  }
  public void genLogIdFromSession(final IPentahoSession sess) {
    genLogIdFromInfo(sess.getId() != null ? sess.getId() : ""//$NON-NLS-1$
        sess.getProcessId() != null ? sess.getProcessId() : ""//$NON-NLS-1$
        sess.getActionName() != null ? sess.getActionName() : "" //$NON-NLS-1$
    );
  }
  public void genLogIdFromInfo(final String sessIdfinal String procIdfinal String actName) {
    Object[] args = { sessIdprocIdactName };
  }
  public void genLogIdFromInfo(final String sessIdfinal String procIdfinal String actNamefinal String instId) {
    Object[] args = { sessIdprocIdactNameinstId };
  }
  /* ILogger Implementation */
  public String getObjectName() {
    return this.getClass().getName();
  }
  public int getLoggingLevel() {
    return ;
  }
  public void setLoggingLevel(final int logLevel) {
    this. = logLevel;
  }
  private List messages;
  public List getMessages() {
    return ;
  }
  public void setMessages(final List messages) {
    this. = messages;
  }
  public void trace(final String message) {
    if ( <= ILogger.TRACE) {
      if ( != null) {
        .add(Messages.getString("Message.USER_DEBUG"messagegetClass().getName())); //$NON-NLS-1$
      }
      getLogger().trace(getLogId() + message);
    }
  }
  public void debug(final String message) {
    if ( <= ILogger.DEBUG) {
      if ( != null) {
        .add(Messages.getString("Message.USER_DEBUG"messagegetClass().getName())); //$NON-NLS-1$
      }
      getLogger().debug(getLogId() + message);
    }
  }
  public void info(final String message) {
    if ( <= ILogger.INFO) {
      if ( != null) {
        .add(Messages.getString("Message.USER_INFO"messagegetClass().getName())); //$NON-NLS-1$
      }
      getLogger().info(getLogId() + message);
    }
  }
  public void warn(final String message) {
    if ( <= ILogger.WARN) {
      if ( != null) {
        .add(Messages.getString("Message.USER_WARNING"messagegetClass().getName())); //$NON-NLS-1$
      }
      getLogger().warn(getLogId() + message);
    }
  }
  public void error(final String message) {
    if ( <= ILogger.ERROR) {
      if ( != null) {
        .add(Messages.getString("Message.USER_ERROR"messagegetClass().getName())); //$NON-NLS-1$
      }
      getLogger().error(getLogId() + message);
    }
  }
  public void fatal(final String message) {
    if ( <= ILogger.FATAL) {
      if ( != null) {
        .add(Messages.getString("Message.USER_ERROR"messagegetClass().getName())); //$NON-NLS-1$
      }
      getLogger().fatal(getLogId() + message);
    }
  }
  public void trace(final String messagefinal Throwable error) {
    if ( <= ILogger.TRACE) {
      if ( != null) {
        .add(Messages.getString("Message.USER_DEBUG"messagegetClass().getName())); //$NON-NLS-1$
      }
      getLogger().trace(getLogId() + messageerror);
    }
  }
  public void debug(final String messagefinal Throwable error) {
    if ( <= ILogger.DEBUG) {
      if ( != null) {
        .add(Messages.getString("Message.USER_DEBUG"messagegetClass().getName())); //$NON-NLS-1$
      }
      getLogger().debug(getLogId() + messageerror);
    }
  }
  public void info(final String messagefinal Throwable error) {
    if ( <= ILogger.INFO) {
      if ( != null) {
        .add(Messages.getString("Message.USER_INFO"messagegetClass().getName())); //$NON-NLS-1$
      }
      getLogger().info(getLogId() + messageerror);
    }
  }
  public void warn(final String messagefinal Throwable error) {
    if ( <= ILogger.WARN) {
      if ( != null) {
        .add(Messages.getString("Message.USER_WARNING"messagegetClass().getName())); //$NON-NLS-1$
      }
      getLogger().warn(getLogId() + messageerror);
    }
  }
  public void error(final String messagefinal Throwable error) {
    if ( <= ILogger.ERROR) {
      if ( != null) {
        .add(Messages.getString("Message.USER_ERROR"messagegetClass().getName())); //$NON-NLS-1$
      }
      IVersionHelper versionHelper = PentahoSystem.get(IVersionHelper.classnull);
      getLogger().error("Error Start: Pentaho " + versionHelper.getVersionInformation(this.getClass())); //$NON-NLS-1$
      getLogger().error(getLogId() + messageerror);
      getLogger().error("Error end:"); //$NON-NLS-1$ 
    }
  }
  public void fatal(final String messagefinal Throwable error) {
    if ( <= ILogger.FATAL) {
      if ( != null) {
        .add(Messages.getString("Message.USER_ERROR"messagegetClass().getName())); //$NON-NLS-1$
      }
      IVersionHelper versionHelper = PentahoSystem.get(IVersionHelper.classnull);
      getLogger().error("Error: Pentaho " + versionHelper.getVersionInformation(this.getClass())); //$NON-NLS-1$
      getLogger().fatal(getLogId() + messageerror);
      getLogger().error("Error end:"); //$NON-NLS-1$ 
    }
  }
  public static String getUserString(final String type) {
    return Messages.getString("Message.USER_" + type); //$NON-NLS-1$
  }
  public void setInstanceId(final String instanceId) {
    this. = instanceId;
  }
  public String getInstanceId() {
    return ;
  }
  public void setActionName(final String actionName) {
    this. = actionName;
  }
  public String getActionName() {
    return ;
  }
  public void setProcessId(final String processId) {
    this. = processId;
  }
  public String getProcessId() {
    return ;
  }
  public void setComponentDefinitionMap(final Map<StringStringcomponentDefinitionMap) {
    this. = componentDefinitionMap;
  }
  public void setComponentDefinition(final Node componentDefinition) {
    this. = componentDefinition;
  }
    return ;
  }
  public void setRuntimeContext(final IRuntimeContext runtimeContext) {
    this. = runtimeContext;
  }
  public IRuntimeContext getRuntimeContext() {
    return ;
  }
  public void setSession(final IPentahoSession session) {
    this. = session;
  }
  public IPentahoSession getSession() {
    return ;
  }
  protected void saveSetting(final String namefinal Object value) {
    .put(namevalue);
  }
  protected Object getSetting(final String name) {
    return .get(name);
  }
  protected String getStringSetting(final String name) {
    Object value = .get(name);
    if (value == null) {
      return null;
    } else if (value instanceof String) {
      return (Stringvalue;
    } else {
      return value.toString();
    }
  }
  public String getLogId() {
    return ;
  }
  protected boolean isDefinedInput(final String inputName) {
    if (.getInputNames().contains(inputName)) {
      return true;
    } else {
      return getComponentSetting(inputName) != null;
    }
  }
  protected boolean isDefinedOutput(final String outputName) {
    return .getOutputNames().contains(outputName);
  }
  protected boolean isDefinedResource(final String resourceName) {
    return .getResourceNames().contains(resourceName);
  }
  public final int validate() {
     = Messages.getString("Base.CODE_LOG_ID".getHandle(), ); //$NON-NLS-1$
      debug(Messages.getString("Base.DEBUG_VALIDATING_COMPONENT")); //$NON-NLS-1$
      // grab the parameters first
    }
     = Messages.getString("Base.CODE_COMPONENT_ID"); //$NON-NLS-1$
    // now get picky about values
     = (( != null) && ( != null) && ( != null) && ( != null));
    boolean systemSettingsValidate = validateSystemSettings();
    if ( && systemSettingsValidate) {
    }
    if (getInitOk()) {
      return IRuntimeContext.RUNTIME_CONTEXT_VALIDATE_OK;
    }
    return IRuntimeContext.RUNTIME_CONTEXT_VALIDATE_FAIL;
  }
  public boolean getInitOk() {
    return  && ;
  }
  protected Set getOutputNames() {
    return .getOutputNames();
  }
  protected Set getInputNames() {
    return .getInputNames();
  }
  protected Set getResourceNames() {
    return .getResourceNames();
  }
  protected boolean feedbackAllowed() {
    return .feedbackAllowed();
  }
  protected IActionSequenceResource getResource(final String resourceName) {
    return .getResourceDefintion(resourceName);
  }
  protected InputStream getResourceInputStream(final IActionSequenceResource resourcethrows FileNotFoundException {
    return .getResourceInputStream(resource);
  }
  protected InputStream getInputStream(final String inputName) {
    return .getInputStream(inputName);
  }
  protected int getOutputPreference() {
    return .getOutputPreference();
  }
  protected IContentItem getOutputItem(final String outputNamefinal String mimeTypefinal String extension) {
    return .getOutputItem(outputNamemimeTypeextension);
  }
  protected void audit(final String messageTypefinal String messagefinal String valuefinal int duration) {
    .audit(messageTypemessagevalueduration);
  }
  protected boolean getInputBooleanValue(final String inputNamefinal boolean defaultValue) {
    String strValue = getInputStringValue(inputName);
    if (strValue == null) {
      return defaultValue;
    } else if ("true".equalsIgnoreCase(strValue)) { //$NON-NLS-1$
      return true;
    } else if ("false".equalsIgnoreCase(strValue)) { //$NON-NLS-1$
      return false;
    } else {
      return defaultValue;
    }
  }
  protected long getInputLongValue(final String inputNamefinal long defaultValue) {
    String strValue = getInputStringValue(inputName);
    if (strValue == null) {
      return defaultValue;
    }
    try {
      return Long.parseLong(strValue);
    } catch (Exception e) {
      return defaultValue;
    }
  }
  protected String getInputStringValue(final String inputName) {
    // first check to see if we have an input parameter that we can use for
    // this.
    String value = null;
    if (.getInputNames().contains(inputName)) {
      value = .getInputParameterStringValue(inputName);
    } else if (.containsKey(inputName)) {
      value = .get(inputName);
    } else {
      // now check the component node from the action definition.
      Node node = .selectSingleNode(inputName);
      if (node == null) {
        return null;
      }
      value = node.getText();
    }
    value = this.applyInputsToFormat(value);
    return value;
  }
  protected Object getInputValue(final String inputName) {
    // first check to see if we have an input parameter that we can use for
    // this.
    if (.getInputNames().contains(inputName)) {
      return .getInputParameterValue(inputName);
    }
    // now check the component node from the action definition.
    Node node = .selectSingleNode(inputName);
    if (node == null) {
      return null;
    }
    return node.getText();
  }
  private String getComponentSetting(final String path) {
    // first check to see if we have an input parameter that we can use for
    // this.
    if (.getInputNames().contains(path)) {
      return .getInputParameterStringValue(path);
    }
    // now check the component node from the action definition.
    if (node == null) {
      return null;
    }
    return node.getText();
  }
  public void promptNeeded() {
    .promptNeeded();
  }
  public void promptNow() {
    .promptNow();
  }
  public String getResourceAsString(final IActionSequenceResource resource) {
    try {
      return .getResourceAsString(resource);
    } catch (Exception e) {
      return null;
    }
  }
  public String getInitFailMessage() {
    return null;
  }
  public String createNewInstance(final boolean persistedfinal Map parametersfinal boolean forceImmediateWrite) {
    return .createNewInstance(persistedparametersforceImmediateWrite);
  }
  public void inputMissingError(final String paramName) {
    error(Messages.getErrorString("ComponentBase.ERROR_0003_INPUT_PARAM_MISSING"paramName)); //$NON-NLS-1$
  }
  public void outputMissingError(final String paramName) {
    error(Messages.getErrorString("ComponentBase.ERROR_0004_OUTPUT_PARAM_MISSING"paramName)); //$NON-NLS-1$
  }
  public void resourceMissingError(final String paramName) {
    error(Messages.getErrorString("ComponentBase.ERROR_0005_RESOURCE_PARAM_MISSING"paramName)); //$NON-NLS-1$
  }
  public void resourceComponentSettingError(final String paramName) {
    error(Messages.getErrorString("ComponentBase.ERROR_0006_COMPONENT_SETTING_PARAM_MISSING"paramName)); //$NON-NLS-1$
  }
  public int execute() {
    // see if we have a custom XSL for the parameter page, if required
    String xsl = getComponentSetting("xsl"); //$NON-NLS-1$
    if (xsl != null) {
      .setParameterXsl(xsl);
    }
    // see if we have a target window for the output
    String target = getComponentSetting("target"); //$NON-NLS-1$
    if (target != null) {
      .setParameterTarget(target);
    }
    if ( == ILogger.UNKNOWN) {
      warn(Messages.getString("Base.WARNING_LOGGING_LEVEL_UNKNOWN")); //$NON-NLS-1$
       = ILogger.DEBUG;
    }
    int result = IRuntimeContext.RUNTIME_STATUS_FAILURE;
    if ( == null) {
      error(Messages.getErrorString("Base.ERROR_0001_INVALID_SESSION")); //$NON-NLS-1$
      return result;
    }
      debug(Messages.getString("Base.DEBUG_VALIDATION_RESULT") + getInitOk()); //$NON-NLS-1$
    }
    if (!getInitOk()) {
      return result;
    }
    try {
      result = (executeAction() ? IRuntimeContext.RUNTIME_STATUS_SUCCESS : IRuntimeContext.RUNTIME_STATUS_FAILURE);
      if ((result == IRuntimeContext.RUNTIME_STATUS_SUCCESS) && .isPromptPending()) {
        // see if we need to prevent further components from executing
        if (isDefinedInput(StandardSettings.HANDLE_ALL_PROMPTS)) {
          .promptNow();
        }
      }
    } catch (Throwable e) {
      error(Messages.getErrorString("Base.ERROR_0002_EXECUTION_FAILED"), e); //$NON-NLS-1$
    }
    return result;
  }
  public String getId() {
    return ;
  }
  public String getActionTitle() {
    return .getActionTitle();
  }
  protected IContentItem getOutputContentItem(final String mimeType) {
    return .getOutputContentItem(mimeType);
  }
  protected IContentItem getOutputContentItem(final String outputNamefinal String mimeType) {
    return .getOutputContentItem(outputNamemimeType);
  }
  protected void setOutputValue(final String outputNamefinal Object value) {
    .setOutputValue(outputNamevalue);
  }
  protected OutputStream getDefaultOutputStream(final String mimeType) {
    IContentItem contentItem = .getOutputContentItem(mimeType);
    if (contentItem != null) {
      try {
        return contentItem.getOutputStream(getActionName());
      } catch (Exception e) {
      }
    }
    return null;
  }
  protected String applyInputsToFormat(final String format) {
    return .applyInputsToFormat(format);
  }
  protected IActionParameter getOutputItem(final String outputName) {
    return .getOutputParameter(outputName);
  }
  protected String getSolutionName() {
    return .getSolutionName();
  }
  protected String getSolutionPath() {
    return .getSolutionPath();
  }
  protected IActionParameter getInputParameter(final String parameterName) {
    return .getInputParameter(parameterName);
  }
  protected String getContentUrl(final IContentItem contentItem) {
    return .getContentUrl(contentItem);
  }
  protected boolean isPromptPending() {
    return .isPromptPending();
  }
  protected void setFeedbackMimeType(final String mimeType) {
    IContentItem feedbackContentItem = .getFeedbackContentItem();
    feedbackContentItem.setMimeType(mimeType);
  }
  protected void setOutputMimeType(final String mimeType) {
    IContentItem outputContentItem = .getOutputContentItem(mimeType);
    outputContentItem.setMimeType(mimeType);
  }
    IContentItem feedbackContentItem = .getFeedbackContentItem();
    if (feedbackContentItem != null) {
      try {
        return feedbackContentItem.getOutputStream(getActionName());
      } catch (Exception e) {
      }
    }
    return null;
  }
  protected void createFeedbackParameter(final IActionParameter actionParam) {
    .createFeedbackParameter(actionParam);
    .promptNeeded();
  }
  protected void createFeedbackParameter(final ISelectionMapper selMapfinal String fieldName,
      final Object defaultValues) {
    .createFeedbackParameter(selMapfieldNamedefaultValues);
    .promptNeeded();
  }
  protected void createFeedbackParameter(final String fieldNamefinal String displayNamefinal String hint,
      final String defaultValuefinal boolean visible) {
    .createFeedbackParameter(fieldNamedisplayNamehintdefaultValuevisible);
    .promptNeeded();
  }
  public void createFeedbackParameter(final String fieldNamefinal String displayNamefinal String hint,
      final Object defaultValuesfinal List valuesfinal Map dispNamesfinal String displayStyle) {
        .createFeedbackParameter(fieldNamedisplayNamehintdefaultValuesvaluesdispNamesdisplayStyle);
    .promptNeeded();
  }
  protected IPentahoStreamSource getDataSource(final String parameterName) {
    return .getDataSource(parameterName);
  }
  protected IPentahoStreamSource getResourceDataSource(final IActionSequenceResource resource)
      throws FileNotFoundException {
    return .getResourceDataSource(resource);
  }
  public void setActionDefinition(final IActionDefinition actionDefinition) {
    this. = actionDefinition;
  }
    return ;
  }
New to GrepCode? Check out our FAQ X