Package org.pentaho.reporting.libraries.formula.lvalues

Examples of org.pentaho.reporting.libraries.formula.lvalues.TypeValuePair


    final Object[] args = new Object[parameterCount - 1];
    for (int i = 1; i < parameterCount; i += 1)
    {
      args[i - 1] = parameters.getValue(i);
    }
    return new TypeValuePair(TextType.TYPE, format.format(args));
  }
View Full Code Here


    long days = computeDays(parameters, typeRegistry);

    if (DateDifFunction.DAYS_CODE.equals(formatCode))
    {
      return new TypeValuePair(NumberType.GENERIC_NUMBER, new BigDecimal(days));
    }

    final Date date1 = typeRegistry.convertToDate(parameters.getType(0), parameters.getValue(0));
    final Date date2 = typeRegistry.convertToDate(parameters.getType(1), parameters.getValue(1));

    if (date1 == null || date2 == null)
    {
      throw EvaluationException.getInstance(LibFormulaErrorValue.ERROR_INVALID_ARGUMENT_VALUE);
    }

    final LocalizationContext localizationContext = context.getLocalizationContext();
    final TimeZone timeZone = localizationContext.getTimeZone();
    final Locale locale = localizationContext.getLocale();
    final GregorianCalendar calandar1 = new GregorianCalendar(timeZone, locale);
    calandar1.setTime(min(date1, date2));

    final GregorianCalendar calandar2 = new GregorianCalendar(timeZone, locale);
    calandar2.setTime(max(date1, date2));

    int sign = (date1.getTime() < date2.getTime()) ? 1 : -1;
    final long res = sign * computeDateDifference(formatCode, calandar1, calandar2, days);

    return new TypeValuePair(NumberType.GENERIC_NUMBER, new BigDecimal(res));
  }
View Full Code Here

        if (result == null ) {
            throw EvaluationException.getInstance(LibFormulaErrorValue.ERROR_INVALID_ARGUMENT_VALUE);
        }
        final double d = result.doubleValue();
       
        return new TypeValuePair(NumberType.GENERIC_NUMBER, new BigDecimal(Math.sin(d)));
    }
View Full Code Here

      throw EvaluationException.getInstance
          (LibFormulaErrorValue.ERROR_INVALID_ARGUMENT_VALUE);
    }
    if (text1 == null)
    {
      return new TypeValuePair(TextType.TYPE, text2);
    }
    if (text2 == null)
    {
      return new TypeValuePair(TextType.TYPE, text1);
    }

    return new TypeValuePair(TextType.TYPE, text1 + text2);
  }
View Full Code Here

      {
        throw EvaluationException.getInstance
            (LibFormulaErrorValue.ERROR_INVALID_ARGUMENT_VALUE);
      }
      final BigDecimal value = NumberUtil.getAsBigDecimal(number);
      return new TypeValuePair(NumberType.GENERIC_NUMBER, ZERO.subtract(value));
    }

    if(val instanceof Number)
    {
      final BigDecimal value = NumberUtil.getAsBigDecimal((Number)val);
      if (value == null)
      {
        throw EvaluationException.getInstance
            (LibFormulaErrorValue.ERROR_INVALID_ARGUMENT_VALUE);
      }
      return new TypeValuePair(type, ZERO.subtract(value));
    }

    throw EvaluationException.getInstance
        (LibFormulaErrorValue.ERROR_INVALID_ARGUMENT_VALUE);
  }
View Full Code Here

  private TypeValuePair convertToSequence(final Type targetType, final TypeValuePair valuePair)
      throws EvaluationException
  {
    if (targetType.isFlagSet(Type.NUMERIC_SEQUENCE_TYPE))
    {
      return new TypeValuePair
          (targetType, convertToNumberSequence(valuePair.getType(), valuePair.getValue(), true));
    }

    return new TypeValuePair(targetType, convertToSequence(valuePair.getType(), valuePair.getValue()));
  }
View Full Code Here

      else
      {
        final Object o = valuePair.getValue();
        if (o != null && o.getClass().isArray())
        {
          return new TypeValuePair(targetType, convertToArray(valuePair.getType(), o));
        }
        else
        {
          final Object retval = convertPlainToPlain(targetType, valuePair.getType(), valuePair.getValue());
          return new TypeValuePair(targetType, new ArrayConverterCallback(retval, targetType));
        }
      }
    }
    else if (targetType.isFlagSet(Type.SEQUENCE_TYPE))
    {
      if (valuePair.getType().isFlagSet(Type.ARRAY_TYPE))
      {
        return convertToSequence(targetType, valuePair);
      }
      else if (targetType.isFlagSet(Type.SEQUENCE_TYPE))
      {
        return valuePair;
      }
      else
      {
        final Object retval = convertPlainToPlain(targetType, valuePair.getType(), valuePair.getValue());
        final ArrayConverterCallback converterCallback = new ArrayConverterCallback(retval, targetType);
        return convertToSequence(targetType, new TypeValuePair(AnyType.ANY_ARRAY, converterCallback));
      }
    }

    // else scalar
    final Object value = valuePair.getValue();
    final Object o = convertPlainToPlain(targetType, valuePair.getType(), value);
    if (value == o)
    {
      return valuePair;
    }
    return new TypeValuePair(targetType, o);
  }
View Full Code Here

    {
      throw EvaluationException.getInstance(LibFormulaErrorValue.ERROR_NOT_FOUND_VALUE);
    }

    final int i = matcher.start();
    return new TypeValuePair(NumberType.GENERIC_NUMBER, new BigDecimal(i + 1));
  }
View Full Code Here

    {
      throw EvaluationException.getInstance(LibFormulaErrorValue.ERROR_INVALID_ARGUMENT_VALUE);
    }

    // Note that MID(T;1;Length) produces the same results as LEFT(T;Length).
    return new TypeValuePair(TextType.TYPE, MidFunction.process(text, 1, length));
  }
View Full Code Here

      }
    }

    if (nafound == false)
    {
      return new TypeValuePair(type, value);
    }
    return new TypeValuePair(parameters.getType(1), parameters.getValue(1));
  }
View Full Code Here

TOP

Related Classes of org.pentaho.reporting.libraries.formula.lvalues.TypeValuePair

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.