code: static
  	public DataType getCommonDataType(DataType left, DataType right){
  
  		if((left).equals(right)){
  
  			switch(left){
  				case DOUBLE:
  				case FLOAT:
  				case INTEGER:
  					return left;
  			}
  		} else
  
  		if((DataType.DOUBLE).equals(left)){
  
  			if((DataType.FLOAT).equals(right) || (DataType.INTEGER).equals(right)){
  				return left;
  			}
  		} else
  
  		if((DataType.FLOAT).equals(left)){
  
  			if((DataType.DOUBLE).equals(right)){
  				return right;
  			} else
  
  			if((DataType.INTEGER).equals(right)){
  				return left;
  			}
  		} else
  
  		if((DataType.INTEGER).equals(left)){
  
  			if((DataType.DOUBLE).equals(right) || (DataType.FLOAT).equals(right)){
  				return right;
  			}
  		}
  
  		throw new EvaluationException("No PMML data type for the intersection of PMML data types " + left.value() + " and " + right.value());
  	}
docs: @return The least restrictive data type of two numeric data types.
  
  @see DataType#INTEGER
  @see DataType#FLOAT
  @see DataType#DOUBLE