From 0e1f9ab329473c09137ddafd5d8329066894b7a5 Mon Sep 17 00:00:00 2001 From: Said Ryan Ackley Date: Wed, 3 Mar 2004 00:11:02 +0000 Subject: [PATCH] clean up git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@353522 13f79535-47bb-0310-9956-ffa450edef68 --- .../poi/hwpf/model/hdftypes/CHPBinTable.java | 246 ------------------ 1 file changed, 246 deletions(-) delete mode 100644 src/scratchpad/src/org/apache/poi/hwpf/model/hdftypes/CHPBinTable.java diff --git a/src/scratchpad/src/org/apache/poi/hwpf/model/hdftypes/CHPBinTable.java b/src/scratchpad/src/org/apache/poi/hwpf/model/hdftypes/CHPBinTable.java deleted file mode 100644 index 745e9db78..000000000 --- a/src/scratchpad/src/org/apache/poi/hwpf/model/hdftypes/CHPBinTable.java +++ /dev/null @@ -1,246 +0,0 @@ -/* - * ==================================================================== - * The Apache Software License, Version 1.1 - * - * Copyright (c) 2003 The Apache Software Foundation. All rights - * reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. The end-user documentation included with the redistribution, - * if any, must include the following acknowledgment: - * "This product includes software developed by the - * Apache Software Foundation (http://www.apache.org/)." - * Alternately, this acknowledgment may appear in the software itself, - * if and wherever such third-party acknowledgments normally appear. - * - * 4. The names "Apache" and "Apache Software Foundation" and - * "Apache POI" must not be used to endorse or promote products - * derived from this software without prior written permission. For - * written permission, please contact apache@apache.org. - * - * 5. Products derived from this software may not be called "Apache", - * "Apache POI", nor may "Apache" appear in their name, without - * prior written permission of the Apache Software Foundation. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * ==================================================================== - * - * This software consists of voluntary contributions made by many - * individuals on behalf of the Apache Software Foundation. For more - * information on the Apache Software Foundation, please see - * . - */ - - -package org.apache.poi.hwpf.model.hdftypes; - -import java.util.List; -import java.util.ArrayList; -import java.io.OutputStream; -import java.io.IOException; - -import org.apache.poi.poifs.common.POIFSConstants; -import org.apache.poi.util.LittleEndian; -import org.apache.poi.hwpf.model.io.*; - -/** - * This class holds all of the character formatting properties. - * - * @author Ryan Ackley - */ -public class CHPBinTable -{ - /** List of character properties.*/ - ArrayList _textRuns = new ArrayList(); - - /** - * Constructor used to read a binTable in from a Word document. - * - * @param documentStream - * @param tableStream - * @param offset - * @param size - * @param fcMin - */ - public CHPBinTable(byte[] documentStream, byte[] tableStream, int offset, - int size, int fcMin) - { - PlexOfCps binTable = new PlexOfCps(tableStream, offset, size, 4); - - int length = binTable.length(); - for (int x = 0; x < length; x++) - { - PropertyNode node = binTable.getProperty(x); - - int pageNum = LittleEndian.getInt(node.getBuf()); - int pageOffset = POIFSConstants.BIG_BLOCK_SIZE * pageNum; - - CHPFormattedDiskPage cfkp = new CHPFormattedDiskPage(documentStream, - pageOffset, fcMin); - - int fkpSize = cfkp.size(); - - for (int y = 0; y < fkpSize; y++) - { - _textRuns.add(cfkp.getCHPX(y)); - } - } - } - - public void adjustForDelete(int listIndex, int offset, int length) - { - int size = _textRuns.size(); - int endMark = offset + length; - int endIndex = listIndex; - - CHPX chpx = (CHPX)_textRuns.get(endIndex); - while (chpx.getEnd() < endMark) - { - chpx = (CHPX)_textRuns.get(++endIndex); - } - if (listIndex == endIndex) - { - chpx = (CHPX)_textRuns.get(endIndex); - chpx.setEnd((chpx.getEnd() - endMark) + offset); - } - else - { - chpx = (CHPX)_textRuns.get(listIndex); - chpx.setEnd(offset); - for (int x = listIndex + 1; x < endIndex; x++) - { - chpx = (CHPX)_textRuns.get(x); - chpx.setStart(offset); - chpx.setEnd(offset); - } - chpx = (CHPX)_textRuns.get(endIndex); - chpx.setEnd((chpx.getEnd() - endMark) + offset); - } - - for (int x = endIndex + 1; x < size; x++) - { - chpx = (CHPX)_textRuns.get(x); - chpx.setStart(chpx.getStart() - length); - chpx.setEnd(chpx.getEnd() - length); - } - } - - public void insert(int listIndex, int cpStart, byte[] grpprl) - { - CHPX insertChpx = new CHPX(cpStart, cpStart, grpprl); - CHPX chpx = (CHPX)_textRuns.get(listIndex); - if (chpx.getStart() < cpStart) - { - CHPX clone = new CHPX(cpStart, chpx.getEnd(), chpx.getGrpprl()); - chpx.setEnd(cpStart); - - _textRuns.add(listIndex + 1, insertChpx); - _textRuns.add(listIndex + 2, clone); - } - else - { - _textRuns.add(listIndex, insertChpx); - } - } - - public void adjustForInsert(int listIndex, int length) - { - int size = _textRuns.size(); - CHPX chpx = (CHPX)_textRuns.get(listIndex); - chpx.setEnd(chpx.getEnd() + length); - - for (int x = listIndex + 1; x < size; x++) - { - chpx = (CHPX)_textRuns.get(x); - chpx.setStart(chpx.getStart() + length); - chpx.setEnd(chpx.getEnd() + length); - } - } - - public List getTextRuns() - { - return _textRuns; - } - - public void writeTo(HWPFFileSystem sys, int fcMin) - throws IOException - { - - HWPFOutputStream docStream = sys.getStream("WordDocument"); - OutputStream tableStream = sys.getStream("1Table"); - - PlexOfCps binTable = new PlexOfCps(4); - - // each FKP must start on a 512 byte page. - int docOffset = docStream.getOffset(); - int mod = docOffset % POIFSConstants.BIG_BLOCK_SIZE; - if (mod != 0) - { - byte[] padding = new byte[POIFSConstants.BIG_BLOCK_SIZE - mod]; - docStream.write(padding); - } - - // get the page number for the first fkp - docOffset = docStream.getOffset(); - int pageNum = docOffset/POIFSConstants.BIG_BLOCK_SIZE; - - // get the ending fc - int endingFc = ((PropertyNode)_textRuns.get(_textRuns.size() - 1)).getEnd(); - endingFc += fcMin; - - - ArrayList overflow = _textRuns; - do - { - PropertyNode startingProp = (PropertyNode)overflow.get(0); - int start = startingProp.getStart() + fcMin; - - CHPFormattedDiskPage cfkp = new CHPFormattedDiskPage(); - cfkp.fill(overflow); - - byte[] bufFkp = cfkp.toByteArray(fcMin); - docStream.write(bufFkp); - overflow = cfkp.getOverflow(); - - int end = endingFc; - if (overflow != null) - { - end = ((PropertyNode)overflow.get(0)).getStart() + fcMin; - } - - byte[] intHolder = new byte[4]; - LittleEndian.putInt(intHolder, pageNum++); - binTable.addProperty(new PropertyNode(start, end, intHolder)); - - } - while (overflow != null); - tableStream.write(binTable.toByteArray()); - } - - - - - -}