Package org.pentaho.reporting.engine.classic.core.function

Examples of org.pentaho.reporting.engine.classic.core.function.Expression


  protected void doneParsing() throws SAXException
  {
    super.doneParsing();
    if (formulaReadHandler != null)
    {
      final Expression expression = formulaReadHandler.getFormula();
      if (expression != null)
      {
        element.setAttributeExpression
            (AttributeNames.Core.NAMESPACE, AttributeNames.Core.VALUE, expression);
      }
View Full Code Here


    this.runtime.setState(previousRow.runtime.getState());
    this.includeStructuralProcessing = previousRow.includeStructuralProcessing;

    for (int i = 0; i < length; i++)
    {
      final Expression expression = previousRow.expressions[i];
      if (expression == null)
      {
        ExpressionDataRow.logger.debug("Error: Expression is null...");
        throw new IllegalStateException();
      }

      if (expression instanceof Function)
      {
        expressions[i] = (Expression) expression.clone();
      }
      else
      {
        expressions[i] = expression;
      }

      if (updateGlobalView == false)
      {
        continue;
      }

      final String name = expression.getName();
      if (name != null)
      {
        chEvent.setColumnName(name);
      }
      Object value;

      final ExpressionRuntime oldRuntime = expression.getRuntime();
      try
      {
        expression.setRuntime(runtime);
        if (runtime.getProcessingContext().getProcessingLevel() <= expression.getDependencyLevel())
        {
          value = expression.getValue();
        }
        else
        {
          value = null;
        }
      }
      catch (Exception e)
      {
        if (ExpressionDataRow.logger.isDebugEnabled())
        {
          ExpressionDataRow.logger.warn("Failed to evaluate expression '" + name + '\'', e);
        }
        else
        {
          ExpressionDataRow.logger.warn("Failed to evaluate expression '" + name + '\'');
        }
        value = null;
      }
      finally
      {
        expression.setRuntime(oldRuntime);
      }
      if (name != null)
      {
        chEvent.setColumnValue(value);
        masterRow.dataRowChanged(chEvent);
View Full Code Here

    }

    ensureCapacity(length + expressionSlots.length);
    for (int i = 0; i < expressionSlots.length; i++)
    {
      final Expression expression = expressionSlots[i];
      if (expression == null)
      {
        continue;
      }
      pushExpression(expression, preserveState);
View Full Code Here

  {
    if (length == 0)
    {
      return;
    }
    final Expression removedExpression = this.expressions[length - 1];
    final String originalName = removedExpression.getName();
    removedExpression.setRuntime(null);

    this.expressions[length - 1] = null;
    this.length -= 1;
    if (originalName != null)
    {
      if (removedExpression.isPreserve() == false)
      {
        final MasterDataRowChangeEvent chEvent = new MasterDataRowChangeEvent
            (MasterDataRowChangeEvent.COLUMN_REMOVED, originalName, null);
        masterRow.dataRowChanged(chEvent);
      }
View Full Code Here

    // recompute the level storage ..
    int minLevel = Integer.MIN_VALUE;
    final LevelList levelList = new LevelList();
    for (int i = 0; i < length; i++)
    {
      final Expression expression = expressions[i];

      // The list maps the current position to the level ..
      final int dependencyLevel = expression.getDependencyLevel();
      levelList.add(IntegerCache.getInteger(i), dependencyLevel);
      if (minLevel < dependencyLevel)
      {
        minLevel = dependencyLevel;
      }
    }

    if (minLevel > Integer.MIN_VALUE)
    {
      if (isIncludeStructuralProcessing())
      {
        for (int i = 0; i < length; i++)
        {
          final Expression expression = expressions[i];

          // The list maps the current position to the level ..
          final int dependencyLevel = expression.getDependencyLevel();
          if (dependencyLevel == minLevel && (expression instanceof Function == false))
          {
            levelList.add(IntegerCache.getInteger(i), minLevel);
          }
        }
      }
    }

    final Integer[] levels = levelList.getLevelsDescendingArray();
    this.levelData = new LevelStorage[levels.length];
    final int expressionsCount = levelList.size();

    final int capacity = Math.min(20, expressionsCount);
    final IntList expressionPositions = new IntList(capacity);
    final IntList activeExpressions = new IntList(capacity);
    final IntList functions = new IntList(capacity);
    final IntList pageEventListeners = new IntList(capacity);
    final IntList prepareEventListeners = new IntList(capacity);
    final boolean prepareEventListener = false;

    for (int i = 0; i < levels.length; i++)
    {
      final int currentLevel = levels[i].intValue();
      final Integer[] data = (Integer[])
          levelList.getElementArrayForLevel(currentLevel, ExpressionDataRow.EMPTY_INTEGERARRAY);
      for (int x = 0; x < data.length; x++)
      {
        final Integer position = data[x];
        final Expression ex = this.expressions[position.intValue()];
        final int globalPosition = position.intValue();

        expressionPositions.add(globalPosition);
        activeExpressions.add(globalPosition);
        if (ex instanceof Function == false)
View Full Code Here

      }

      final int[] listeners = levelData[levelIdx].getActiveExpressions();
      for (int l = 0; l < listeners.length; l++)
      {
        final Expression expression = expressions[listeners[l]];
        if (deepTraversing && expression.isDeepTraversing() == false)
        {
          continue;
        }

        expression.setRuntime(runtime);
        final String name = expression.getName();
        if (name != null)
        {
          chEvent.setColumnName(name);
          try
          {
            final Object value;
            if (runtime.getProcessingContext().getProcessingLevel() <= expression.getDependencyLevel())
            {
              value = expression.getValue();
            }
            else
            {
              value = null;
            }
            chEvent.setColumnValue(value);
          }
          catch (Exception e)
          {
            chEvent.setColumnValue(null);
            ExpressionDataRow.logger.info("Evaluation of expression '" + name + "'failed.", e);
          }
          masterRow.dataRowChanged(chEvent);
        }
        expression.setRuntime(null);
      }
    }
  }
View Full Code Here

      }

      final int[] listeners = levelData[levelIdx].getFunctions();
      for (int l = 0; l < listeners.length; l++)
      {
        final Expression expression = expressions[listeners[l]];
        if (deepTraversing && expression.isDeepTraversing() == false)
        {
          continue;
        }

        final ExpressionRuntime oldRuntime = expression.getRuntime();
        expression.setRuntime(runtime);
        final Function e = (Function) expression;
        try
        {
          e.itemsAdvanced(event);
          final String name = expression.getName();
          if (name != null)
          {
            chEvent.setColumnName(name);
            chEvent.setColumnValue(expression.getValue());
            masterRow.dataRowChanged(chEvent);
          }
        }
        catch (Exception ex)
        {
          if (ExpressionDataRow.logger.isDebugEnabled())
          {
            ExpressionDataRow.logger.error("Failed to fire prepare event", ex);
          }
          else
          {
            ExpressionDataRow.logger.error("Failed to fire prepare event: " + ex);
          }
          addError(ex);
        }

        expression.setRuntime(oldRuntime);
      }
    }
  }
View Full Code Here

      }

      final int[] listeners = levelData[levelIdx].getFunctions();
      for (int l = 0; l < listeners.length; l++)
      {
        final Expression expression = expressions[listeners[l]];
        if (deepTraversing && expression.isDeepTraversing() == false)
        {
          continue;
        }

        final ExpressionRuntime oldRuntime = expression.getRuntime();
        expression.setRuntime(runtime);
        final Function e = (Function) expression;
        try
        {
          e.itemsStarted(event);
          final String name = expression.getName();
          if (name != null)
          {
            chEvent.setColumnName(name);
            chEvent.setColumnValue(expression.getValue());
            masterRow.dataRowChanged(chEvent);
          }
        }
        catch (Exception ex)
        {
          if (ExpressionDataRow.logger.isDebugEnabled())
          {
            ExpressionDataRow.logger.error("Failed to fire prepare event", ex);
          }
          else
          {
            ExpressionDataRow.logger.error("Failed to fire prepare event: " + ex);
          }
          addError(ex);
        }

        expression.setRuntime(oldRuntime);
      }
    }
  }
