Package org.apache.poi.ss.formula.ptg

Examples of org.apache.poi.ss.formula.ptg.AreaPtg


   * moved
   */
  public void testShiftAreasSourceRows() {

    // all these operations are on an area ref spanning rows 10 to 20
    AreaPtg aptg  = createAreaPtg(10, 20);

    confirmAreaShift(aptg,  9, 21, 20, 30, 40);
    confirmAreaShift(aptg, 10, 21, 20, 30, 40);
    confirmAreaShift(aptg,  9, 20, 20, 30, 40);

View Full Code Here


   * Tests what happens to an area ref when some outside rows are moved to overlap
   * that area ref
   */
  public void testShiftAreasDestRows() {
    // all these operations are on an area ref spanning rows 20 to 25
    AreaPtg aptg  = createAreaPtg(20, 25);

    // no change because no overlap:
    confirmAreaShift(aptg,  5, 109, 20, 25);
    confirmAreaShift(aptg,  5, 10, 21, 20, 25);

View Full Code Here

      int expectedAreaFirstRow, int expectedAreaLastRow) {

    FormulaShifter fs = FormulaShifter.createForRowShift(0, firstRowMoved, lastRowMoved, numberRowsMoved);
    boolean expectedChanged = aptg.getFirstRow() != expectedAreaFirstRow || aptg.getLastRow() != expectedAreaLastRow;

    AreaPtg copyPtg = (AreaPtg) aptg.copy(); // clone so we can re-use aptg in calling method
    Ptg[] ptgs = { copyPtg, };
    boolean actualChanged = fs.adjustFormula(ptgs, 0);
    if (expectedAreaFirstRow < 0) {
      assertEquals(AreaErrPtg.class, ptgs[0].getClass());
      return;
    }
    assertEquals(expectedChanged, actualChanged);
    assertEquals(copyPtg, ptgs[0])// expected to change in place (although this is not a strict requirement)
    assertEquals(expectedAreaFirstRow, copyPtg.getFirstRow());
    assertEquals(expectedAreaLastRow, copyPtg.getLastRow());

  }
View Full Code Here

    assertEquals(expectedAreaFirstRow, copyPtg.getFirstRow());
    assertEquals(expectedAreaLastRow, copyPtg.getLastRow());

  }
  private static AreaPtg createAreaPtg(int initialAreaFirstRow, int initialAreaLastRow) {
    return new AreaPtg(initialAreaFirstRow, initialAreaLastRow, 2, 5, false, false, false, false);
  }
View Full Code Here

  private static Ptg readRefPtg(byte[] formulaRawBytes) {
    LittleEndianInput in = new LittleEndianInputStream(new ByteArrayInputStream(formulaRawBytes));
    byte ptgSid = in.readByte();
    switch(ptgSid) {
      case AreaPtg.sid:   return new AreaPtg(in);
      case Area3DPtg.sid: return new Area3DPtg(in);
      case RefPtg.sid:  return new RefPtg(in);
      case Ref3DPtg.sid:  return new Ref3DPtg(in);
    }
    return null;
View Full Code Here

       if (ptg instanceof RefPtg) {
           RefPtg rptg = (RefPtg) ptg;
           return ec.getRefEval(rptg.getRow(), rptg.getColumn());
       }
       if (ptg instanceof AreaPtg) {
           AreaPtg aptg = (AreaPtg) ptg;
           return ec.getAreaEval(aptg.getFirstRow(), aptg.getFirstColumn(), aptg.getLastRow(), aptg.getLastColumn());
       }

       if (ptg instanceof UnknownPtg) {
           // POI uses UnknownPtg when the encoded Ptg array seems to be corrupted.
           // This seems to occur in very rare cases (e.g. unused name formulas in bug 44774, attachment 21790)
View Full Code Here

    return true;
  }

  private static CellRangeAddress shiftRange(FormulaShifter shifter, CellRangeAddress cra, int currentExternSheetIx) {
    // FormulaShifter works well in terms of Ptgs - so convert CellRangeAddress to AreaPtg (and back) here
    AreaPtg aptg = new AreaPtg(cra.getFirstRow(), cra.getLastRow(), cra.getFirstColumn(), cra.getLastColumn(), false, false, false, false);
    Ptg[] ptgs = { aptg, };
   
    if (!shifter.adjustFormula(ptgs, currentExternSheetIx)) {
      return cra;
    }
    Ptg ptg0 = ptgs[0];
    if (ptg0 instanceof AreaPtg) {
      AreaPtg bptg = (AreaPtg) ptg0;
      return new CellRangeAddress(bptg.getFirstRow(), bptg.getLastRow(), bptg.getFirstColumn(), bptg.getLastColumn());
    }
    if (ptg0 instanceof AreaErrPtg) {
      return null;
    }
    throw new IllegalStateException("Unexpected shifted ptg class (" + ptg0.getClass().getName() + ")");
View Full Code Here

        assertTrue(sr instanceof LbsDataSubRecord);
        LbsDataSubRecord lbs = (LbsDataSubRecord)sr;
        assertEquals(4, lbs.getNumberOfItems());

        assertTrue(lbs.getFormula() instanceof AreaPtg);
        AreaPtg ptg = (AreaPtg)lbs.getFormula();
        CellRangeAddress range = new CellRangeAddress(
                ptg.getFirstRow(), ptg.getLastRow(), ptg.getFirstColumn(), ptg.getLastColumn());
        assertEquals("H10:H13", range.formatAsString());

        // check that it re-serializes to the same data
        byte[] ser = record.serialize();
        TestcaseRecordInputStream.confirmRecordEncoding(ObjRecord.sid, data, ser);
View Full Code Here

    if (ptg instanceof RefPtg) {
      RefPtg rptg = (RefPtg) ptg;
      return ec.getRefEval(rptg.getRow(), rptg.getColumn());
    }
    if (ptg instanceof AreaPtg) {
      AreaPtg aptg = (AreaPtg) ptg;
      return ec.getAreaEval(aptg.getFirstRow(), aptg.getFirstColumn(), aptg.getLastRow(), aptg.getLastColumn());
    }

    if (ptg instanceof UnknownPtg) {
      // POI uses UnknownPtg when the encoded Ptg array seems to be corrupted.
      // This seems to occur in very rare cases (e.g. unused name formulas in bug 44774, attachment 21790)
View Full Code Here

*/
public final class TestAreaEval extends TestCase {

  public void testGetValue_bug44950() {
    // TODO - this test probably isn't testing much anymore
    AreaPtg ptg = new AreaPtg("B2:D3");
    NumberEval one = new NumberEval(1);
    ValueEval[] values = {
        one,
        new NumberEval(2),
        new NumberEval(3),
View Full Code Here

TOP

Related Classes of org.apache.poi.ss.formula.ptg.AreaPtg

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.