Package org.apache.poi.hslf.record

Examples of org.apache.poi.hslf.record.Record


  public void testAddSlideToExisting2() throws Exception {
        //grab UserEditAtom
        UserEditAtom usredit = null;
        Record[] _records = hss_two.getRecords();
        for (int i = 0; i < _records.length; i++) {
            Record record = _records[i];
            if(_records[i].getRecordType() == RecordTypes.UserEditAtom.typeID) {
                usredit = (UserEditAtom)_records[i];
            }
       }
       assertNotNull(usredit);
View Full Code Here


    byte[] s_slwt = writeRecord(s_SLWT);
   
    // Check the records are the same
    assertEquals(refSLWT.getChildRecords().length, s_SLWT.getChildRecords().length);
    for(int i=0; i<refSLWT.getChildRecords().length; i++) {
      Record ref_r = refSLWT.getChildRecords()[i];
      Record s_r = s_SLWT.getChildRecords()[i];
     
      byte[] r_rb = writeRecord(ref_r);
      byte[] s_rb = writeRecord(s_r);
      assertEquals(r_rb.length, s_rb.length);
      for(int j=0; j<r_rb.length; j++) {
View Full Code Here

        throw new CorruptPowerPointFileException("The CurrentUserAtom claims that the offset of last edit details are past the end of the file");
      }

      // Grab the details of the UserEditAtom there
      // If the record's messed up, we could AIOOB
      Record r = null;
      try {
        r = Record.buildRecordAtOffset(
            hss.getUnderlyingBytes(),
            (int)cua.getCurrentEditOffset()
        );
      } catch (ArrayIndexOutOfBoundsException e) {
        return null;
      }
      if(r == null) { return null; }
      if(! (r instanceof UserEditAtom)) { return null; }
      UserEditAtom uea = (UserEditAtom)r;

      // Now get the PersistPtrHolder
      Record r2 = Record.buildRecordAtOffset(
          hss.getUnderlyingBytes(),
          uea.getPersistPointersOffset()
      );
      if(! (r2 instanceof PersistPtrHolder)) { return null; }
      PersistPtrHolder pph = (PersistPtrHolder)r2;

      // Now get the last record
      int[] slideIds = pph.getKnownSlideIDs();
      int maxSlideId = -1;
      for(int i=0; i<slideIds.length; i++) {
        if(slideIds[i] > maxSlideId) { maxSlideId = slideIds[i]; }
      }
      if(maxSlideId == -1) { return null; }

      int offset = (
          (Integer)pph.getSlideLocationsLookup().get(
              new Integer(maxSlideId)
          ) ).intValue();
      Record r3 = Record.buildRecordAtOffset(
          hss.getUnderlyingBytes(),
          offset
      );

      // If we have a DocumentEncryptionAtom, it'll be this one
View Full Code Here

    byte[] s_slwt = writeRecord(s_SLWT);

    // Check the records are the same
    assertEquals(refSLWT.getChildRecords().length, s_SLWT.getChildRecords().length);
    for(int i=0; i<refSLWT.getChildRecords().length; i++) {
      Record ref_r = refSLWT.getChildRecords()[i];
      Record s_r = s_SLWT.getChildRecords()[i];

      byte[] r_rb = writeRecord(ref_r);
      byte[] s_rb = writeRecord(s_r);
      assertEquals(r_rb.length, s_rb.length);
      for(int j=0; j<r_rb.length; j++) {
View Full Code Here

    //  first PersistPrtHolder, if there is one
   
    CurrentUserAtom cua = hss.getCurrentUserAtom();
    if(cua.getCurrentEditOffset() != 0) {
      // Grab the details of the UserEditAtom there
      Record r = Record.buildRecordAtOffset(
          hss.getUnderlyingBytes(),
          (int)cua.getCurrentEditOffset()
      );
      if(! (r instanceof UserEditAtom)) { return null; }
      UserEditAtom uea = (UserEditAtom)r;
     
      // Now get the PersistPtrHolder
      Record r2 = Record.buildRecordAtOffset(
          hss.getUnderlyingBytes(),
          uea.getPersistPointersOffset()
      );
      if(! (r2 instanceof PersistPtrHolder)) { return null; }
      PersistPtrHolder pph = (PersistPtrHolder)r2;
     
      // Now get the last record
      int[] slideIds = pph.getKnownSlideIDs();
      int maxSlideId = -1;
      for(int i=0; i<slideIds.length; i++) {
        if(slideIds[i] > maxSlideId) { maxSlideId = slideIds[i]; }
      }
      if(maxSlideId == -1) { return null; }
     
      int offset = (
          (Integer)pph.getSlideLocationsLookup().get(
              new Integer(maxSlideId)
          ) ).intValue();
      Record r3 = Record.buildRecordAtOffset(
          hss.getUnderlyingBytes(),
          offset
      );
     
      // If we have a DocumentEncryptionAtom, it'll be this one
View Full Code Here

    RecordContainer br = (RecordContainer)baseRecord;
    Record[] childRecords = br.getChildRecords();
   
    // Loop over child records, looking for interesting ones
    for(int i=0; i<childRecords.length; i++) {
      Record record = childRecords[i];
      // Tell parent aware records of their parent
      if(record instanceof ParentAwareRecord) {
        ((ParentAwareRecord)record).setParentRecord(br);
      }
      // Walk on down for the case of container records
View Full Code Here

   * @param refID the refID
   */
  private Record getCoreRecordForRefID(int refID) {
    Integer coreRecordId = (Integer)
      _sheetIdToCoreRecordsLookup.get(new Integer(refID));
    Record r = _mostRecentCoreRecords[coreRecordId.intValue()];
    return r;
  }
View Full Code Here

    // Match up the records and the SlideAtomSets
    notesSets = notesSLWT.getSlideAtomsSets();
    notesRecords = new org.apache.poi.hslf.record.Notes[notesSets.length];
    for(int i=0; i<notesSets.length; i++) {
      // Get the right core record
      Record r = getCoreRecordForSAS(notesSets[i]);
     
      // Ensure it really is a notes record
      if(r instanceof org.apache.poi.hslf.record.Notes) {
        notesRecords[i] = (org.apache.poi.hslf.record.Notes)r;
      } else {
        logger.log(POILogger.ERROR, "A Notes SlideAtomSet at " + i + " said its record was at refID " + notesSets[i].getSlidePersistAtom().getRefID() + ", but that was actually a " + r);
      }
     
      // Record the match between slide id and these notes
      SlidePersistAtom spa = notesSets[i].getSlidePersistAtom();
      Integer slideId = new Integer(spa.getSlideIdentifier());
      slideIdToNotes.put(slideId, new Integer(i));
    }
  }
 
  // Now, do the same thing for our slides
  org.apache.poi.hslf.record.Slide[] slidesRecords;
  SlideAtomsSet[] slidesSets = new SlideAtomsSet[0];
  if(slidesSLWT == null) {
    // None
    slidesRecords = new org.apache.poi.hslf.record.Slide[0];
  } else {
    // Match up the records and the SlideAtomSets
    slidesSets = slidesSLWT.getSlideAtomsSets();
    slidesRecords = new org.apache.poi.hslf.record.Slide[slidesSets.length];
    for(int i=0; i<slidesSets.length; i++) {
      // Get the right core record
      Record r = getCoreRecordForSAS(slidesSets[i]);
     
      // Ensure it really is a slide record
      if(r instanceof org.apache.poi.hslf.record.Slide) {
        slidesRecords[i] = (org.apache.poi.hslf.record.Slide)r;
      } else {
View Full Code Here

      int offset = 0;
      int slideOffset = 0;
      PersistPtrHolder ptr = null;
      UserEditAtom usr = null;
      for (int i = 0; i < _records.length; i++) {
        Record record = _records[i];
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        record.writeOut(out);
       
        // Grab interesting records as they come past
        if(_records[i].getRecordType() == RecordTypes.PersistPtrIncrementalBlock.typeID){
          ptr = (PersistPtrHolder)_records[i];
        }
View Full Code Here

      if(cua.getCurrentEditOffset() > hss.getUnderlyingBytes().length) {
        throw new CorruptPowerPointFileException("The CurrentUserAtom claims that the offset of last edit details are past the end of the file");
      }
     
      // Grab the details of the UserEditAtom there
      Record r = Record.buildRecordAtOffset(
          hss.getUnderlyingBytes(),
          (int)cua.getCurrentEditOffset()
      );
      if(! (r instanceof UserEditAtom)) { return null; }
      UserEditAtom uea = (UserEditAtom)r;
     
      // Now get the PersistPtrHolder
      Record r2 = Record.buildRecordAtOffset(
          hss.getUnderlyingBytes(),
          uea.getPersistPointersOffset()
      );
      if(! (r2 instanceof PersistPtrHolder)) { return null; }
      PersistPtrHolder pph = (PersistPtrHolder)r2;
     
      // Now get the last record
      int[] slideIds = pph.getKnownSlideIDs();
      int maxSlideId = -1;
      for(int i=0; i<slideIds.length; i++) {
        if(slideIds[i] > maxSlideId) { maxSlideId = slideIds[i]; }
      }
      if(maxSlideId == -1) { return null; }
     
      int offset = (
          (Integer)pph.getSlideLocationsLookup().get(
              new Integer(maxSlideId)
          ) ).intValue();
      Record r3 = Record.buildRecordAtOffset(
          hss.getUnderlyingBytes(),
          offset
      );
     
      // If we have a DocumentEncryptionAtom, it'll be this one
View Full Code Here

TOP

Related Classes of org.apache.poi.hslf.record.Record

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.