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

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


  public Sequence convertToSequence(final Type type, final Object value) throws EvaluationException
  {
    // sclar
    if (type.isFlagSet(Type.SCALAR_TYPE))
    {
      return new AnySequence(new StaticValue(value, type), context);
    }
    // else already a sequence
    else if (type.isFlagSet(Type.SEQUENCE_TYPE))
    {
      if (value instanceof Sequence)
      {
        return (Sequence) value;
      }
      else
      {
        logger.warn("Assertation failure: Type declared to be a sequence, but no sequence found inside.");
        throw TypeConversionException.getInstance();
      }
    }
    // else an array source
    else if (type.isFlagSet(Type.ARRAY_TYPE))
    {
      if (value instanceof ArrayCallback)
      {
        return new AnySequence((ArrayCallback) value, context);
      }
      else if (value instanceof Object[])
      {
        return new AnySequence(convertToArray(type, value), context);
      }
      else
      {
        logger.warn("Assertation failure: Type declared to be array, but no array callback found inside.");
        throw TypeConversionException.getInstance();
View Full Code Here


  }

  public void testIterate() throws EvaluationException
  {
    final TestFormulaContext formulaContext = new TestFormulaContext();
    final AnySequence emptySequence = new AnySequence(formulaContext);
    assertFalse(emptySequence.hasNext());

    final AnySequence singleNullValueSequence = new AnySequence(new StaticValue(null), formulaContext);
    assertTrue(singleNullValueSequence.hasNext());
    assertNull(singleNullValueSequence.next());
    assertFalse(singleNullValueSequence.hasNext());

    final AnySequence singleValueSequence = new AnySequence(new StaticValue("test"), formulaContext);
    assertTrue(singleValueSequence.hasNext());
    assertEquals("test", singleValueSequence.next());
    assertFalse(singleValueSequence.hasNext());

    final DefaultDataTable rowTable = new DefaultDataTable();
    rowTable.setObject(0, 0, new StaticValue("Test"));
    rowTable.setObject(1, 0, new StaticValue("Test2"));
    final AnySequence rowArraySequence = new AnySequence(rowTable.getAsArray(), formulaContext);
    assertTrue(rowArraySequence.hasNext());
    assertEquals("Test", rowArraySequence.next());
    assertTrue(rowArraySequence.hasNext());
    assertEquals("Test2", rowArraySequence.next());
    assertFalse(rowArraySequence.hasNext());

    final DefaultDataTable colTable = new DefaultDataTable();
    colTable.setObject(0, 0, new StaticValue("Test"));
    colTable.setObject(0, 1, new StaticValue("Test2"));
    final AnySequence colArraySequence = new AnySequence(colTable.getAsArray(), formulaContext);
    assertTrue(colArraySequence.hasNext());
    assertEquals("Test", colArraySequence.next());
    assertTrue(colArraySequence.hasNext());
    assertEquals("Test2", colArraySequence.next());
    assertFalse(colArraySequence.hasNext());

    final DefaultDataTable colRowTable = new DefaultDataTable();
    colRowTable.setObject(0, 0, new StaticValue("Test"));
    colRowTable.setObject(0, 1, new StaticValue("Test2"));
    colRowTable.setObject(1, 0, new StaticValue("Test3"));
    colRowTable.setObject(1, 1, new StaticValue("Test4"));
    final AnySequence colRowArraySequence = new AnySequence(colRowTable.getAsArray(), formulaContext);
    assertTrue(colRowArraySequence.hasNext());
    assertEquals("Test", colRowArraySequence.next());
    assertTrue(colRowArraySequence.hasNext());
    assertEquals("Test2", colRowArraySequence.next());
    assertTrue(colRowArraySequence.hasNext());
    assertEquals("Test3", colRowArraySequence.next());
    assertTrue(colRowArraySequence.hasNext());
    assertEquals("Test4", colRowArraySequence.next());
    assertFalse(colRowArraySequence.hasNext());
  }
View Full Code Here

  public Sequence convertToSequence(final Type type, final Object value) throws EvaluationException
  {
    // sclar
    if (type.isFlagSet(Type.SCALAR_TYPE))
    {
      return new AnySequence(new StaticValue(value, type), context);
    }
    // else already a sequence
    else if (type.isFlagSet(Type.SEQUENCE_TYPE))
    {
      if (value instanceof AnySequence)
      {
        return (AnySequence) value;
      }
      else
      {
        logger.warn("Assertation failure: Type declared to be a sequence, but no sequence found inside.");
        throw new TypeConversionException();
      }
    }
    // else an array source
    else if (type.isFlagSet(Type.ARRAY_TYPE))
    {
      if (value instanceof ArrayCallback)
      {
        return new AnySequence((ArrayCallback) value, context);
      }
      else
      {
        logger.warn("Assertation failure: Type declared to be array, but no array callback found inside.");
        throw new TypeConversionException();
View Full Code Here

TOP

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

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.