Package org.uengine.processdesigner.mapper.transformers

Source Code of org.uengine.processdesigner.mapper.transformers.MaxTransformer

package org.uengine.processdesigner.mapper.transformers;

import java.util.Map;

import org.metaworks.FieldDescriptor;
import org.metaworks.Type;
import org.metaworks.inputter.SelectInput;
import org.uengine.kernel.ProcessInstance;
import org.uengine.kernel.UEngineException;
import org.uengine.processdesigner.mapper.Transformer;

public class MaxTransformer extends Transformer{
 
  public MaxTransformer(){
    setName("Max");
  }
 
  public static void metaworksCallback_changeMetadata(Type type){
    FieldDescriptor fd = type.getFieldDescriptor("InputType");
    fd.setInputter(new SelectInput(
      new Object[]{
        "Double",
        "Long",
        "String"
      },
      new Object[]{ 'D', 'L', 'S' }
    ));
  }
 
  public String[] getInputArguments() {
    return (new String[]{"value1", "value2"});
  }

  public Object transform(ProcessInstance instance, Map parameterMap,  Map options) throws UEngineException {
    Object maxValue = null;
    String[] inputArgs = getInputArguments();
   
    for(int i=0; i<inputArgs.length; i++){
      Object value = (Object) parameterMap.get(inputArgs[i]);
      try{
        switch (inputType) {
          case 'L':
            value = (long) Double.parseDouble(value.toString());
            break;
          case 'D':
            value = Double.parseDouble(value.toString());
            break;
          default:
            value = String.valueOf(value);
            break;
        }
      }catch (Exception e) {
        throw new UEngineException(e.getMessage(), e);
      }
      Comparable cmpVal = (Comparable) value;
      if(maxValue == null || cmpVal.compareTo(maxValue) > 0) maxValue = cmpVal;     
    }

    return maxValue;
  }
 
  char inputType;
    public char getInputType() {
      return inputType;
    }
 
    public void setInputType(char inputType) {
      this.inputType = inputType;
    }

}
TOP

Related Classes of org.uengine.processdesigner.mapper.transformers.MaxTransformer

TOP
Copyright © 2018 www.massapi.com. 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.