Package org.pentaho.reporting.libraries.formula.typing.sequence

Examples of org.pentaho.reporting.libraries.formula.typing.sequence.RecursiveSequence


    if (length < 0)
    {
      throw EvaluationException.getInstance(LibFormulaErrorValue.ERROR_INVALID_ARGUMENT_VALUE);
    }

    final RecursiveSequence text = new RecursiveSequence(parameters.getValue(0), context);
    final LinkedList list = new LinkedList();
    while (text.hasNext())
    {
      final Object element = text.next();
      list.add(element);
      if (list.size() > length)
      {
        list.remove(0);
      }
View Full Code Here


    }

    for (int paramIdx = 0; paramIdx < parameterCount; paramIdx++)
    {
      final Object value = parameters.getValue(paramIdx);
      final Sequence sequence = new RecursiveSequence(value, context);

      while (sequence.hasNext())
      {
        final Object o = sequence.next();
        computedResult.add(o);
      }
    }

    return new TypeValuePair(AnyType.ANY_ARRAY, computedResult.toArray());
View Full Code Here

    final Type startType = parameters.getType(1);
    final Object startValue = parameters.getValue(1);
    final Type lengthType = parameters.getType(2);
    final Object lengthValue = parameters.getValue(2);

    final Sequence text = new RecursiveSequence(textValue, context);
    final Number start = typeRegistry.convertToNumber(startType, startValue);
    final Number length = typeRegistry.convertToNumber(lengthType, lengthValue);

    if (length.doubleValue() < 0 || start.doubleValue() < 1)
    {
View Full Code Here

    for (int paramIdx = 1; paramIdx < parameterCount; paramIdx++)
    {
      try
      {
        final Object value = parameters.getValue(paramIdx);
        final Sequence sequence = new RecursiveSequence(value, context);

        while (sequence.hasNext())
        {
          final Object o = sequence.next();
          needles.add(new TypeValuePair(AnyType.TYPE, o));
        }
      }
      catch (EvaluationException e)
      {
        if (e.getErrorValue() == LibFormulaErrorValue.ERROR_NA_VALUE)
        {
          needles.add(new TypeValuePair(AnyType.TYPE, null));
        }
        else
        {
          throw e;
        }
      }
    }

    if (needles.size() == 0)
    {
      return new TypeValuePair(LogicalType.TYPE, Boolean.TRUE);
    }


    final Object value = parameters.getValue(0);
    final Sequence sequence = new RecursiveSequence(value, context);
    final EqualOperator equalOperator = new EqualOperator();

    while (sequence.hasNext())
    {
      final Object o = sequence.next();
      final TypeValuePair sequenceValue = new TypeValuePair(AnyType.TYPE, o);
      for (int i = needles.size() - 1; i >= 0; i -= 1)
      {
        final TypeValuePair needle = needles.get(i);
        if (needle.getValue() == o)
View Full Code Here

  }

  public void testRecursiveSequence() throws EvaluationException
  {
    final TestFormulaContext context = new TestFormulaContext();
    final RecursiveSequence sequence = new RecursiveSequence(new Object[]{new String[0], new Integer[0], "A"}, context);
    while (sequence.hasNext())
    {
      System.out.println (sequence.next());
    }
  }
View Full Code Here

    }
    final TypeRegistry typeRegistry = context.getTypeRegistry();

    final Object textValue = parameters.getValue(0);

    final Sequence text = new RecursiveSequence(textValue, context);
    final int length;
    if (parameterCount == 2)
    {
      final Type lengthType = parameters.getType(1);
      final Object lengthValue = parameters.getValue(1);
      final Number lengthConv = typeRegistry.convertToNumber(lengthType, lengthValue);
      if (lengthConv.doubleValue() < 0)
      {
        throw EvaluationException.getInstance(LibFormulaErrorValue.ERROR_INVALID_ARGUMENT_VALUE);
      }

      length = lengthConv.intValue();
    }
    else
    {
      length = 1;
    }

    final ArrayList retval = new ArrayList(length);
    if (length > 0)
    {
      while (text.hasNext())
      {
        final Object o = text.next();
        retval.add(o);
        if (retval.size() == length)
        {
          break;
        }
View Full Code Here

        context.getTypeRegistry().convertToSequence(parameters.getType(0), parameters.getValue(0));
    if (sequenceRaw == null)
    {
      throw EvaluationException.getInstance(LibFormulaErrorValue.ERROR_NA_VALUE);
    }
    final RecursiveSequence sequence = new RecursiveSequence(sequenceRaw, context);

    final boolean removeNull;
    if (parameterCount == 2)
    {
      final Boolean removeNullValuesRaw =
          context.getTypeRegistry().convertToLogical(parameters.getType(1), parameters.getValue(1));
       removeNull = removeNullValuesRaw == null || Boolean.TRUE.equals(removeNullValuesRaw);
    }
    else
    {
      removeNull = true;
    }
   
    final ArrayList retval = new ArrayList();
    while (sequence.hasNext())
    {
      final Object o = sequence.next();
      if (removeNull && o == null)
      {
        continue;
      }
      retval.add(o);
View Full Code Here

    for (int paramIdx = 0; paramIdx < parameterCount; paramIdx++)
    {
      try
      {
        final Object value = parameters.getValue(paramIdx);
        final Sequence sequence = new RecursiveSequence(value, context);
        while (sequence.hasNext())
        {
          final Object o = sequence.next();
          count += countElement(o);
        }
      }
      catch (EvaluationException e)
      {
View Full Code Here

TOP

Related Classes of org.pentaho.reporting.libraries.formula.typing.sequence.RecursiveSequence

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.