Examples of FuncVarPtg


Examples of org.apache.poi.hssf.record.formula.FuncVarPtg

    temp.add(_token);
  }

  private static boolean isIf(Ptg token) {
    if (token instanceof FuncVarPtg) {
      FuncVarPtg func = (FuncVarPtg) token;
      if (FunctionMetadataRegistry.FUNCTION_NAME_IF.equals(func.getName())) {
        return true;
      }
    }
    return false;
  }
View Full Code Here

Examples of org.apache.poi.hssf.record.formula.FuncVarPtg

    assertEquals(AttrPtg.class,    ptgs[5].getClass());
    assertEquals(RefPtg.class, ptgs[6].getClass());
    assertEquals(AttrPtg.class,    ptgs[7].getClass());
    assertEquals(FuncVarPtg.class,   ptgs[8].getClass());

    FuncVarPtg choose = (FuncVarPtg)ptgs[8];
    assertEquals("CHOOSE", choose.getName());
  }
View Full Code Here

Examples of org.apache.poi.hssf.record.formula.FuncVarPtg

    assertTrue("Single Value is not an IntPtg", (ptgs[4] instanceof IntPtg));
    IntPtg intPtg = (IntPtg)ptgs[4];
    assertEquals("Result", (short)10, intPtg.getValue());

    assertTrue("Ptg is not a Variable Function", (ptgs[6] instanceof FuncVarPtg));
    FuncVarPtg funcPtg = (FuncVarPtg)ptgs[6];
    assertEquals("Arguments", 2, funcPtg.getNumberOfOperands());
  }
View Full Code Here

Examples of org.apache.poi.hssf.record.formula.FuncVarPtg

        AttrPtg attrPtg = (AttrPtg) ptg;
        if (attrPtg.isSum()) {
          // Excel prefers to encode 'SUM()' as a tAttr token, but this evaluator
          // expects the equivalent function token
          byte nArgs = 1// tAttrSum always has 1 parameter
          ptg = new FuncVarPtg("SUM", nArgs);
        }
      }
      if (ptg instanceof ControlPtg) {
        // skip Parentheses, Attr, etc
        continue;
View Full Code Here

Examples of org.apache.poi.hssf.record.formula.FuncVarPtg

    temp.add(getToken());
  }

  private static boolean isIf(Ptg token) {
    if (token instanceof FuncVarPtg) {
      FuncVarPtg func = (FuncVarPtg) token;
      if (FunctionMetadataRegistry.FUNCTION_NAME_IF.equals(func.getName())) {
        return true;
      }
    }
    return false;
  }
View Full Code Here

Examples of org.apache.poi.hssf.record.formula.FuncVarPtg

            }
            // must be external function
            ParseNode[] allArgs = new ParseNode[numArgs+1];
            allArgs[0] = new ParseNode(namePtg);
            System.arraycopy(args, 0, allArgs, 1, numArgs);
            return new ParseNode(new FuncVarPtg(name, (byte)(numArgs+1)), allArgs);
        }

        if (namePtg != null) {
            throw new IllegalStateException("NamePtg no applicable to internal functions");
        }
        boolean isVarArgs = !fm.hasFixedArgsLength();
        int funcIx = fm.getIndex();
        validateNumArgs(args.length, fm);

        AbstractFunctionPtg retval;
        if(isVarArgs) {
            retval = new FuncVarPtg(name, (byte)numArgs);
        } else {
            retval = new FuncPtg(funcIx);
        }
        return new ParseNode(retval, args);
    }
View Full Code Here

Examples of org.apache.poi.hssf.record.formula.FuncVarPtg

 
  public void testComplexIRR_bug45041() {
    String formula = "(1+IRR(SUMIF(A:A,ROW(INDIRECT(MIN(A:A)&\":\"&MAX(A:A))),B:B),0))^365-1";
    Ptg[] ptgs = parseFormula(formula);

    FuncVarPtg rowFunc = (FuncVarPtg) ptgs[10];
    FuncVarPtg sumifFunc = (FuncVarPtg) ptgs[12];
    assertEquals("ROW", rowFunc.getName());
    assertEquals("SUMIF", sumifFunc.getName());

    if (rowFunc.getPtgClass() == Ptg.CLASS_VALUE || sumifFunc.getPtgClass() == Ptg.CLASS_VALUE) {
      throw new AssertionFailedError("Identified bug 45041");
    }
    confirmTokenClass(ptgs, 1, Ptg.CLASS_REF);
    confirmTokenClass(ptgs, 2, Ptg.CLASS_REF);
    confirmFuncClass(ptgs, 3, "MIN", Ptg.CLASS_VALUE);
View Full Code Here

Examples of org.apache.poi.hssf.record.formula.FuncVarPtg

            }
            // must be external function
            ParseNode[] allArgs = new ParseNode[numArgs+1];
            allArgs[0] = new ParseNode(namePtg);
            System.arraycopy(args, 0, allArgs, 1, numArgs);
            return new ParseNode(new FuncVarPtg(name, (byte)(numArgs+1)), allArgs);
        }

        if (namePtg != null) {
            throw new IllegalStateException("NamePtg no applicable to internal functions");
        }
        boolean isVarArgs = !fm.hasFixedArgsLength();
        int funcIx = fm.getIndex();
        validateNumArgs(args.length, fm);

        AbstractFunctionPtg retval;
        if(isVarArgs) {
            retval = new FuncVarPtg(name, (byte)numArgs);
        } else {
            retval = new FuncPtg(funcIx);
        }
        return new ParseNode(retval, args);
    }
View Full Code Here

Examples of org.apache.poi.hssf.record.formula.FuncVarPtg

        AttrPtg attrPtg = (AttrPtg) ptg;
        if (attrPtg.isSum()) {
          // Excel prefers to encode 'SUM()' as a tAttr token, but this evaluator
          // expects the equivalent function token
          byte nArgs = 1// tAttrSum always has 1 parameter
          ptg = new FuncVarPtg("SUM", nArgs);
        }
      }
      if (ptg instanceof ControlPtg) {
        // skip Parentheses, Attr, etc
        continue;
View Full Code Here

Examples of org.apache.poi.hssf.record.formula.FuncVarPtg

            }
            // must be external function
            ParseNode[] allArgs = new ParseNode[numArgs+1];
            allArgs[0] = new ParseNode(namePtg);
            System.arraycopy(args, 0, allArgs, 1, numArgs);
            return new ParseNode(new FuncVarPtg(name, (byte)(numArgs+1)), allArgs);
        }

        if (namePtg != null) {
            throw new IllegalStateException("NamePtg no applicable to internal functions");
        }
        boolean isVarArgs = !fm.hasFixedArgsLength();
        int funcIx = fm.getIndex();
        validateNumArgs(args.length, fm);

        AbstractFunctionPtg retval;
        if(isVarArgs) {
            retval = new FuncVarPtg(name, (byte)numArgs);
        } else {
            retval = new FuncPtg(funcIx);
        }
        return new ParseNode(retval, args);
    }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.