View Full Code Here

      }

      final int[] listeners = levelData[levelIdx].getFunctions();
      for (int l = 0; l < listeners.length; l++)
      {
        final Expression expression = expressions[listeners[l]];
        if (deepTraversing && expression.isDeepTraversing() == false)
        {
          continue;
        }

        final ExpressionRuntime oldRuntime = expression.getRuntime();
        expression.setRuntime(runtime);
        final Function e = (Function) expression;
        try
        {
          e.itemsFinished(event);
          final String name = expression.getName();
          if (name != null)
          {
            chEvent.setColumnName(name);
            chEvent.setColumnValue(expression.getValue());
            masterRow.dataRowChanged(chEvent);
          }
        }
        catch (Exception ex)
        {
          if (ExpressionDataRow.logger.isDebugEnabled())
          {
            ExpressionDataRow.logger.error("Failed to fire prepare event", ex);
          }
          else
          {
            ExpressionDataRow.logger.error("Failed to fire prepare event: " + ex);
          }
          addError(ex);
        }

        expression.setRuntime(oldRuntime);
      }
    }
  }
View Full Code Here

      }

      final int[] listeners = levelData[levelIdx].getFunctions();
      for (int l = 0; l < listeners.length; l++)
      {
        final Expression expression = expressions[listeners[l]];
        if (deepTraversing && expression.isDeepTraversing() == false)
        {
          continue;
        }

        final ExpressionRuntime oldRuntime = expression.getRuntime();
        expression.setRuntime(runtime);
        final Function e = (Function) expression;
        try
        {
          e.groupStarted(event);
          final String name = expression.getName();
          if (name != null)
          {
            chEvent.setColumnName(name);
            chEvent.setColumnValue(expression.getValue());
            masterRow.dataRowChanged(chEvent);
          }
        }
        catch (Exception ex)
        {
          if (ExpressionDataRow.logger.isDebugEnabled())
          {
            ExpressionDataRow.logger.error("Failed to fire group-started event", ex);
          }
          else
          {
            ExpressionDataRow.logger.error("Failed to fire group-started event: " + ex);
          }
          addError(ex);
        }

        expression.setRuntime(oldRuntime);
      }
    }
  }
View Full Code Here

TOP

Related Classes of org.pentaho.reporting.engine.classic.core.function.Expression

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.