cocoon-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From nicola...@apache.org
Subject cvs commit: xml-cocoon2/src/blocks/poi/samples notyet.txt
Date Mon, 25 Nov 2002 15:17:43 GMT
nicolaken    2002/11/25 07:17:43

  Added:       src/blocks/poi/conf poi.xmap
               src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi
                        POIFSElementProcessor.java
               src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf
                        HSSFElementProcessorFactory.java
               src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements
                        Anchors.java Anchors.java.rep
                        BaseElementProcessor.java BorderStyle.java
                        Cell.java CellType.java ColorCode.java
                        ConstraintType.java Direction.java EPAttribute.java
                        EPAttributes.java EPBottom.java EPButton.java
                        EPCell.java EPCellComment.java EPCells.java
                        EPCheckbox.java EPColInfo.java EPCols.java
                        EPConstr.java EPContent.java EPDiagonal.java
                        EPFont.java EPFooter.java EPFrame.java
                        EPGeometry.java EPHeader.java EPItem.java
                        EPLabel.java EPLeft.java EPMargins.java
                        EPMaxCol.java EPMaxRow.java EPName.java
                        EPNames.java EPObjects.java EPPrintInformation.java
                        EPRev_Diagonal.java EPRight.java EPRowInfo.java
                        EPRows.java EPSelection.java EPSelections.java
                        EPSheet.java EPSheetName.java EPSheetNameIndex.java
                        EPSheetObjectBonobo.java EPSheetObjectFilled.java
                        EPSheets.java EPSolver.java EPStyle.java
                        EPStyleBorder.java EPStyleRegion.java EPStyles.java
                        EPSummary.java EPTop.java EPUIData.java
                        EPWorkbook.java EPZoom.java EP_Bottom.java
                        EP_Default_.java EP_Draft.java
                        EP_EvenIfOnlyStyles.java EP_Footer.java
                        EP_Grid.java EP_HCenter.java EP_Header.java
                        EP_Left.java EP_Monochrome.java EP_Name.java
                        EP_Order.java EP_Orientation.java EP_Paper.java
                        EP_RepeatLeft.java EP_RepeatTop.java EP_Right.java
                        EP_Titles.java EP_Top.java EP_Type.java
                        EP_VCenter.java EP_ValString.java EP_Value.java
                        GTKTypes.java HorizontalAlignment.java
                        ObjectFill.java Offsets.java PrintOrder.java
                        PrintOrientation.java PrintUnits.java Row.java
                        Sheet.java StyleOrientation.java StyleShading.java
                        UnderlineType.java VerticalAlignment.java
                        Workbook.java
               src/blocks/poi/java/org/apache/cocoon/serialization
                        ElementProcessorSerializer.java HSSFSerializer.java
                        POIFSSerializer.java
               src/blocks/poi/samples notyet.txt
  Log:
    <action dev="NKB" type="fix" due-to="Hussayn Dabbous" due-to-email="dabbous@saxess.com">
      When a part of a pipeline aggregation fails, cocoon will no more silently return
      without reporting an error.
      Now, upon request of an erroneous page, the result is that I can see all parts, that have been processed so
      far on the screen and I see the error infos positioned at the bottom of the page.
    </action>
  
  Revision  Changes    Path
  1.1                  xml-cocoon2/src/blocks/poi/conf/poi.xmap
  
  Index: poi.xmap
  ===================================================================
  <?xml version="1.0"?>
  <xmap xpath="/sitemap/components/serializers" unless="serializer[@name='xls']">
   <map:serializer name="xls" src="org.apache.cocoon.serialization.HSSFSerializer" mime-type="application/vnd.ms-excel"/>
  </xmap>
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/POIFSElementProcessor.java
  
  Index: POIFSElementProcessor.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  package org.apache.cocoon.components.elementprocessor.impl.poi;
  
  import org.apache.cocoon.components.elementprocessor.*;
  import org.apache.cocoon.components.elementprocessor.types.*;
  
  import org.apache.poi.poifs.filesystem.POIFSFileSystem;
  
  /**
   * extension of ElementProcessor for POIFSSerializers
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public interface POIFSElementProcessor extends ElementProcessor
  {
  
      /**
       * Set the POIFSFileSystem for the element processor
       *
       * @param fs the POIFSFileSystem instance
       */
  
      public void setFilesystem(POIFSFileSystem fs);
  }
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/HSSFElementProcessorFactory.java
  
  Index: HSSFElementProcessorFactory.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf;
  
  import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.*;
  import org.apache.cocoon.components.elementprocessor.*;
  import org.apache.cocoon.components.elementprocessor.impl.AbstractElementProcessorFactory;
  
  /**
   * a simple extension of ElementProcessorFactory that maps the HSSF
   * XML element names to HSSF-specific ElementProcessor progenitor
   * objects.
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class HSSFElementProcessorFactory
      extends AbstractElementProcessorFactory
  {
      //holds the locale configuration
      String locale;
      /**
       * default constructor
       */
  
      public HSSFElementProcessorFactory(String locale)
      {
          super();
          this.locale=locale;
          addElementProcessorProgenitor("Attribute", EPAttribute.class);
          addElementProcessorProgenitor("Attributes", EPAttributes.class);
          addElementProcessorProgenitor("Bottom", EPBottom.class);
          addElementProcessorProgenitor("bottom", EP_Bottom.class);
          addElementProcessorProgenitor("Button", EPButton.class);
          addElementProcessorProgenitor("Cell", EPCell.class);
          addElementProcessorProgenitor("CellComment", EPCellComment.class);
          addElementProcessorProgenitor("Cells", EPCells.class);
          addElementProcessorProgenitor("Checkbox", EPCheckbox.class);
          addElementProcessorProgenitor("ColInfo", EPColInfo.class);
          addElementProcessorProgenitor("Cols", EPCols.class);
          addElementProcessorProgenitor("Constr", EPConstr.class);
          addElementProcessorProgenitor("Content", EPContent.class);
          addElementProcessorProgenitor("Diagonal", EPDiagonal.class);
          addElementProcessorProgenitor("draft", EP_Draft.class);
          addElementProcessorProgenitor("even_if_only_styles",
                                        EP_EvenIfOnlyStyles.class);
          addElementProcessorProgenitor("Font", EPFont.class);
          addElementProcessorProgenitor("Footer", EPFooter.class);
          addElementProcessorProgenitor("footer", EP_Footer.class);
          addElementProcessorProgenitor("Frame", EPFrame.class);
          addElementProcessorProgenitor("Geometry", EPGeometry.class);
          addElementProcessorProgenitor("grid", EP_Grid.class);
          addElementProcessorProgenitor("hcenter", EP_HCenter.class);
          addElementProcessorProgenitor("Header", EPHeader.class);
          addElementProcessorProgenitor("header", EP_Header.class);
          addElementProcessorProgenitor("Item", EPItem.class);
          addElementProcessorProgenitor("Label", EPLabel.class);
          addElementProcessorProgenitor("Left", EPLeft.class);
          addElementProcessorProgenitor("left", EP_Left.class);
          addElementProcessorProgenitor("Margins", EPMargins.class);
          addElementProcessorProgenitor("MaxCol", EPMaxCol.class);
          addElementProcessorProgenitor("MaxRow", EPMaxRow.class);
          addElementProcessorProgenitor("monochrome", EP_Monochrome.class);
          addElementProcessorProgenitor("Name", EPName.class);
          addElementProcessorProgenitor("name", EP_Name.class);
          addElementProcessorProgenitor("Names", EPNames.class);
          addElementProcessorProgenitor("Objects", EPObjects.class);
          addElementProcessorProgenitor("order", EP_Order.class);
          addElementProcessorProgenitor("orientation", EP_Orientation.class);
          addElementProcessorProgenitor("paper", EP_Paper.class);
          addElementProcessorProgenitor("PrintInformation",
                                        EPPrintInformation.class);
          addElementProcessorProgenitor("repeat_left", EP_RepeatLeft.class);
          addElementProcessorProgenitor("repeat_top", EP_RepeatTop.class);
          addElementProcessorProgenitor("Rev-Diagonal", EPRev_Diagonal.class);
          addElementProcessorProgenitor("Right", EPRight.class);
          addElementProcessorProgenitor("right", EP_Right.class);
          addElementProcessorProgenitor("RowInfo", EPRowInfo.class);
          addElementProcessorProgenitor("Rows", EPRows.class);
          addElementProcessorProgenitor("Selection", EPSelection.class);
          addElementProcessorProgenitor("Sheet", EPSheet.class);
          addElementProcessorProgenitor("SheetName", EPSheetName.class);
          addElementProcessorProgenitor("SheetNameIndex",
                                        EPSheetNameIndex.class);
          addElementProcessorProgenitor("SheetObjectBonobo",
                                        EPSheetObjectBonobo.class);
          addElementProcessorProgenitor("SheetObjectFilled",
                                        EPSheetObjectFilled.class);
          addElementProcessorProgenitor("Sheets", EPSheets.class);
          addElementProcessorProgenitor("Selections", EPSelections.class);
          addElementProcessorProgenitor("Solver", EPSolver.class);
          addElementProcessorProgenitor("Style", EPStyle.class);
          addElementProcessorProgenitor("StyleBorder", EPStyleBorder.class);
          addElementProcessorProgenitor("StyleRegion", EPStyleRegion.class);
          addElementProcessorProgenitor("Styles", EPStyles.class);
          addElementProcessorProgenitor("Summary", EPSummary.class);
          addElementProcessorProgenitor("titles", EP_Titles.class);
          addElementProcessorProgenitor("Top", EPTop.class);
          addElementProcessorProgenitor("top", EP_Top.class);
          addElementProcessorProgenitor("type", EP_Type.class);
          addElementProcessorProgenitor("UIData", EPUIData.class);
          addElementProcessorProgenitor("val-string", EP_ValString.class);
          addElementProcessorProgenitor("value", EP_Value.class);
          addElementProcessorProgenitor("vcenter", EP_VCenter.class);
          addElementProcessorProgenitor("Workbook", EPWorkbook.class);
          addElementProcessorProgenitor("Zoom", EPZoom.class);
  	addElementProcessorProgenitor("*", EP_Default_.class);
      }
  
      /**
       * create an ElementProcessor
       *
       * @param progenitor the Object from which the ElementProcessor
       * will be created
       *
       * @return the new ElementProcessor
       *
       * @exception CannotCreateElementProcessorException
       */
  
      protected ElementProcessor doCreateElementProcessor(
              final Object progenitor)
          throws CannotCreateElementProcessorException
      {
          ElementProcessor rval = null;
  
          try
          {
              rval = createNewElementProcessorInstance(( Class ) progenitor);
  
              //every locale aware element processor is passed the locale string
              if (rval instanceof LocaleAware) {
                     ((LocaleAware)rval).setLocale(locale);
              }
          }
          catch (ClassCastException e)
          {
              e.printStackTrace();
              throw new CannotCreateElementProcessorException(
                  "Progenitor is not an instance of Class");
          }
          return rval;
      }
  }   // end public class HSSFElementProcessorFactory
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/Anchors.java
  
  Index: Anchors.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  import org.apache.cocoon.components.elementprocessor.types.NumericConverter;
  import org.apache.cocoon.components.elementprocessor.types.Validator;
  
  import java.io.IOException;
  
  /**
   * Anchors. This particular object is represented in gnumeric's XML as
   * four integers, space separated. Presumably, each represents an
   * anchor for a particular direction -- top, bottom, left, right --
   * but what the reference is for each anchor is not known, nor is it
   * known which one is top, bottom, left, or right, or even whether
   * that's the correct interpretation of the numbers. This is an area
   * of the gnumeric XML that is not terribly well documented even in
   * their code, and I don't think the features that use anchors are
   * terribly mature yet.
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class Anchors
  {
      private static final int       _component_count                  = 4;
      private int[]                  _components                       =
          new int[ _component_count ];
  
      // Each element of an anchor has to be one of these values:
      public static final int        ANCHOR_UNKNOWN                    = 0;
      public static final int        ANCHOR_PERCENTAGE_FROM_COLROW_ST  = 16;
      public static final int        ANCHOR_PERCENTAGE_FROM_COLROW_END = 17;
      public static final int        ANCHOR_PTS_FROM_COLROW_START      = 32;
      public static final int        ANCHOR_PTS_FROM_COLROW_END        = 33;
      public static final int        ANCHOR_PTS_ABSOLUTE               = 48;
      private static final Validator _validator                        =
          new Validator()
      {
          public IOException validate(final Number number)
          {
              switch (number.intValue())
              {
  
                  case ANCHOR_UNKNOWN :
                  case ANCHOR_PERCENTAGE_FROM_COLROW_ST :
                  case ANCHOR_PERCENTAGE_FROM_COLROW_END :
                  case ANCHOR_PTS_FROM_COLROW_START :
                  case ANCHOR_PTS_FROM_COLROW_END :
                  case ANCHOR_PTS_ABSOLUTE :
                      return null;
  
                  default :
                      return new IOException("\"" + number
                                             + "\" is not a legal value");
              }
          }
      };
  
      /**
       * construct the Anchors object
       *
       * @param value the string containing the anchor values
       *
       * @exception IOException if the string is badly formed
       */
  
      public Anchors(final String value)
          throws IOException
      {
          if (value == null)
          {
              throw new IOException("cannot process a null anchors string");
          }
          char[]   input   = value.trim().toCharArray();
          String[] anchors = new String[ _component_count ];
          int      index   = 0;
  
          for (int j = 0; j < _component_count; j++)
          {
              while ((index < input.length)
                      && (Character.isWhitespace(input[ index ])))
              {
                  ++index;
              }
              if (index == input.length)
              {
                  throw new IOException("insufficient anchors in string");
              }
              int tailIndex = index;
  
              while ((tailIndex < input.length)
                      && (!Character.isWhitespace(input[ tailIndex ])))
              {
                  ++tailIndex;
              }
              _components[ j ] = NumericConverter.extractInteger(
                  new String(input, index, tailIndex - index),
                  _validator).intValue();
              index            = tailIndex;
          }
          if (new String(input, index, input.length - index).trim().length()
                  != 0)
          {
              throw new IOException("Too much data in string for "
                                    + _component_count + " anchors");
          }
      }
  
      /**
       * @return components
       */
  
      public int [] getComponents()
      {
          return _components;
      }
  }   // end public class Anchors
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/Anchors.java.rep
  
  Index: Anchors.java.rep
  ===================================================================
  trim
  input
  switch
  new
  extractInteger
  import
  net
  getComponents
  cocoon
  ANCHOR_PTS_FROM_COLROW_END
  serialization
  sourceforge
  public
  util
  null
  Character
  default
  package
  throw
  class
  Anchors
  Validator
  throws
  component_count
  anchors
  toCharArray
  tailIndex
  length
  validate
  xml
  Number
  components
  ANCHOR_PERCENTAGE_FROM_COLROW_ST
  io
  ANCHOR_PTS_ABSOLUTE
  NumericConverter
  index
  while
  if
  private
  final
  static
  poi
  isWhitespace
  int
  char
  ANCHOR_PTS_FROM_COLROW_START
  String
  java
  for
  ANCHOR_PERCENTAGE_FROM_COLROW_END
  value
  hssf
  case
  j
  IOException
  return
  intValue
  validator
  ANCHOR_UNKNOWN
  number
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/BaseElementProcessor.java
  
  Index: BaseElementProcessor.java
  ===================================================================
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  import org.apache.poi.poifs.filesystem.POIFSFileSystem;
  import org.apache.cocoon.CascadingIOException;
  import org.apache.cocoon.components.elementprocessor.*;
  import org.apache.cocoon.components.elementprocessor.types.*;
  import org.apache.cocoon.components.elementprocessor.impl.poi.POIFSElementProcessor;
  
  import org.apache.avalon.framework.logger.AbstractLogEnabled;
  
  import java.util.*;
  
  import java.io.IOException;
  
  /**
   * The BaseElementProcessor class provides default behavior for
   * classes that can handle a particular XML element's content.
   *
   * It is intended that all ElementProcessors should extend this class.
   * This class is declared Abstract although it has no abstract
   * methods. It can be used 'as is' for a no-op ElementProcessor, and
   * an ElementProcessor that chooses to simply extend this class with
   * no overrides will be a no-op ElementProcessor.
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public abstract class BaseElementProcessor extends AbstractLogEnabled
       implements POIFSElementProcessor
  {
      private Map                  _attributes;
      private POIFSFileSystem      _filesystem;
      private BaseElementProcessor _parent;
      private StringBuffer         _data;
      
      /**
       * Constructor
       *
       * @param implied_attributes an array of Attributes which might
       *                           not appear in the initialization call
       *                           because they are implied, and the SAX
       *                           processor will not automatically
       *                           generate them.
       */
  
      protected BaseElementProcessor(final Attribute [] implied_attributes)
      {
          _attributes = new HashMap();
          _filesystem = null;
          _parent     = null;
          _data       = new StringBuffer();
  
          if (implied_attributes != null)
          {
              for (int k = 0; k < implied_attributes.length; k++)
              {
                  _attributes.put(implied_attributes[ k ].getName(),
                                  implied_attributes[ k ]);
              }
          }
      }
  
      /**
       * @return the Attributes managed by this ElementProcessor. May be
       *         empty, but never null
       */
  
      protected Iterator getAttributes()
      {
          return _attributes.values().iterator();
      }
  
      /**
       * Get the value of an attribute
       *
       * @param name the name of the attribute to look up
       *
       * @return the value of the specified attribute; will be null if
       *         the attribute doesn't exist
       */
  
      protected String getValue(final String name)
      {
          String    value = null;
          Attribute attr  = ( Attribute ) _attributes.get(name);
  
          if (attr != null)
          {
              value = attr.getValue();
          }
          return value;
      }
  
      /**
       * @return the POIFSFileSystem object
       */
  
      protected POIFSFileSystem getFilesystem()
      {
          return _filesystem;
      }
  
  
      /**
       * @return the parent ElementProcessor; may be null
       */
  
      protected ElementProcessor getParent()
      {
          return _parent;
      }
  
      /**
       * get the nearest ancestor that happens to be an instance of the
       * specified class
       *
       * @param theclass the class we're looking for
       *
       * @return an ancestor of the specified class; null if no such
       *         ancestor exists
       */
  
      protected ElementProcessor getAncestor(final Class theclass)
      {
  	ElementProcessor parent = getParent();
  	if ((parent == null) || parent.getClass().equals(theclass))
  	{
  	    return parent;
  	}
  	else
  	{
  	    return ((BaseElementProcessor)parent).getAncestor(theclass);
  	}
      }
  
      /**
       * @return the data, both regular characters and whitespace
       *         characters, collected so far
       */
  
      protected String getData()
      {
          return _data.toString().trim();
      }
  
      /**
       * get the workbook we're working on. If it isn't in this
       * instance, check the parent
       *
       * @return the workbook we're working on. Never null
       *
       * @exception IOException if the workbook is missing
       */
  
      protected Workbook getWorkbook()
          throws IOException
      {
          if (_parent == null)
          {
  
              // hit the end of the containment hierarchy without
              // finding it. This Is Bad
              throw new IOException("Cannot find the workbook object");
          }
          else
          {
              return _parent.getWorkbook();
          }
      }
  
      /**
       * get the current sheet we're working on. If it isn't in this
       * instance, check the parent
       *
       * @return the current sheet we're working on. Never null
       *
       * @exception IOException if the sheet is missing
       */
  
      protected Sheet getSheet()
          throws IOException
      {
          if (_parent == null)
          {
  
              // hit the end of the containment hierarchy without
              // finding it. This Is Bad
              throw new IOException("Cannot find the sheet object");
          }
          else
          {
              return _parent.getSheet();
          }
      }
  
      /**
       * get the current cell we're working on. If it isn't in this
       * instance, check the parent
       *
       * @return the current cell we're working on. Never null
       *
       * @exception IOException if the cell is missing
       */
  
      protected Cell getCell()
          throws IOException
      {
          if (_parent == null)
          {
  
              // hit the end of the containment hierarchy without
              // finding it. This Is Bad
              throw new IOException("Cannot find the cell object");
          }
          else
          {
              return _parent.getCell();
          }
      }
  
      /* ********** START implementation of ElementProcessor ********** */
  
      /**
       * The implementation should walk the array of attributes and
       * perform appropriate actions based on that data. The array of
       * attributes is guaranteed never to be null, but it can be
       * empty. An implementation can expect code like this to work
       * without throwing runtime exceptions:
       * <br>
       * <code>
       * for (int k = 0; k < attributes.length; k++)<br>
       * {<br>
       * &nbsp;&nbsp;&nbsp;&nbsp;Attribute attr = attributes[ k ];<br>
       * &nbsp;&nbsp;&nbsp;&nbsp;// process attribute</br>
       * }</br>
       * </code>
       * <br>
       * <b>NOTE: if the XML DTD or schema includes <i>IMPLIED</i>
       * attributes for an element, those attributes are not included in
       * the Attribute array - they're not in the data provided in the
       * startElement call. The constructor for the ElementProcessor
       * should set those implied attributes itself, and allow them to
       * be overridden if the XML source provided <i>explicit</i> values
       * for them.</b>
       * <br>
       * The parent ElementProcessor is a reference to the
       * ElementProcessor whose corresponding XML element contains this
       * ElementProcessor's corresponding XML element. It will not be
       * null unless this ElementProcessor's corresponding XML element
       * is the top-level element in the XML document. Whether this
       * ElementProcessor needs to establish a containment relationship
       * with its parent or not, and whether it needs to do so at the
       * beginning, middle, or end of its life cycle, are private
       * matters left to the discretion of the individual
       * ElementProcessor implementation. If the ElementProcessor needs
       * to interact with its parent ElementProcessor, but is not ready
       * to do so when the initialize method is called, it must cache
       * the reference to its parent.
       * <br>
       *
       * @param attributes the array of Attribute instances; may be
       *                   empty, will never be null
       * @param parent the parent ElementProcessor; may be null
       *
       * @exception IOException if anything is wrong
       */
  
      public void initialize(final Attribute [] attributes,
                             final ElementProcessor parent)
          throws IOException
      {
          try
          {
              _parent = ( BaseElementProcessor ) parent;
          }
          catch (ClassCastException ignored)
          {
              throw new CascadingIOException(
                  "parent is not compatible with this serializer", ignored);
          }
  
          // can't trust the guarantee -- an overriding implementation
          // may have screwed this up
          if (attributes != null)
          {
              for (int k = 0; k < attributes.length; k++)
              {
                  _attributes.put(attributes[ k ].getName(), attributes[ k ]);
              }
          }
      }
  
      /**
       * The data provided in this method call comes from the
       * corresponding XML element's contents. The array is guaranteed
       * not to be null and will never be empty.
       * <br>
       * The POIFSSerializer will make 0 to many calls to this method;
       * all such calls will occur after the initialize method is called
       * and before the endProcessing method is called.
       * <br>
       * Calls to this method may be interleaved with calls to
       * acceptWhitespaceCharacters. All calls to acceptCharacters and
       * acceptWhitespaceCharacters are guaranteed to be in the same
       * order as their data is in the element.
       *
       * @param data the character data
       */
  
      public void acceptCharacters(final char [] data)
      {
          if (data != null)
          {
              _data.append(data);
          }
      }
  
      /**
       * The data provided in this method call comes from the
       * corresponding XML element's contents. The array is guaranteed
       * not to be null and will never be empty.
       * <br>
       * The POIFSSerializer will make 0 to many calls to this method;
       * all such calls will occur after the initialize method is called
       * and before the endProcessing method is called.
       * <br>
       * Calls to this method may be interleaved with calls to
       * acceptCharacters. All calls to acceptCharacters and
       * acceptWhitespaceCharacters are guaranteed to be in the same
       * order as their data is in the element.
       *
       * @param data the whitespace characters
       */
  
      public void acceptWhitespaceCharacters(final char [] data)
      {
          if (data != null)
          {
              _data.append(data);
          }
      }
  
      /**
       * This is the last method call executed by the
       * POIFSSerializer. When this method is called, the
       * ElementProcessor should finish its work and perform its final
       * interactions with its parent ElementProcessor and the
       * filesystem, if necessary.
       * <br>
       * If the implementation cached the parent ElementProcessor
       * reference, the filesystem reference, or both, when the
       * initialize method was called, it should null out those
       * references.
       *
       * @exception IOException
       */
  
      public void endProcessing()
          throws IOException
      {
          _filesystem = null;
          _parent     = null;
      }
  
      /* **********  END  implementation of ElementProcessor ********** */
      /* ********** START implementation of POIFSElementProcessor ********** */
  
      /**
       * Set the POIFSFileSystem for the element processor
       *
       * @param fs the POIFSFileSystem instance
       */
  
      public void setFilesystem(POIFSFileSystem fs)
      {
  	_filesystem = fs;
      }
  
  
      /* **********  END  implementation of POIFSElementProcessor ********** */
  }   // end package scope abstract class BaseElementProcessor
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/BorderStyle.java
  
  Index: BorderStyle.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  /**
   * Border style codes
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class BorderStyle
  {
      public static final int BORDER_STYLE_NONE                = 0;    
      public static final int BORDER_STYLE_THIN                = 1;
      public static final int BORDER_STYLE_MEDIUM              = 2;
      public static final int BORDER_STYLE_DASHED              = 3;
      public static final int BORDER_STYLE_DOTTED              = 4;
      public static final int BORDER_STYLE_THICK               = 5;
      public static final int BORDER_STYLE_DOUBLE              = 6;
      public static final int BORDER_STYLE_HAIR                = 7;
      public static final int BORDER_STYLE_MEDIUM_DASH         = 8;
      public static final int BORDER_STYLE_DASH_DOT            = 9;
      public static final int BORDER_STYLE_MEDIUM_DASH_DOT     = 10;
      public static final int BORDER_STYLE_DASH_DOT_DOT        = 11;
      public static final int BORDER_STYLE_MEDIUM_DASH_DOT_DOT = 12;
      public static final int BORDER_STYLE_SLANTED_DASH_DOT    = 13;
  
      private BorderStyle()
      {
      }
  
      /**
       * Is this a valid border style?
       *
       * @param val value to be checked
       *
       * @return true if valid, false otherwise
       */
  
      public static boolean isValid(int val)
      {
          return ((val >= BORDER_STYLE_NONE)
                  && (val <= BORDER_STYLE_SLANTED_DASH_DOT));
      }
  }   // end public class BorderStyle
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/Cell.java
  
  Index: Cell.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.CascadingIOException;
  import org.apache.poi.hssf.usermodel.HSSFCell;
  import org.apache.poi.hssf.usermodel.HSSFCellStyle;
  
  import java.io.IOException;
  import java.text.DecimalFormat;
  import java.text.NumberFormat;
  import java.text.ParseException;
  import java.util.Locale;
  
  
  /**
   * internal representation of a Cell
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  // package scope
  class Cell
  {
      private HSSFCell _cell;
  
      // original CellType value
      private int      _celltype;
      private Locale   locale; 
  
      /**
       * Constructor Cell
       *
       * @param cell
       */
  
      Cell(final HSSFCell cell, final int cellType)
      {
          _cell     = cell;
          _celltype = cellType;
      }
  
      /**
       * if there is a locale that can be used for validation it is
       * set here.  Cell expects a fully constructed locale.  It must 
       * be passed in before SetContent can be called.
       */
      void setLocale(Locale locale) {
            this.locale = locale;
      }
  
      /**
       * set content
       *
       * @param content the value of the cell, as a string
       *
       * @exception IOException
       */
  
      void setContent(final String content)
          throws IOException
      {
          if (content.charAt(0) == '=') {  //seems like a kludge but this is
                                           //actually how gnumeric does it
              _cell.setCellType(HSSFCell.CELL_TYPE_FORMULA);
          }
          
          if (_cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC)
          {
              try
              {
                  if (_celltype == CellType.CELL_TYPE_FLOAT)
                  {       // if there is a locale set then we'll use it to 
                          // parse the string form of the number... otherwise
                          // we'll use the default.
                          NumberFormat form = null;
                          if (locale == null) { 
                              form = NumberFormat.getInstance(); 
                          } else { 
                              form = NumberFormat.getInstance(locale); 
                          }
                          _cell.setCellValue(form.parse(content).doubleValue());
                  }
                  else
                  {
                      _cell.setCellValue(Integer.parseInt(content));
                  }
              }
              catch (NumberFormatException e)
              {
                  throw new CascadingIOException("Invalid value for a numeric cell: "
                                        + content, e);
              } 
              catch (ParseException e) {
                  throw new CascadingIOException("Invalid value for a numberic cell: " + content, e);
              }
          }
          else if (_cell.getCellType() == HSSFCell.CELL_TYPE_STRING)
          {
              _cell.setCellValue(content);
          } else if (_cell.getCellType() == HSSFCell.CELL_TYPE_FORMULA) {
                  _cell.setCellFormula(content.toUpperCase().substring(1));
          }
      }
      
      void setStyle (HSSFCellStyle style) {
          if (style != null) {
              _cell.setCellStyle(style);
          }
      }
  
      /**
       * @return cell type
       */
  
      int getCellType()
      {
          return _cell.getCellType();
      }
  
      /**
       * @return string value
       */
  
      String getStringValue()
      {
          return _cell.getStringCellValue();
      }
  
      /**
       * @return numeric value
       */
  
      double getNumericValue()
      {
          return _cell.getNumericCellValue();
      }
  }   // end package scope class Cell
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/CellType.java
  
  Index: CellType.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.poi.hssf.usermodel.HSSFCell;
  
  /**
   * Cell type codes
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class CellType
  {
      public static final int CELL_TYPE_EMPTY     = 10;
      public static final int CELL_TYPE_BOOLEAN   = 20;
      public static final int CELL_TYPE_INTEGER   = 30;
      public static final int CELL_TYPE_FLOAT     = 40;
      public static final int CELL_TYPE_ERROR     = 50;
      public static final int CELL_TYPE_STRING    = 60;
      public static final int CELL_TYPE_CELLRANGE = 70;
      public static final int CELL_TYPE_ARRAY     = 80;
  
      private CellType()
      {
      }
  
      /**
       * Is this a valid cell type?
       *
       * @param val value to be checked
       *
       * @return true if valid, false otherwise
       */
  
      public static boolean isValid(final int val)
      {
          switch (val)
          {
  
              case CELL_TYPE_EMPTY :
              case CELL_TYPE_BOOLEAN :
              case CELL_TYPE_INTEGER :
              case CELL_TYPE_FLOAT :
              case CELL_TYPE_ERROR :
              case CELL_TYPE_STRING :
              case CELL_TYPE_CELLRANGE :
              case CELL_TYPE_ARRAY :
                  return true;
  
              default :
                  return false;
          }
      }
  
      /**
       * Convert a CellType enum into an HSSFCell enum
       *
       * @param val the value to be converted
       *
       * @return the converted value
       */
  
      static int convertCellType(final int val)
      {
          switch (val)
          {
  
              case CELL_TYPE_INTEGER :
              case CELL_TYPE_FLOAT :
                  return HSSFCell.CELL_TYPE_NUMERIC;
  
              case CELL_TYPE_STRING :
                  return HSSFCell.CELL_TYPE_STRING;
  
              default :
                  return HSSFCell.CELL_TYPE_BLANK;
          }
      }
  }   // end public class CellType
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/ColorCode.java
  
  Index: ColorCode.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import java.io.IOException;
  
  import java.util.StringTokenizer;
  
  /**
   * Color codes
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   * @author Andrew C. Oliver (acoliver2@users.sourceforge.net)
   */
  
  public class ColorCode
  {
      private static final int _red             = 0;
      private static final int _green           = 1;
      private static final int _blue            = 2;
      private static final int _component_count = 3;
      private int[]            _components      = new int[ _component_count ];
      private String           rgbstring        = null;
  
      /**
       * construct the ColorCode object
       *
       * @param value the string containing the colors
       *
       * @exception IOException if the string is badly formed
       */
  
      public ColorCode(final String value)
          throws IOException
      {
          rgbstring = value;
          if (value == null)
          {
              throw new IOException("cannot process a null color code");
          }
          StringTokenizer tokenizer = new StringTokenizer(value.trim(), ":");
  
          if (tokenizer.countTokens() != _component_count)
          {
              throw new IOException("color code must have exactly "
                                    + _component_count
                                    + " components, no more, no less");
          }
          for (int j = 0; j < _component_count; j++)
          {
              try
              {
                  _components[ j ] = Integer.parseInt(tokenizer.nextToken(),
                                                      16);
              }
              catch (Exception e)
              {
                  throw new IOException("cannot parse component #" + j + " ("
                                        + e.getMessage() + ")");
              }
              if ((_components[ j ] < 0) || (_components[ j ] > 65535))
              {
                  throw new IOException("Component #" + j + " is out of range");
              }
          }
      }
  
      /**
       * @return red component
       */
  
      public int getRed()
      {
          return _components[ _red ];
      }
  
      /**
       * @return green component
       */
  
      public int getGreen()
      {
          return _components[ _green ];
      }
  
      /**
       * @return blue component
       */
  
      public int getBlue()
      {
          return _components[ _blue ];
      }
      
      public String toString() {
          return rgbstring;
      }
  }   // end public class ColorCode
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/ConstraintType.java
  
  Index: ConstraintType.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  /**
   * Contraint codes
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class ConstraintType
  {
      public static final int CONSTRAINT_TYPE_NONE         = 0;
      public static final int CONSTRAINT_TYPE_LESS_THAN    = 1;
      public static final int CONSTRAINT_TYPE_GREATER_THAN = 2;
      public static final int CONSTRAINT_TYPE_EQUALS       = 4;
      public static final int CONSTRAINT_TYPE_INT          = 8;
      public static final int CONSTRAINT_TYPE_BOOL         = 16;
  
      private ConstraintType()
      {
      }
  
      /**
       * Is this a valid constraint?
       *
       * @param val value to be checked
       *
       * @return true if valid, false otherwise
       */
  
      public static boolean isValid(final int val)
      {
          switch (val)
          {
  
              case CONSTRAINT_TYPE_NONE :
              case CONSTRAINT_TYPE_LESS_THAN :
              case CONSTRAINT_TYPE_GREATER_THAN :
              case CONSTRAINT_TYPE_EQUALS :
              case CONSTRAINT_TYPE_INT :
              case CONSTRAINT_TYPE_BOOL :
                  return true;
  
              default :
                  return false;
          }
      }
  }   // end public class ConstraintType
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/Direction.java
  
  Index: Direction.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  /**
   * Direction codes
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class Direction
  {
      public static final int DIRECTION_UNKNOWN    = -1;
      public static final int DIRECTION_UP_RIGHT   = 0;
      public static final int DIRECTION_UP_LEFT    = 1;
      public static final int DIRECTION_DOWN_RIGHT = 16;
      public static final int DIRECTION_DOWN_LEFT  = 17;
  
      private Direction()
      {
      }
  
      /**
       * Is this a valid direction?
       *
       * @param val value to be checked
       *
       * @return true if valid, false otherwise
       */
  
      public static boolean isValid(final int val)
      {
          switch (val)
          {
  
              case DIRECTION_UNKNOWN :
              case DIRECTION_UP_RIGHT :
              case DIRECTION_UP_LEFT :
              case DIRECTION_DOWN_RIGHT :
              case DIRECTION_DOWN_LEFT :
                  return true;
  
              default :
                  return false;
          }
      }
  }   // end public class Direction
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPAttribute.java
  
  Index: EPAttribute.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  /**
   * No-op implementation of ElementProcessor to handle the "Attribute" tag
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * Attribute has no attributes
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EPAttribute
      extends BaseElementProcessor
  {
  
      /**
       * constructor
       */
  
      public EPAttribute()
      {
          super(null);
      }
  }   // end public class EPAttribute
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPAttributes.java
  
  Index: EPAttributes.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  /**
   * No-op implementation of ElementProcessor to handle the "Attributes"
   * tag
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * This element has no attributes
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EPAttributes
      extends BaseElementProcessor
  {
  
      /**
       * constructor
       */
  
      public EPAttributes()
      {
          super(null);
      }
  }   // end public class EPAttributes
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPBottom.java
  
  Index: EPBottom.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.Attribute;
  import org.apache.cocoon.components.elementprocessor.ElementProcessor;
  
  import org.apache.cocoon.components.elementprocessor.types.NumericConverter;
  import org.apache.cocoon.components.elementprocessor.types.NumericResult;
  import org.apache.cocoon.components.elementprocessor.types.Validator;
  
  import org.apache.poi.hssf.util.HSSFColor;
  import org.apache.poi.hssf.usermodel.HSSFCellStyle;
  
  import java.io.IOException;
  import java.util.Hashtable;
  
  /**
   * No-op implementation of ElementProcessor to handle the "Bottom" tag
   *
   * This element has two attributes and no content.
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   * @author Andrew C. Oliver (acoliver2@users.sourceforge.net)
   */
  
  public class EPBottom
      extends BaseElementProcessor
  {
      private NumericResult          _style;
      private ColorCode              _color;
      private boolean                _color_fetched;
      private static final String    _style_attribute = "Style";
      private static final String    _color_attribute = "Color";
      private static final Validator _style_validator = new Validator()
      {
          public IOException validate(final Number number)
          {
              return BorderStyle.isValid(number.intValue()) ? null
                                                            : new IOException(
                                                                "\"" + number
                                                                + "\" is not a legal value");
          }
      };
  
      /**
       * constructor
       */
  
      public EPBottom()
      {
          super(null);
          _style         = null;
          _color         = null;
  	_color_fetched = false;
      }
      
      /**
       * Override of Initialize() implementation
       *
       * @param attributes the array of Attribute instances; may be
       *                   empty, will never be null
       * @param parent the parent ElementProcessor; may be null
       * @param filesystem the POIFSFileSystem object
       *
       * @exception IOException if anything is wrong
       */
  
      public void initialize(final Attribute [] attributes,
                             final ElementProcessor parent)
          throws IOException
      {
          super.initialize(attributes, parent);
          EPStyle pstyle = (EPStyle) getAncestor(EPStyle.class);
          if ((pstyle != null) && pstyle.isValid()) {
              Hashtable colorhash = pstyle.getColorHash();        
              HSSFColor color = null;
  
              HSSFCellStyle style = pstyle.getStyle();  //oops a little confusing
                                                        //below is the style attribute
                                                        //this is an HSSFCellStyle
                                                        //associated with EPStyle
              style.setBorderBottom((short)getStyle());
  
              ColorCode colorCode = getColor();
              if (colorCode != null) {
                  color = (HSSFColor)colorhash.get(colorCode.toString());
              }
              if (color == null) color = new HSSFColor.BLACK();
  
  
              style.setBottomBorderColor(color.getIndex());
          }
          
      }    
      
      
      
  
      /**
       * @return style as an int from BorderStyle
       *
       * @exception IOException
       */
  
      public int getStyle()
          throws IOException
      {
          if (_style == null)
          {
              _style =
                  NumericConverter.extractInteger(getValue(_style_attribute),
                                                  _style_validator);
          }
          return _style.intValue();
      }
  
      /**
       * @return color
       *
       * @exception IOException
       */
  
      public ColorCode getColor()
          throws IOException
      {
          if (!_color_fetched)
          {
  	    String colorString = getValue(_color_attribute);
  	    if (colorString != null)
  	    {
  		_color = new ColorCode(colorString);
  	    }
  	    _color_fetched = true;
          }
          return _color;
      }
  }   // end public class EPBottom
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPButton.java
  
  Index: EPButton.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.NumericConverter;
  import org.apache.cocoon.components.elementprocessor.types.NumericResult;
  import org.apache.cocoon.components.elementprocessor.types.Validator;
  
  import java.io.IOException;
  
  /**
   * No-op implementation of ElementProcessor to handle the "Button" tag
   *
   * This element has a small number of Attributes and no content.
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EPButton
      extends BaseElementProcessor
  {
      private String                 _label;
      private String                 _object_bound;
      private Offsets                _object_offset;
      private Anchors                _object_anchor_type;
      private NumericResult          _direction;
      private static final String    _label_attribute              = "Label";
      private static final String    _object_bound_attribute       =
          "ObjectBound";
      private static final String    _object_offset_attribute      =
          "ObjectOffset";
      private static final String    _object_anchor_type_attribute =
          "ObjectAnchorType";
      private static final String    _direction_attribute          =
          "Direction";
      private static final Validator _direction_validator          =
          new Validator()
      {
          public IOException validate(final Number number)
          {
              return Direction.isValid(number.intValue()) ? null
                                                          : new IOException(
                                                              "\"" + number
                                                              + "\" is not a legal value");
          }
      };
  
      /**
       * constructor
       */
  
      public EPButton()
      {
          super(null);
          _label              = null;
          _object_bound       = null;
          _object_offset      = null;
          _object_anchor_type = null;
          _direction          = null;
      }
  
      /**
       * @return label
       *
       * @exception IOException
       */
  
      public String getLabel()
          throws IOException
      {
          if (_label == null)
          {
              _label = getValue(_label_attribute);
              if (_label == null)
              {
                  throw new IOException("missing " + _label_attribute
                                        + " attribute");
              }
          }
          return _label;
      }
  
      /**
       * @return object_bound
       *
       * @exception IOException
       */
  
      public String getObjectBound()
          throws IOException
      {
          if (_object_bound == null)
          {
              _object_bound = getValue(_object_bound_attribute);
              if (_object_bound == null)
              {
                  throw new IOException("missing " + _object_bound_attribute
                                        + " attribute");
              }
          }
          return _object_bound;
      }
  
      /**
       * @return offsets
       *
       * @exception IOException
       */
  
      public Offsets getOffsets()
          throws IOException
      {
          if (_object_offset == null)
          {
              _object_offset = new Offsets(getValue(_object_offset_attribute));
          }
          return _object_offset;
      }
  
      /**
       * @return anchors
       *
       * @exception IOException
       */
  
      public Anchors getAnchors()
          throws IOException
      {
          if (_object_anchor_type == null)
          {
              _object_anchor_type =
                  new Anchors(getValue(_object_anchor_type_attribute));
          }
          return _object_anchor_type;
      }
  
      /**
       * @return direction as a public member of Direction
       *
       * @exception IOException
       */
  
      public int getDirection()
          throws IOException
      {
          if (_direction == null)
          {
              _direction = NumericConverter.extractInteger(
                  getValue(_direction_attribute), _direction_validator);
          }
          return _direction.intValue();
      }
  }   // end public class EPButton
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPCell.java
  
  Index: EPCell.java
  ===================================================================
  /*
   
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
   
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
   
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
   
   */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  import org.apache.cocoon.components.elementprocessor.types.Attribute;
  import org.apache.cocoon.components.elementprocessor.ElementProcessor;
  import org.apache.cocoon.components.elementprocessor.LocaleAware;
  import org.apache.cocoon.components.elementprocessor.types.NumericConverter;
  import org.apache.cocoon.components.elementprocessor.types.NumericResult;
  import org.apache.cocoon.components.elementprocessor.types.Validator;
  import org.apache.poi.hssf.usermodel.HSSFCell;
  
  import java.io.IOException;
  import java.util.Locale;
  
  /**
   * implementation of ElementProcessor to handle the "Cell" tag
   *
   * This element has several attributes and may contain other elements.
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EPCell
  extends BaseElementProcessor implements LocaleAware {
      private Cell                   _cell;
      private NumericResult          _col;
      private NumericResult          _row;
      private NumericResult          _expr_id;
      private NumericResult          _cols;
      private NumericResult          _rows;
      private NumericResult          _value_type;
      private String                 _value_format;
      private boolean                _expr_id_fetched;
      private boolean                _cols_fetched;
      private boolean                _rows_fetched;
      private boolean                _value_type_fetched;
      private boolean                _value_format_fetched;
      private static final String    _col_attribute          = "Col";
      private static final String    _row_attribute          = "Row";
      private static final String    _expr_id_attribute      = "ExprID";
      private static final String    _cols_attribute         = "Cols";
      private static final String    _rows_attribute         = "Rows";
      private static final String    _value_type_attribute   = "ValueType";
      private static final String    _value_format_attribute = "ValueFormat";
      private String                 locale; // the locale for this EPCell
      private static final Validator _cell_type_validator    = new Validator() {
          public IOException validate(final Number number) {
              return CellType.isValid(number.intValue()) ? null
              : new IOException(
              "\"" + number
              + "\" is not a legal value");
          }
      };
      
      /**
       * constructor
       */
      
      public EPCell() {
          super(null);
          _cell                 = null;
          _col                  = null;
          _row                  = null;
          _expr_id              = null;
          _cols                 = null;
          _rows                 = null;
          _value_type           = null;
          _value_format         = null;
          _expr_id_fetched      = false;
          _cols_fetched         = false;
          _rows_fetched         = false;
          _value_type_fetched   = false;
          _value_format_fetched = false;
      }
      
      /**
       * @return column
       *
       * @exception IOException
       */
      
      public int getColumn()
      throws IOException {
          if (_col == null) {
              _col = NumericConverter
              .extractNonNegativeInteger(getValue(_col_attribute));
          }
          return _col.intValue();
      }
      
      /**
       * @return row
       *
       * @exception IOException
       */
      
      public int getRow()
      throws IOException {
          if (_row == null) {
              _row = NumericConverter
              .extractNonNegativeInteger(getValue(_row_attribute));
          }
          return _row.intValue();
      }
      
      /**
       * @return expression id
       *
       * @exception IOException
       * @exception NullPointerException
       */
      
      public int getExpressionId()
      throws IOException, NullPointerException {
          if (!_expr_id_fetched) {
              String valueString = getValue(_expr_id_attribute);
              
              if (valueString != null) {
                  _expr_id =
                  NumericConverter.extractPositiveInteger(valueString);
              }
              _expr_id_fetched = true;
          }
          return _expr_id.intValue();
      }
      
      /**
       * @return columns
       *
       * @exception IOException
       * @exception NullPointerException
       */
      
      public int getColumns()
      throws IOException, NullPointerException {
          if (!_cols_fetched) {
              String valueString = getValue(_cols_attribute);
              
              if (valueString != null) {
                  _cols = NumericConverter.extractPositiveInteger(valueString);
              }
              _cols_fetched = true;
          }
          return _cols.intValue();
      }
      
      /**
       * @return rows
       *
       * @exception IOException
       * @exception NullPointerException
       */
      
      public int getRows()
      throws IOException, NullPointerException {
          if (!_rows_fetched) {
              String valueString = getValue(_rows_attribute);
              
              if (valueString != null) {
                  _rows = NumericConverter.extractPositiveInteger(valueString);
              }
              _rows_fetched = true;
          }
          return _rows.intValue();
      }
      
      /**
       * @return cell type as a public member of CellType
       *
       * @exception IOException, NullPointerException
       * @exception NullPointerException
       */
      
      public int getCellType()
      throws IOException, NullPointerException {
          if (!_value_type_fetched) {
              String valueString = getValue(_value_type_attribute);
              
              if (valueString != null) {
                  _value_type = NumericConverter.extractInteger(valueString,
                  _cell_type_validator);
              }
              _value_type_fetched = true;
          }
          
          return  _value_type.intValue();
      }
      
      /**
       * @return format string; null if no such attribute
       *
       * @exception IOException
       */
      
      public String getFormat()
      throws IOException {
          if (!_value_format_fetched) {
              _value_format         = getValue(_value_format_attribute);
              _value_format_fetched = true;
          }
          return _value_format;
      }
      
      /**
       * Override of Initialize() implementation
       *
       * @param attributes the array of Attribute instances; may be
       *                   empty, will never be null
       * @param parent the parent ElementProcessor; may be null
       *
       * @exception IOException if anything is wrong
       */
      
      public void initialize(final Attribute [] attributes,
      final ElementProcessor parent)
      throws IOException {
          super.initialize(attributes, parent);
          int cellType = -1;
          
          try {
              cellType = getCellType();
          }
          catch (NullPointerException ignored) {
          }
          _cell = getSheet().getRow(getRow()).createCell(getColumn(),
          cellType);
          
          
      }
      
      public String getContent() {
          String content = getData();
          return content;
      }
      
      /**
       * end processing -- apply content to the cell.
       *
       * @exception IOException
       */
      
      public void endProcessing() throws IOException {
          String content = getContent();
          if (content != null && locale != null) {
              // if there is a locale then set it (otherwise the default locale
              // will be used
              getCell().setLocale(new Locale(locale, locale.toUpperCase()));
          }
          if (content != null && !content.trim().equals("")) {
              getCell().setContent(getContent());
          }
      }
      
      /**
       * override of getCell()
       *
       * @return the cell
       */
      
      protected Cell getCell() {
          return _cell;
      }
  
      // from LocaleAware - set the locale for a cell
      public void setLocale(String locale) {
          this.locale=locale;
      }
      
      
  }   // end public class EPCell
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPCellComment.java
  
  Index: EPCellComment.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.NumericConverter;
  import org.apache.cocoon.components.elementprocessor.types.NumericResult;
  import org.apache.cocoon.components.elementprocessor.types.Validator;
  
  import java.io.IOException;
  
  /**
   * No-op implementation of ElementProcessor to handle the
   * "CellComment" tag
   *
   * This element has a small number of Attributes and no content.
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EPCellComment
      extends BaseElementProcessor
  {
      private String                 _author;
      private String                 _text;
      private String                 _object_bound;
      private Offsets                _object_offset;
      private Anchors                _object_anchor_type;
      private NumericResult          _direction;
      private static final String    _author_attribute             = "Author";
      private static final String    _text_attribute               = "Text";
      private static final String    _object_bound_attribute       =
          "ObjectBound";
      private static final String    _object_offset_attribute      =
          "ObjectOffset";
      private static final String    _object_anchor_type_attribute =
          "ObjectAnchorType";
      private static final String    _direction_attribute          =
          "Direction";
      private static final Validator _direction_validator          =
          new Validator()
      {
          public IOException validate(final Number number)
          {
              return Direction.isValid(number.intValue()) ? null
                                                          : new IOException(
                                                              "\"" + number
                                                              + "\" is not a legal value");
          }
      };
  
      /**
       * constructor
       */
  
      public EPCellComment()
      {
          super(null);
          _author             = null;
          _text               = null;
          _object_bound       = null;
          _object_offset      = null;
          _object_anchor_type = null;
          _direction          = null;
      }
  
      /**
       * @return author
       *
       * @exception IOException
       */
  
      public String getAuthor()
          throws IOException
      {
          if (_author == null)
          {
              _author = getValue(_author_attribute);
              if (_author == null)
              {
                  throw new IOException("missing " + _author_attribute
                                        + " attribute");
              }
          }
          return _author;
      }
  
      /**
       * @return text
       *
       * @exception IOException
       */
  
      public String getText()
          throws IOException
      {
          if (_text == null)
          {
              _text = getValue(_text_attribute);
              if (_text == null)
              {
                  throw new IOException("missing " + _text_attribute
                                        + " attribute");
              }
          }
          return _text;
      }
  
      /**
       * @return object_bound
       *
       * @exception IOException
       */
  
      public String getObjectBound()
          throws IOException
      {
          if (_object_bound == null)
          {
              _object_bound = getValue(_object_bound_attribute);
              if (_object_bound == null)
              {
                  throw new IOException("missing " + _object_bound_attribute
                                        + " attribute");
              }
          }
          return _object_bound;
      }
  
      /**
       * @return offsets
       *
       * @exception IOException
       */
  
      public Offsets getOffsets()
          throws IOException
      {
          if (_object_offset == null)
          {
              _object_offset = new Offsets(getValue(_object_offset_attribute));
          }
          return _object_offset;
      }
  
      /**
       * @return anchors
       *
       * @exception IOException
       */
  
      public Anchors getAnchors()
          throws IOException
      {
          if (_object_anchor_type == null)
          {
              _object_anchor_type =
                  new Anchors(getValue(_object_anchor_type_attribute));
          }
          return _object_anchor_type;
      }
  
      /**
       * @return direction as a public member of Direction
       *
       * @exception IOException
       */
  
      public int getDirection()
          throws IOException
      {
          if (_direction == null)
          {
              _direction = NumericConverter.extractInteger(
                  getValue(_direction_attribute), _direction_validator);
          }
          return _direction.intValue();
      }
  }   // end public class EPCellComment
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPCells.java
  
  Index: EPCells.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  /**
   * No-op implementation of ElementProcessor to handle the "Cells" tag
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EPCells
      extends BaseElementProcessor
  {
  
      /**
       * constructor
       */
  
      public EPCells()
      {
          super(null);
      }
  }   // end public class EPCells
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPCheckbox.java
  
  Index: EPCheckbox.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.NumericConverter;
  import org.apache.cocoon.components.elementprocessor.types.NumericResult;
  import org.apache.cocoon.components.elementprocessor.types.Validator;
  
  import java.io.IOException;
  
  /**
   * No-op implementation of ElementProcessor to handle the
   * "Checkbox" tag
   *
   * This element has a small number of Attributes and no content.
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EPCheckbox
      extends BaseElementProcessor
  {
      private String                 _input;
      private NumericResult          _value;
      private String                 _object_bound;
      private Offsets                _object_offset;
      private Anchors                _object_anchor_type;
      private NumericResult          _direction;
      private static final String    _input_attribute              = "Input";
      private static final String    _value_attribute              = "Value";
      private static final String    _object_bound_attribute       =
          "ObjectBound";
      private static final String    _object_offset_attribute      =
          "ObjectOffset";
      private static final String    _object_anchor_type_attribute =
          "ObjectAnchorType";
      private static final String    _direction_attribute          =
          "Direction";
      private static final Validator _direction_validator          =
          new Validator()
      {
          public IOException validate(final Number number)
          {
              return Direction.isValid(number.intValue()) ? null
                                                          : new IOException(
                                                              "\"" + number
                                                              + "\" is not a legal value");
          }
      };
  
      /**
       * constructor
       */
  
      public EPCheckbox()
      {
          super(null);
          _input              = null;
          _value              = null;
          _object_bound       = null;
          _object_offset      = null;
          _object_anchor_type = null;
          _direction          = null;
      }
  
      /**
       * @return input
       *
       * @exception IOException
       */
  
      public String getInput()
          throws IOException
      {
          if (_input == null)
          {
              _input = getValue(_input_attribute);
              if (_input == null)
              {
                  throw new IOException("missing " + _input_attribute
                                        + " attribute");
              }
          }
          return _input;
      }
  
      /**
       * @return value
       *
       * @exception IOException
       */
  
      public int getValue()
          throws IOException
      {
          if (_value == null)
          {
              _value =
                  NumericConverter.extractInteger(getValue(_value_attribute));
          }
          return _value.intValue();
      }
  
      /**
       * @return object_bound
       *
       * @exception IOException
       */
  
      public String getObjectBound()
          throws IOException
      {
          if (_object_bound == null)
          {
              _object_bound = getValue(_object_bound_attribute);
              if (_object_bound == null)
              {
                  throw new IOException("missing " + _object_bound_attribute
                                        + " attribute");
              }
          }
          return _object_bound;
      }
  
      /**
       * @return offsets
       *
       * @exception IOException
       */
  
      public Offsets getOffsets()
          throws IOException
      {
          if (_object_offset == null)
          {
              _object_offset = new Offsets(getValue(_object_offset_attribute));
          }
          return _object_offset;
      }
  
      /**
       * @return anchors
       *
       * @exception IOException
       */
  
      public Anchors getAnchors()
          throws IOException
      {
          if (_object_anchor_type == null)
          {
              _object_anchor_type =
                  new Anchors(getValue(_object_anchor_type_attribute));
          }
          return _object_anchor_type;
      }
  
      /**
       * @return direction as a public member of Direction
       *
       * @exception IOException
       */
  
      public int getDirection()
          throws IOException
      {
          if (_direction == null)
          {
              _direction = NumericConverter.extractInteger(
                  getValue(_direction_attribute), _direction_validator);
          }
          return _direction.intValue();
      }
  }   // end public class EPCheckbox
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPColInfo.java
  
  Index: EPColInfo.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.Attribute;
  import org.apache.cocoon.components.elementprocessor.types.BooleanConverter;
  import org.apache.cocoon.components.elementprocessor.types.BooleanResult;
  import org.apache.cocoon.components.elementprocessor.types.NumericConverter;
  import org.apache.cocoon.components.elementprocessor.types.NumericResult;
  import org.apache.cocoon.components.elementprocessor.types.Validator;
  
  import java.io.IOException;
  
  /**
   * No-op implementation of ElementProcessor to handle the "ColInfo"
   * tag
   *
   * This element has several attributes and has no content
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EPColInfo
      extends BaseElementProcessor
  {
  
      // column number
      private NumericResult          _no;
  
      // size, in points
      private NumericResult          _unit;
  
      // top margin, in points
      private NumericResult          _margin_a;
  
      // bottom margin, in points
      private NumericResult          _margin_b;
  
      // true if size is explicitly set
      private BooleanResult          _hard_size;
  
      // true if column is hidden
      private BooleanResult          _hidden;
  
      // true if column is collapsed
      private BooleanResult          _collapsed;
  
      // outline level
      private NumericResult          _outline_level;
  
      // rle count
      private NumericResult          _count;
      private static final String    _no_attribute            = "No";
      private static final String    _unit_attribute          = "Unit";
      private static final String    _margin_a_attribute      = "MarginA";
      private static final String    _margin_b_attribute      = "MarginB";
      private static final String    _hard_size_attribute     = "HardSize";
      private static final String    _hidden_attribute        = "Hidden";
      private static final String    _collapsed_attribute     = "Collapsed";
      private static final String    _outline_level_attribute = "OutlineLevel";
      private static final String    _count_attribute         = "Count";
      private static final Validator _margin_validator        = new Validator()
      {
          public IOException validate(final Number number)
          {
              int val = number.intValue();
  
              return ((val >= 0) && (val <= 7)) ? null
                                                : new IOException(
                                                    "\"" + number
                                                    + "\" is not a legal value");
          }
      };
      private static final Attribute[] _implied_attributes =
      {
          new Attribute(_hard_size_attribute, "0"),
          new Attribute(_hidden_attribute, "0"),
          new Attribute(_collapsed_attribute, "0"),
          new Attribute(_outline_level_attribute, "0"),
          new Attribute(_count_attribute, "1")
      };
  
      /**
       * constructor
       */
  
      public EPColInfo()
      {
          super(_implied_attributes);
          _no            = null;
          _unit          = null;
          _margin_a      = null;
          _margin_b      = null;
          _hard_size     = null;
          _hidden        = null;
          _collapsed     = null;
          _outline_level = null;
          _count         = null;
      }
  
      /**
       * @return column number
       *
       * @exception IOException
       */
  
      public int getColumnNo()
          throws IOException
      {
          if (_no == null)
          {
              _no = NumericConverter
                  .extractNonNegativeInteger(getValue(_no_attribute));
          }
          return _no.intValue();
      }
  
      /**
       * @return column size in points
       *
       * @exception IOException
       */
  
      public double getPoints()
          throws IOException
      {
          if (_unit == null)
          {
              _unit = NumericConverter.extractDouble(getValue(_unit_attribute));
          }
          return _unit.doubleValue();
      }
  
      /**
       * @return top margin
       *
       * @exception IOException
       */
  
      public int getTopMargin()
          throws IOException
      {
          if (_margin_a == null)
          {
              _margin_a =
                  NumericConverter.extractInteger(getValue(_margin_a_attribute),
                                                  _margin_validator);
          }
          return _margin_a.intValue();
      }
  
      /**
       * @return bottom margin
       *
       * @exception IOException
       */
  
      public int getBottomMargin()
          throws IOException
      {
          if (_margin_b == null)
          {
              _margin_b =
                  NumericConverter.extractInteger(getValue(_margin_b_attribute),
                                                  _margin_validator);
          }
          return _margin_b.intValue();
      }
  
      /**
       * @return hard size
       *
       * @exception IOException
       */
  
      public boolean getHardSize()
          throws IOException
      {
          if (_hard_size == null)
          {
              _hard_size =
                  BooleanConverter
                      .extractBoolean(getValue(_hard_size_attribute));
          }
          return _hard_size.booleanValue();
      }
  
      /**
       * @return hidden state
       *
       * @exception IOException
       */
  
      public boolean getHidden()
          throws IOException
      {
          if (_hidden == null)
          {
              _hidden =
                  BooleanConverter.extractBoolean(getValue(_hidden_attribute));
          }
          return _hidden.booleanValue();
      }
  
      /**
       * @return collapsed state
       *
       * @exception IOException
       */
  
      public boolean getCollapsed()
          throws IOException
      {
          if (_collapsed == null)
          {
              _collapsed =
                  BooleanConverter
                      .extractBoolean(getValue(_collapsed_attribute));
          }
          return _collapsed.booleanValue();
      }
  
      /**
       * @return outline level
       *
       * @exception IOException
       */
  
      public int getOutlineLevel()
          throws IOException
      {
          if (_outline_level == null)
          {
              _outline_level =
                  NumericConverter
                      .extractInteger(getValue(_outline_level_attribute));
          }
          return _outline_level.intValue();
      }
  
      /**
       * @return rle count
       *
       * @exception IOException
       */
  
      public int getRLECount()
          throws IOException
      {
          if (_count == null)
          {
              _count =
                  NumericConverter.extractInteger(getValue(_count_attribute));
          }
          return _count.intValue();
      }
  
      /**
       * Set this column's width
       *
       * @exception IOException
       */
  
      public void endProcessing()
          throws IOException
      {
          getSheet().setColumnWidth(getColumnNo(), getPoints());
      }
  }   // end public class EPColInfo
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPCols.java
  
  Index: EPCols.java
  ===================================================================
  
  /*
   * =========================================================================
   *
   *                 The POI Project Software License,  Version 1.1
   *                           (based on APL 1.1)
   *         Copyright (c) 2002 SuperLink Software, Inc. and Marcus Johnson
   *                           All rights reserved.
   *
   * =========================================================================
   *
   * Redistribution and use in source and binary forms,  with or without modi-
   * fication, are permitted provided that the following conditions are met:
   *
   * 1. Redistributions of source code  must retain the above copyright notice
   *    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 acknowlegement:
   *
   *       "This product includes  software developed  by SuperLink
   *        Software, Inc. <www.superlinksoftware.com> and Marcus Johnson as
   *        well as other POI project <poi.sourceforge.net> contributers"
   *
   *    Alternately, this acknowlegement may appear in the software itself, if
   *    and wherever such third-party acknowlegements normally appear.
   *
   * 4. The names  "POI",  "HSSF", "SuperLink Software, Inc." and "Marcus
   *    Johnson"  must not be used  to endorse or promote  products derived
   *    from this  software without  prior  written  permission.  For  written
   *    permission, please contact <andyoliver at yahoo dot com>.
   *
   * 5. Products derived from this software may not be called "POI" nor may
   *    "POI" appear in their names without prior written permission of
   *    SuperLink Software, Inc.
   *
   * 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 SUPERLINK SOFTWARE, INC., ANDREW C. OLIVER OR  THE   CONTRIBUTORS  TO
   * THE POI PROJECT 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 indivi-
   * duals on behalf of  SuperLink Software, Inc.  For more information
   * on the SuperLink Software, Inc, please see
   * <http://www.superlinksoftware.com/>.  For more information on the POI
   * project see <www.sf.net/projects/poi>.
   *
   * =========================================================================
   */
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.Attribute;
  import org.apache.cocoon.components.elementprocessor.ElementProcessor;
  import org.apache.cocoon.components.elementprocessor.types.NumericConverter;
  import org.apache.cocoon.components.elementprocessor.types.NumericResult;
  
  import java.io.IOException;
  
  /**
   * No-op implementation of ElementProcessor to handle the "Cols" tag
   *
   * This element has an attribute (DefaultSizePts) and is a container
   * element
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EPCols
      extends BaseElementProcessor
  {
      private NumericResult       _default_size_pts;
      private boolean             _default_size_pts_fetched;
      private static final String _default_size_pts_attribute =
          "DefaultSizePts";
  
      // package scope so test code can access
      static final String         DEFAULT_SIZE_PTS            = "40.0";
  
      /**
       * constructor
       */
  
      public EPCols()
      {
          super(null);
          _default_size_pts         = null;
          _default_size_pts_fetched = false;
      }
  
      /**
       * get the default size of columns, in points
       *
       * @return size in points
       *
       * @exception IOException if the attribute is malformed
       * @exception NullPointerException if the attribute is missing
       */
  
      public double getDefaultSizePts()
          throws IOException, NullPointerException
      {
          if (!_default_size_pts_fetched)
          {
              String value = getValue(_default_size_pts_attribute);
  
              if ((value == null) || value.trim().equals(""))
              {
                  value = DEFAULT_SIZE_PTS;
              }
              _default_size_pts         = NumericConverter.extractDouble(value);
              _default_size_pts_fetched = true;
          }
          return _default_size_pts.doubleValue();
      }
  
      /**
       * Override of Initialize() implementation
       *
       * @param attributes the array of Attribute instances; may be
       *                   empty, will never be null
       * @param parent the parent ElementProcessor; may be null
       * @param filesystem the POIFSFileSystem object
       *
       * @exception IOException if anything is wrong
       */
  
      public void initialize(final Attribute [] attributes,
                             final ElementProcessor parent)
          throws IOException
      {
          super.initialize(attributes, parent);
          getSheet().setDefaultColumnWidth(getDefaultSizePts());
      }
  }   // end public class EPCols
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPConstr.java
  
  Index: EPConstr.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.NumericConverter;
  import org.apache.cocoon.components.elementprocessor.types.NumericResult;
  import org.apache.cocoon.components.elementprocessor.types.Validator;
  
  import java.io.IOException;
  
  /**
   * No-op implementation of ElementProcessor to handle the "Constr" tag
   *
   * This element contains several attributes and no content or other
   * elements.
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EPConstr
      extends BaseElementProcessor
  {
      private NumericResult          _lcol;
      private NumericResult          _lrow;
      private NumericResult          _rcol;
      private NumericResult          _rrow;
      private NumericResult          _cols;
      private NumericResult          _rows;
      private NumericResult          _type;
      private static final String    _lcol_attribute = "Lcol";
      private static final String    _lrow_attribute = "Lrow";
      private static final String    _rcol_attribute = "Rcol";
      private static final String    _rrow_attribute = "Rrow";
      private static final String    _cols_attribute = "Cols";
      private static final String    _rows_attribute = "Rows";
      private static final String    _type_attribute = "Type";
      private static final Validator _type_validator = new Validator()
      {
          public IOException validate(final Number number)
          {
              return ConstraintType.isValid(number.intValue()) ? null
                                                               : new IOException(
                                                                   "\""
                                                                   + number
                                                                   + "\" is not a legal value");
          }
      };
  
      /**
       * constructor
       */
  
      public EPConstr()
      {
          super(null);
          _lcol = null;
          _lrow = null;
          _rcol = null;
          _rrow = null;
          _cols = null;
          _rows = null;
          _type = null;
      }
  
      /**
       * @return lcol
       *
       * @exception IOException
       */
  
      public int getLcol()
          throws IOException
      {
          if (_lcol == null)
          {
              _lcol =
                  NumericConverter
                      .extractNonNegativeInteger(getValue(_lcol_attribute));
          }
          return _lcol.intValue();
      }
  
      /**
       * @return lrow
       *
       * @exception IOException
       */
  
      public int getLrow()
          throws IOException
      {
          if (_lrow == null)
          {
              _lrow =
                  NumericConverter
                      .extractNonNegativeInteger(getValue(_lrow_attribute));
          }
          return _lrow.intValue();
      }
  
      /**
       * @return rcol
       *
       * @exception IOException
       */
  
      public int getRcol()
          throws IOException
      {
          if (_rcol == null)
          {
              _rcol =
                  NumericConverter
                      .extractNonNegativeInteger(getValue(_rcol_attribute));
          }
          return _rcol.intValue();
      }
  
      /**
       * @return rrow
       *
       * @exception IOException
       */
  
      public int getRrow()
          throws IOException
      {
          if (_rrow == null)
          {
              _rrow =
                  NumericConverter
                      .extractNonNegativeInteger(getValue(_rrow_attribute));
          }
          return _rrow.intValue();
      }
  
      /**
       * @return cols
       *
       * @exception IOException
       */
  
      public int getCols()
          throws IOException
      {
          if (_cols == null)
          {
              _cols =
                  NumericConverter
                      .extractPositiveInteger(getValue(_cols_attribute));
          }
          return _cols.intValue();
      }
  
      /**
       * @return rows
       *
       * @exception IOException
       */
  
      public int getRows()
          throws IOException
      {
          if (_rows == null)
          {
              _rows =
                  NumericConverter
                      .extractPositiveInteger(getValue(_rows_attribute));
          }
          return _rows.intValue();
      }
  
      /**
       * @return type
       *
       * @exception IOException
       */
  
      public int getType()
          throws IOException
      {
          if (_type == null)
          {
              _type = NumericConverter.extractInteger(getValue(_type_attribute),
                                                      _type_validator);
          }
          return _type.intValue();
      }
  }   // end public class EPConstr
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPContent.java
  
  Index: EPContent.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import java.io.IOException;
  
  /**
   * No-op implementation of ElementProcessor to handle the "Content"
   * tag
   *
   * This element has no attributes and holds its parent element's
   * content.
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EPContent
      extends BaseElementProcessor
  {
      private String _content;
  
      /**
       * constructor
       */
  
      public EPContent()
      {
          super(null);
          _content = null;
      }
  
      /**
       * @return content
       */
  
      public String getContent()
      {
          if (_content == null)
          {
  		try {
              		_content = getData();
  		} catch (NullPointerException ignored) {
  			//ignore npe	
  		} 
          }
          return _content;
      }
  
      /**
       * end processing -- pass their content up to their cell
       *
       * @exception IOException
       */
  
      public void endProcessing()
          throws IOException
      {
          String thecontent = getContent();
          if (thecontent != null && !thecontent.trim().equals(""))
              getCell().setContent(getContent());
      }
  }   // end public class EPContent
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPDiagonal.java
  
  Index: EPDiagonal.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.NumericConverter;
  import org.apache.cocoon.components.elementprocessor.types.NumericResult;
  import org.apache.cocoon.components.elementprocessor.types.Validator;
  
  import java.io.IOException;
  
  /**
   * No-op implementation of ElementProcessor to handle the "Diagonal"
   * tag
   *
   * This element has two attributes and no content.
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EPDiagonal
      extends BaseElementProcessor
  {
      private NumericResult          _style;
      private boolean                _color_fetched;
      private ColorCode              _color;
      private static final String    _style_attribute = "Style";
      private static final String    _color_attribute = "Color";
      private static final Validator _style_validator = new Validator()
      {
          public IOException validate(final Number number)
          {
              return BorderStyle.isValid(number.intValue()) ? null
                                                            : new IOException(
                                                                "\"" + number
                                                                + "\" is not a legal value");
          }
      };
  
      /**
       * constructor
       */
  
      public EPDiagonal()
      {
          super(null);
          _style         = null;
          _color         = null;
  	_color_fetched = false;
      }
  
      /**
       * @return style as an int from BorderStyle
       *
       * @exception IOException
       */
  
      public int getStyle()
          throws IOException
      {
          if (_style == null)
          {
              _style =
                  NumericConverter.extractInteger(getValue(_style_attribute),
                                                  _style_validator);
          }
          return _style.intValue();
      }
  
      /**
       * @return color
       *
       * @exception IOException
       */
  
      public ColorCode getColor()
          throws IOException
      {
          if (!_color_fetched)
          {
  	    String colorString = getValue(_color_attribute);
  	    if (colorString != null)
  	    {
  		_color = new ColorCode(colorString);
  	    }
  	    _color_fetched = true;
          }
          return _color;
      }
  }   // end public class EPDiagonal
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPFont.java
  
  Index: EPFont.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.Attribute;
  import org.apache.cocoon.components.elementprocessor.ElementProcessor;
  
  
  import org.apache.cocoon.components.elementprocessor.types.BooleanConverter;
  import org.apache.cocoon.components.elementprocessor.types.BooleanResult;
  import org.apache.cocoon.components.elementprocessor.types.NumericConverter;
  import org.apache.cocoon.components.elementprocessor.types.NumericResult;
  import org.apache.cocoon.components.elementprocessor.types.Validator;
  
  import org.apache.poi.hssf.usermodel.HSSFCellStyle;
  import org.apache.poi.hssf.usermodel.HSSFFont;
  import org.apache.poi.hssf.util.HSSFColor;
  
  import java.io.IOException;
  import java.util.Hashtable;
  
  /**
   * No-op implementation of ElementProcessor to handle the "Font" tag
   *
   * This element has five attributes and also holds the name of the
   * font as element content.
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   * @author Andrew C. Oliver (acoliver2@users.sourceforge.net)
   */
  
  public class EPFont
      extends BaseElementProcessor
  {
      private NumericResult          _unit;
      private BooleanResult          _bold;
      private BooleanResult          _italic;
      private NumericResult          _underline;
      private BooleanResult          _strike_through;
      private String                 _font;
      private HSSFFont               hssfFont;
      private static final String    _unit_attribute           = "Unit";
      private static final String    _bold_attribute           = "Bold";
      private static final String    _italic_attribute         = "Italic";
      private static final String    _underline_attribute      = "Underline";
      private static final String    _strike_through_attribute =
          "StrikeThrough";
      private static final Validator _underline_type_validator = new Validator()
      {
          public IOException validate(final Number number)
          {
              return UnderlineType.isValid(number.intValue()) ? null
                                                              : new IOException(
                                                                  "\"" + number
                                                                  + "\" is not a legal value");
          }
      };
  
      /**
       * constructor
       */
  
      public EPFont()
      {
          super(null);
          _unit           = null;
          _bold           = null;
          _italic         = null;
          _underline      = null;
          _strike_through = null;
          _font           = null;
      }
      
      
      /**
       * Override of Initialize() implementation
       *
       * @param attributes the array of Attribute instances; may be
       *                   empty, will never be null
       * @param parent the parent ElementProcessor; may be null
       * @param filesystem the POIFSFileSystem object
       *
       * @exception IOException if anything is wrong
       */
  
      public void initialize(final Attribute [] attributes,
                             final ElementProcessor parent)
          throws IOException
      {
          super.initialize(attributes, parent);
          EPStyle pstyle = (EPStyle) parent;
          if (pstyle.isValid()) {
              Hashtable colorhash = pstyle.getColorHash();
              HSSFColor color = null;
  
              HSSFCellStyle style = pstyle.getStyle();
              //style.setFillForegroundColor(
              Workbook workbook = getWorkbook();
              HSSFFont font = workbook.createFont();
              style.setFont(font);
              font.setFontHeightInPoints((short)getUnit());
              //font.setFontName(getFont());
              font.setItalic(getItalic());
              if (getBold()) {
                  font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
              } else {
                  font.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);            
              }
              font.setUnderline((byte)getUnderline());
              font.setStrikeout(getStrikeThrough());
  
              color = (HSSFColor)colorhash.get(pstyle.getForegroundColor().toString());
              //System.out.println(pstyle.getForegroundColor().toString());
              if (color == null) color = new HSSFColor.BLACK();
              font.setColor(color.getIndex());
              hssfFont = font;
          }
      }    
      
  
      /**
       * @return unit
       *
       * @exception IOException
       */
  
      public double getUnit()
          throws IOException
      {
          if (_unit == null)
          {
              _unit = NumericConverter.extractDouble(getValue(_unit_attribute));
          }
          return _unit.doubleValue();
      }
  
      /**
       * @return bold
       *
       * @exception IOException
       */
  
      public boolean getBold()
          throws IOException
      {
          if (_bold == null)
          {
              _bold =
                  BooleanConverter.extractBoolean(getValue(_bold_attribute));
          }
          return _bold.booleanValue();
      }
  
      /**
       * @return italic
       *
       * @exception IOException
       */
  
      public boolean getItalic()
          throws IOException
      {
          if (_italic == null)
          {
              _italic =
                  BooleanConverter.extractBoolean(getValue(_italic_attribute));
          }
          return _italic.booleanValue();
      }
  
      /**
       * @return underline as one of the public variables in
       *         UnderlineType
       *
       * @exception IOException
       */
  
      public int getUnderline()
          throws IOException
      {
          if (_underline == null)
          {
              _underline = NumericConverter.extractInteger(
                  getValue(_underline_attribute), _underline_type_validator);
          }
          return _underline.intValue();
      }
  
      /**
       * @return strikeThrough
       *
       * @exception IOException
       */
  
      public boolean getStrikeThrough()
          throws IOException
      {
          if (_strike_through == null)
          {
              _strike_through =
                  BooleanConverter
                      .extractBoolean(getValue(_strike_through_attribute));
          }
          return _strike_through.booleanValue();
      }
  
      /**
       * @return name of the font
       */
  
      public String getFont()
      {
          if (_font == null)
          {
  		try {
              		_font = getData();
  		} catch (NullPointerException ignored) {
  		}
          }
          
          return _font;
      }
      
      private HSSFFont getHSSFFont() {
          return hssfFont;
      }
      
      /**
       * push the data into the font
       *
       * @exception IOException
       */
  
      public void endProcessing()
          throws IOException
      {
          String thefont = getFont();
          if (thefont != null && !thefont.trim().equals("") && getHSSFFont() != null) {
              getHSSFFont().setFontName(thefont);
          } else if (getHSSFFont() != null) {
              getHSSFFont().setFontName("Arial"); //default excel font
          }
         
      }    
  }   // end public class EPFont
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPFooter.java
  
  Index: EPFooter.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  /**
   * No-op implementation of ElementProcessor to handle the "Footer" tag
   *
   * This element has three attributes: Left, Middle, and Top, and no
   * contents.
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EPFooter
      extends BaseElementProcessor
  {
      private String              _left;
      private String              _middle;
      private String              _right;
      private static final String _left_attribute   = "Left";
      private static final String _middle_attribute = "Middle";
      private static final String _right_attribute  = "Right";
  
      /**
       * constructor
       */
  
      public EPFooter()
      {
          super(null);
          _left   = null;
          _middle = null;
          _right  = null;
      }
  
      /**
       * @return the left string
       */
  
      public String getLeft()
      {
          if (_left == null)
          {
              _left = getValue(_left_attribute);
              if (_left == null)
              {
                  _left = "";
              }
          }
          return _left;
      }
  
      /**
       * @return the middle string
       */
  
      public String getMiddle()
      {
          if (_middle == null)
          {
              _middle = getValue(_middle_attribute);
              if (_middle == null)
              {
                  _middle = "";
              }
          }
          return _middle;
      }
  
      /**
       * @return the right string
       */
  
      public String getRight()
      {
          if (_right == null)
          {
              _right = getValue(_right_attribute);
              if (_right == null)
              {
                  _right = "";
              }
          }
          return _right;
      }
  }   // end public class EPFooter
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPFrame.java
  
  Index: EPFrame.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.NumericConverter;
  import org.apache.cocoon.components.elementprocessor.types.NumericResult;
  import org.apache.cocoon.components.elementprocessor.types.Validator;
  
  import java.io.IOException;
  
  /**
   * No-op implementation of ElementProcessor to handle the "Frame" tag
   *
   * This element has a small number of Attributes and no content.
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EPFrame
      extends BaseElementProcessor
  {
      private String                 _label;
      private String                 _object_bound;
      private Offsets                _object_offset;
      private Anchors                _object_anchor_type;
      private NumericResult          _direction;
      private static final String    _label_attribute              = "Label";
      private static final String    _object_bound_attribute       =
          "ObjectBound";
      private static final String    _object_offset_attribute      =
          "ObjectOffset";
      private static final String    _object_anchor_type_attribute =
          "ObjectAnchorType";
      private static final String    _direction_attribute          =
          "Direction";
      private static final Validator _direction_validator          =
          new Validator()
      {
          public IOException validate(final Number number)
          {
              return Direction.isValid(number.intValue()) ? null
                                                          : new IOException(
                                                              "\"" + number
                                                              + "\" is not a legal value");
          }
      };
  
      /**
       * constructor
       */
  
      public EPFrame()
      {
          super(null);
          _label              = null;
          _object_bound       = null;
          _object_offset      = null;
          _object_anchor_type = null;
          _direction          = null;
      }
  
      /**
       * @return label
       *
       * @exception IOException
       */
  
      public String getLabel()
          throws IOException
      {
          if (_label == null)
          {
              _label = getValue(_label_attribute);
              if (_label == null)
              {
                  throw new IOException("missing " + _label_attribute
                                        + " attribute");
              }
          }
          return _label;
      }
  
      /**
       * @return object_bound
       *
       * @exception IOException
       */
  
      public String getObjectBound()
          throws IOException
      {
          if (_object_bound == null)
          {
              _object_bound = getValue(_object_bound_attribute);
              if (_object_bound == null)
              {
                  throw new IOException("missing " + _object_bound_attribute
                                        + " attribute");
              }
          }
          return _object_bound;
      }
  
      /**
       * @return offsets
       *
       * @exception IOException
       */
  
      public Offsets getOffsets()
          throws IOException
      {
          if (_object_offset == null)
          {
              _object_offset = new Offsets(getValue(_object_offset_attribute));
          }
          return _object_offset;
      }
  
      /**
       * @return anchors
       *
       * @exception IOException
       */
  
      public Anchors getAnchors()
          throws IOException
      {
          if (_object_anchor_type == null)
          {
              _object_anchor_type =
                  new Anchors(getValue(_object_anchor_type_attribute));
          }
          return _object_anchor_type;
      }
  
      /**
       * @return direction as a public member of Direction
       *
       * @exception IOException
       */
  
      public int getDirection()
          throws IOException
      {
          if (_direction == null)
          {
              _direction = NumericConverter.extractInteger(
                  getValue(_direction_attribute), _direction_validator);
          }
          return _direction.intValue();
      }
  }   // end public class EPFrame
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPGeometry.java
  
  Index: EPGeometry.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.NumericConverter;
  import org.apache.cocoon.components.elementprocessor.types.NumericResult;
  
  import java.io.IOException;
  
  /**
   * No-op implementation of ElementProcessor to handle the "Geometry" tag
   *
   * This element has two attributes: Width and Height
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EPGeometry
      extends BaseElementProcessor
  {
      private static final String _width_attribute  = "Width";
      private static final String _height_attribute = "Height";
      private NumericResult       _width;
      private NumericResult       _height;
  
      /**
       * constructor
       */
  
      public EPGeometry()
      {
          super(null);
          _width  = null;
          _height = null;
      }
  
      /**
       * @return height
       *
       * @exception IOException
       */
  
      int getHeight()
          throws IOException
      {
          if (_height == null)
          {
              _height =
                  NumericConverter
                      .extractPositiveInteger(getValue(_height_attribute));
          }
          return _height.intValue();
      }
  
      /**
       * @return width
       *
       * @exception IOException
       */
  
      int getWidth()
          throws IOException
      {
          if (_width == null)
          {
              _width =
                  NumericConverter
                      .extractPositiveInteger(getValue(_width_attribute));
          }
          return _width.intValue();
      }
  }   // end public class EPGeometry
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPHeader.java
  
  Index: EPHeader.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  /**
   * No-op implementation of ElementProcessor to handle the "Header" tag
   *
   * This element has three attributes: Left, Middle, and Top, and no
   * contents.
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EPHeader
      extends BaseElementProcessor
  {
      private String              _left;
      private String              _middle;
      private String              _right;
      private static final String _left_attribute   = "Left";
      private static final String _middle_attribute = "Middle";
      private static final String _right_attribute  = "Right";
  
      /**
       * constructor
       */
  
      public EPHeader()
      {
          super(null);
          _left   = null;
          _middle = null;
          _right  = null;
      }
  
      /**
       * @return the left string
       */
  
      public String getLeft()
      {
          if (_left == null)
          {
              _left = getValue(_left_attribute);
              if (_left == null)
              {
                  _left = "";
              }
          }
          return _left;
      }
  
      /**
       * @return the middle string
       */
  
      public String getMiddle()
      {
          if (_middle == null)
          {
              _middle = getValue(_middle_attribute);
              if (_middle == null)
              {
                  _middle = "";
              }
          }
          return _middle;
      }
  
      /**
       * @return the right string
       */
  
      public String getRight()
      {
          if (_right == null)
          {
              _right = getValue(_right_attribute);
              if (_right == null)
              {
                  _right = "";
              }
          }
          return _right;
      }
  }   // end public class EPHeader
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPItem.java
  
  Index: EPItem.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  /**
   * No-op implementation of ElementProcessor to handle the "Item" tag
   *
   * This element has no attributes and contains other elements
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EPItem
      extends BaseElementProcessor
  {
  
      /**
       * constructor
       */
  
      public EPItem()
      {
          super(null);
      }
  }   // end public class EPItem
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPLabel.java
  
  Index: EPLabel.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.NumericConverter;
  import org.apache.cocoon.components.elementprocessor.types.NumericResult;
  import org.apache.cocoon.components.elementprocessor.types.Validator;
  
  import java.io.IOException;
  
  /**
   * No-op implementation of ElementProcessor to handle the "Label" tag
   *
   * This element has a small number of Attributes and no content.
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EPLabel
      extends BaseElementProcessor
  {
      private String                 _label;
      private String                 _object_bound;
      private Offsets                _object_offset;
      private Anchors                _object_anchor_type;
      private NumericResult          _direction;
      private static final String    _label_attribute              = "Label";
      private static final String    _object_bound_attribute       =
          "ObjectBound";
      private static final String    _object_offset_attribute      =
          "ObjectOffset";
      private static final String    _object_anchor_type_attribute =
          "ObjectAnchorType";
      private static final String    _direction_attribute          =
          "Direction";
      private static final Validator _direction_validator          =
          new Validator()
      {
          public IOException validate(final Number number)
          {
              return Direction.isValid(number.intValue()) ? null
                                                          : new IOException(
                                                              "\"" + number
                                                              + "\" is not a legal value");
          }
      };
  
      /**
       * constructor
       */
  
      public EPLabel()
      {
          super(null);
          _label              = null;
          _object_bound       = null;
          _object_offset      = null;
          _object_anchor_type = null;
          _direction          = null;
      }
  
      /**
       * @return label
       *
       * @exception IOException
       */
  
      public String getLabel()
          throws IOException
      {
          if (_label == null)
          {
              _label = getValue(_label_attribute);
              if (_label == null)
              {
                  throw new IOException("missing " + _label_attribute
                                        + " attribute");
              }
          }
          return _label;
      }
  
      /**
       * @return object_bound
       *
       * @exception IOException
       */
  
      public String getObjectBound()
          throws IOException
      {
          if (_object_bound == null)
          {
              _object_bound = getValue(_object_bound_attribute);
              if (_object_bound == null)
              {
                  throw new IOException("missing " + _object_bound_attribute
                                        + " attribute");
              }
          }
          return _object_bound;
      }
  
      /**
       * @return offsets
       *
       * @exception IOException
       */
  
      public Offsets getOffsets()
          throws IOException
      {
          if (_object_offset == null)
          {
              _object_offset = new Offsets(getValue(_object_offset_attribute));
          }
          return _object_offset;
      }
  
      /**
       * @return anchors
       *
       * @exception IOException
       */
  
      public Anchors getAnchors()
          throws IOException
      {
          if (_object_anchor_type == null)
          {
              _object_anchor_type =
                  new Anchors(getValue(_object_anchor_type_attribute));
          }
          return _object_anchor_type;
      }
  
      /**
       * @return direction as a public member of Direction
       *
       * @exception IOException
       */
  
      public int getDirection()
          throws IOException
      {
          if (_direction == null)
          {
              _direction = NumericConverter.extractInteger(
                  getValue(_direction_attribute), _direction_validator);
          }
          return _direction.intValue();
      }
  }   // end public class EPLabel
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPLeft.java
  
  Index: EPLeft.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.Attribute;
  import org.apache.cocoon.components.elementprocessor.ElementProcessor;
  
  import org.apache.cocoon.components.elementprocessor.types.NumericConverter;
  import org.apache.cocoon.components.elementprocessor.types.NumericResult;
  import org.apache.cocoon.components.elementprocessor.types.Validator;
  
  import org.apache.poi.hssf.util.HSSFColor;
  import org.apache.poi.hssf.usermodel.HSSFCellStyle;
  
  import java.io.IOException;
  import java.util.Hashtable;
  
  /**
   * No-op implementation of ElementProcessor to handle the "Left" tag
   *
   * This element has two attributes and no content.
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   * @author Andrew C. Oliver (acoliver2@users.sourceforge.net)
   */
  
  public class EPLeft
      extends BaseElementProcessor
  {
      private NumericResult          _style;
      private ColorCode              _color;
      private boolean                _color_fetched;
      private static final String    _style_attribute = "Style";
      private static final String    _color_attribute = "Color";
      private static final Validator _style_validator = new Validator()
      {
          public IOException validate(final Number number)
          {
              return BorderStyle.isValid(number.intValue()) ? null
                                                            : new IOException(
                                                                "\"" + number
                                                                + "\" is not a legal value");
          }
      };
  
      /**
       * constructor
       */
  
      public EPLeft()
      {
          super(null);
          _style         = null;
          _color         = null;
  	_color_fetched = false;
      }
      
      
      /**
       * Override of Initialize() implementation
       *
       * @param attributes the array of Attribute instances; may be
       *                   empty, will never be null
       * @param parent the parent ElementProcessor; may be null
       * @param filesystem the POIFSFileSystem object
       *
       * @exception IOException if anything is wrong
       */
  
      public void initialize(final Attribute [] attributes,
                             final ElementProcessor parent)
          throws IOException
      {
          super.initialize(attributes, parent);
          EPStyle pstyle = (EPStyle)getAncestor(EPStyle.class);
          if ((pstyle != null) &&  pstyle.isValid()) {
              Hashtable colorhash = pstyle.getColorHash();        
              HSSFColor color = null;
  
              HSSFCellStyle style = pstyle.getStyle();  //oops a little confusing
                                                        //below is the style attribute
                                                        //this is an HSSFCellStyle
                                                        //associated with EPStyle
              style.setBorderLeft((short)getStyle());
  
              ColorCode colorCode = getColor();
              if (colorCode != null) {
                  color = (HSSFColor)colorhash.get(colorCode.toString());
              }
              if (color == null) color = new HSSFColor.BLACK();
  
  
              style.setLeftBorderColor(color.getIndex());
          }
          
      }        
  
      /**
       * @return style as an int from BorderStyle
       *
       * @exception IOException
       */
  
      public int getStyle()
          throws IOException
      {
          if (_style == null)
          {
              _style =
                  NumericConverter.extractInteger(getValue(_style_attribute),
                                                  _style_validator);
          }
          return _style.intValue();
      }
  
      /**
       * @return color
       *
       * @exception IOException
       */
  
      public ColorCode getColor()
          throws IOException
      {
          if (!_color_fetched)
          {
  	    String colorString = getValue(_color_attribute);
  	    if (colorString != null)
  	    {
  		_color = new ColorCode(colorString);
  	    }
  	    _color_fetched = true;
          }
          return _color;
      }
  }   // end public class EPLeft
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPMargins.java
  
  Index: EPMargins.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  /**
   * No-op implementation of ElementProcessor to handle the "Margins" tag
   *
   * This is a container element with no attributes.
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EPMargins
      extends BaseElementProcessor
  {
  
      /**
       * constructor
       */
  
      public EPMargins()
      {
          super(null);
      }
  }   // end public class EPMargins
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPMaxCol.java
  
  Index: EPMaxCol.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.NumericConverter;
  import org.apache.cocoon.components.elementprocessor.types.NumericResult;
  
  import java.io.IOException;
  
  /**
   * No-op implementation of ElementProcessor to handle the "MaxCol" tag
   *
   * This element contains the maximum number of columns in the
   * containing sheet. The value is contained in the data.
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EPMaxCol
      extends BaseElementProcessor
  {
      private NumericResult _max_col;
  
      /**
       * constructor
       */
  
      public EPMaxCol()
      {
          super(null);
          _max_col = null;
      }
  
      /**
       * get the maximum column for the containing sheet
       *
       * @return maximum column number
       *
       * @exception IOException if the data is malformed
       */
  
      public int getMaxCol()
          throws IOException
      {
          if (_max_col == null)
          {
              _max_col = NumericConverter.extractPositiveInteger(getData());
          }
          return _max_col.intValue();
      }
  }   // end public class EPMaxCol
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPMaxRow.java
  
  Index: EPMaxRow.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.NumericConverter;
  import org.apache.cocoon.components.elementprocessor.types.NumericResult;
  
  import java.io.IOException;
  
  /**
   * No-op implementation of ElementProcessor to handle the "MaxRow" tag
   *
   * This element contains the maximum number of rows in the containing
   * sheet. The value is contained in the data.
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EPMaxRow
      extends BaseElementProcessor
  {
      private NumericResult _max_row;
  
      /**
       * constructor
       */
  
      public EPMaxRow()
      {
          super(null);
          _max_row = null;
      }
  
      /**
       * get the maximum row for the containing sheet
       *
       * @return maximum row number
       *
       * @exception IOException if the data is malformed
       */
  
      public int getMaxRow()
          throws IOException
      {
          if (_max_row == null)
          {
              _max_row = NumericConverter.extractPositiveInteger(getData());
          }
          return _max_row.intValue();
      }
  }   // end public class EPMaxRow
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPName.java
  
  Index: EPName.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import java.io.IOException;
  
  /**
   * No-op implementation of ElementProcessor to handle the "Name" tag
   *
   * This element contains the name of the containing Sheet
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EPName
      extends BaseElementProcessor
  {
      private String _name;
  
      /**
       * constructor
       */
  
      public EPName()
      {
          super(null);
          _name = null;
      }
  
      /**
       * @return the name of the spreadsheet (may be empty)
       */
  
      public String getName()
      {
          if (_name == null)
          {
              _name = getData();
          }
          return _name;
      }
  
      /**
       * give the sheet its name
       *
       * @exception IOException
       */
  
      public void endProcessing()
          throws IOException
      {
          getSheet().renameSheet(getName());
      }
  }   // end public class EPName
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPNames.java
  
  Index: EPNames.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  /**
   * No-op implementation of ElementProcessor to handle the "Names" tag
   *
   * This element has no attributes and contains a string.
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EPNames
      extends BaseElementProcessor
  {
  
      /**
       * constructor
       */
  
      public EPNames()
      {
          super(null);
      }
  }   // end public class EPNames
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPObjects.java
  
  Index: EPObjects.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  /**
   * No-op implementation of ElementProcessor to handle the "Objects" tag
   *
   * This element is a container element with no attributes.
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EPObjects
      extends BaseElementProcessor
  {
  
      /**
       * constructor
       */
  
      public EPObjects()
      {
          super(null);
      }
  }   // end public class EPObjects
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPPrintInformation.java
  
  Index: EPPrintInformation.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  /**
   * No-op implementation of ElementProcessor to handle the "PrintInformation" tag
   *
   * This element is a container element with no attributes.
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EPPrintInformation
      extends BaseElementProcessor
  {
  
      /**
       * constructor
       */
  
      public EPPrintInformation()
      {
          super(null);
      }
  }   // end public class EPPrintInformation
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPRev_Diagonal.java
  
  Index: EPRev_Diagonal.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.NumericConverter;
  import org.apache.cocoon.components.elementprocessor.types.NumericResult;
  import org.apache.cocoon.components.elementprocessor.types.Validator;
  
  import java.io.IOException;
  
  /**
   * No-op implementation of ElementProcessor to handle the
   * "Rev-Diagonal" tag
   *
   * This element has two attributes and no content.
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EPRev_Diagonal
      extends BaseElementProcessor
  {
      private NumericResult          _style;
      private boolean                _color_fetched;
      private ColorCode              _color;
      private static final String    _style_attribute = "Style";
      private static final String    _color_attribute = "Color";
      private static final Validator _style_validator = new Validator()
      {
          public IOException validate(final Number number)
          {
              return BorderStyle.isValid(number.intValue()) ? null
                                                            : new IOException(
                                                                "\"" + number
                                                                + "\" is not a legal value");
          }
      };
  
      /**
       * constructor
       */
  
      public EPRev_Diagonal()
      {
          super(null);
          _style         = null;
          _color         = null;
  	_color_fetched = false;
      }
  
      /**
       * @return style as an int from BorderStyle
       *
       * @exception IOException
       */
  
      public int getStyle()
          throws IOException
      {
          if (_style == null)
          {
              _style =
                  NumericConverter.extractInteger(getValue(_style_attribute),
                                                  _style_validator);
          }
          return _style.intValue();
      }
  
      /**
       * @return color
       *
       * @exception IOException
       */
  
      public ColorCode getColor()
          throws IOException
      {
          if (!_color_fetched)
          {
  	    String colorString = getValue(_color_attribute);
  	    if (colorString != null)
  	    {
  		_color = new ColorCode(colorString);
  	    }
  	    _color_fetched = true;
          }
          return _color;
      }
  }   // end public class EPRev_Diagonal
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPRight.java
  
  Index: EPRight.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.Attribute;
  import org.apache.cocoon.components.elementprocessor.ElementProcessor;
  
  import org.apache.cocoon.components.elementprocessor.types.NumericConverter;
  import org.apache.cocoon.components.elementprocessor.types.NumericResult;
  import org.apache.cocoon.components.elementprocessor.types.Validator;
  
  import org.apache.poi.hssf.util.HSSFColor;
  import org.apache.poi.hssf.usermodel.HSSFCellStyle;
  
  import java.io.IOException;
  import java.util.Hashtable;
  
  /**
   * No-op implementation of ElementProcessor to handle the "Right" tag
   *
   * This element has two attributes and no content.
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   * @author Andrew C. Oliver (acoliver2@users.sourceforge.net)
   */
  
  public class EPRight
      extends BaseElementProcessor
  {
      private NumericResult          _style;
      private ColorCode              _color;
      private boolean                _color_fetched;
      private static final String    _style_attribute = "Style";
      private static final String    _color_attribute = "Color";
      private static final Validator _style_validator = new Validator()
      {
          public IOException validate(final Number number)
          {
              return BorderStyle.isValid(number.intValue()) ? null
                                                            : new IOException(
                                                                "\"" + number
                                                                + "\" is not a legal value");
          }
      };
  
      /**
       * constructor
       */
  
      public EPRight()
      {
          super(null);
          _style         = null;
          _color         = null;
  	_color_fetched = false;
      }
      
      /**
       * Override of Initialize() implementation
       *
       * @param attributes the array of Attribute instances; may be
       *                   empty, will never be null
       * @param parent the parent ElementProcessor; may be null
       * @param filesystem the POIFSFileSystem object
       *
       * @exception IOException if anything is wrong
       */
  
      public void initialize(final Attribute [] attributes,
                             final ElementProcessor parent)
          throws IOException
      {
          super.initialize(attributes, parent);
          EPStyle pstyle = (EPStyle)getAncestor(EPStyle.class);
          if ((pstyle != null) && pstyle.isValid()) {
              Hashtable colorhash = pstyle.getColorHash();        
              HSSFColor color = null;
  
              HSSFCellStyle style = pstyle.getStyle();  //oops a little confusing
                                                        //below is the style attribute
                                                        //this is an HSSFCellStyle
                                                        //associated with EPStyle
              style.setBorderRight((short)getStyle());
  
              ColorCode colorCode = getColor();
              if (colorCode != null) {
                  color = (HSSFColor)colorhash.get(colorCode.toString());
              }
              if (color == null) color = new HSSFColor.BLACK();
  
  
              style.setRightBorderColor(color.getIndex());
          }
          
      }        
  
      /**
       * @return style as an int from BorderStyle
       *
       * @exception IOException
       */
  
      public int getStyle()
          throws IOException
      {
          if (_style == null)
          {
              _style =
                  NumericConverter.extractInteger(getValue(_style_attribute),
                                                  _style_validator);
          }
          return _style.intValue();
      }
  
      /**
       * @return color
       *
       * @exception IOException
       */
  
      public ColorCode getColor()
          throws IOException
      {
          if (!_color_fetched)
          {
  	    String colorString = getValue(_color_attribute);
  	    if (colorString != null)
  	    {
  		_color = new ColorCode(colorString);
  	    }
  	    _color_fetched = true;
          }
          return _color;
      }
  }   // end public class EPRight
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPRowInfo.java
  
  Index: EPRowInfo.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.Attribute;
  import org.apache.cocoon.components.elementprocessor.types.BooleanConverter;
  import org.apache.cocoon.components.elementprocessor.types.BooleanResult;
  import org.apache.cocoon.components.elementprocessor.types.NumericConverter;
  import org.apache.cocoon.components.elementprocessor.types.NumericResult;
  import org.apache.cocoon.components.elementprocessor.types.Validator;
  
  import java.io.IOException;
  
  /**
   * No-op implementation of ElementProcessor to handle the "RowInfo"
   * tag
   *
   * This element has several attributes and has no content
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EPRowInfo
      extends BaseElementProcessor
  {
  
      // row number
      private NumericResult          _no;
  
      // size, in points
      private NumericResult          _unit;
  
      // left margin, in points
      private NumericResult          _margin_a;
  
      // right margin, in points
      private NumericResult          _margin_b;
  
      // true if size is explicitly set
      private BooleanResult          _hard_size;
  
      // true if row is hidden
      private BooleanResult          _hidden;
  
      // true if row is collapsed
      private BooleanResult          _collapsed;
  
      // outline level
      private NumericResult          _outline_level;
  
      // rle count
      private NumericResult          _count;
      private static final String    _no_attribute            = "No";
      private static final String    _unit_attribute          = "Unit";
      private static final String    _margin_a_attribute      = "MarginA";
      private static final String    _margin_b_attribute      = "MarginB";
      private static final String    _hard_size_attribute     = "HardSize";
      private static final String    _hidden_attribute        = "Hidden";
      private static final String    _collapsed_attribute     = "Collapsed";
      private static final String    _outline_level_attribute = "OutlineLevel";
      private static final String    _count_attribute         = "Count";
      private static final Validator _margin_validator        = new Validator()
      {
          public IOException validate(final Number number)
          {
              int val = number.intValue();
  
              return ((val >= 0) && (val <= 7)) ? null
                                                : new IOException(
                                                    "\"" + number
                                                    + "\" is not a legal value");
          }
      };
      private static final Attribute[] _implied_attributes =
      {
          new Attribute(_hard_size_attribute, "0"),
          new Attribute(_hidden_attribute, "0"),
          new Attribute(_collapsed_attribute, "0"),
          new Attribute(_outline_level_attribute, "0"),
          new Attribute(_count_attribute, "1")
      };
  
      /**
       * constructor
       */
  
      public EPRowInfo()
      {
          super(_implied_attributes);
          _no            = null;
          _unit          = null;
          _margin_a      = null;
          _margin_b      = null;
          _hard_size     = null;
          _hidden        = null;
          _collapsed     = null;
          _outline_level = null;
          _count         = null;
      }
  
      /**
       * @return row number
       *
       * @exception IOException
       */
  
      public int getRowNo()
          throws IOException
      {
          if (_no == null)
          {
              _no = NumericConverter
                  .extractNonNegativeInteger(getValue(_no_attribute));
          }
          return _no.intValue();
      }
  
      /**
       * @return row size in points
       *
       * @exception IOException
       */
  
      public double getPoints()
          throws IOException
      {
          if (_unit == null)
          {
              _unit = NumericConverter.extractDouble(getValue(_unit_attribute));
          }
          return _unit.doubleValue();
      }
  
      /**
       * @return left margin
       *
       * @exception IOException
       */
  
      public int getLeftMargin()
          throws IOException
      {
          if (_margin_a == null)
          {
              _margin_a =
                  NumericConverter.extractInteger(getValue(_margin_a_attribute),
                                                  _margin_validator);
          }
          return _margin_a.intValue();
      }
  
      /**
       * @return right margin
       *
       * @exception IOException
       */
  
      public int getRightMargin()
          throws IOException
      {
          if (_margin_b == null)
          {
              _margin_b =
                  NumericConverter.extractInteger(getValue(_margin_b_attribute),
                                                  _margin_validator);
          }
          return _margin_b.intValue();
      }
  
      /**
       * @return hard size
       *
       * @exception IOException
       */
  
      public boolean getHardSize()
          throws IOException
      {
          if (_hard_size == null)
          {
              _hard_size =
                  BooleanConverter
                      .extractBoolean(getValue(_hard_size_attribute));
          }
          return _hard_size.booleanValue();
      }
  
      /**
       * @return hidden state
       *
       * @exception IOException
       */
  
      public boolean getHidden()
          throws IOException
      {
          if (_hidden == null)
          {
              _hidden =
                  BooleanConverter.extractBoolean(getValue(_hidden_attribute));
          }
          return _hidden.booleanValue();
      }
  
      /**
       * @return collapsed state
       *
       * @exception IOException
       */
  
      public boolean getCollapsed()
          throws IOException
      {
          if (_collapsed == null)
          {
              _collapsed =
                  BooleanConverter
                      .extractBoolean(getValue(_collapsed_attribute));
          }
          return _collapsed.booleanValue();
      }
  
      /**
       * @return outline level
       *
       * @exception IOException
       */
  
      public int getOutlineLevel()
          throws IOException
      {
          if (_outline_level == null)
          {
              _outline_level =
                  NumericConverter
                      .extractInteger(getValue(_outline_level_attribute));
          }
          return _outline_level.intValue();
      }
  
      /**
       * @return rle count
       *
       * @exception IOException
       */
  
      public int getRLECount()
          throws IOException
      {
          if (_count == null)
          {
              _count =
                  NumericConverter.extractInteger(getValue(_count_attribute));
          }
          return _count.intValue();
      }
  
      /**
       * Set this row's height
       *
       * @exception IOException
       */
  
      public void endProcessing()
          throws IOException
      {
          int row = getRowNo();
  
          if (row > Short.MAX_VALUE)
          {
              throw new IOException("Illegal row value: " + row);
          }
          getSheet().getRow(row).setHeight(getPoints());
      }
  }   // end public class EPRowInfo
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPRows.java
  
  Index: EPRows.java
  ===================================================================
  
  /*
   * ========================================================================= 
   *                                                                           
   *                 The POI Project Software License,  Version 1.1            
   *                           (based on APL 1.1)                              
   *         Copyright (c) 2002 SuperLink Software, Inc. and Marcus Johnson    
   *                           All rights reserved.                            
   *                                                                           
   * ========================================================================= 
   *                                                                           
   * Redistribution and use in source and binary forms,  with or without modi- 
   * fication, are permitted provided that the following conditions are met:   
   *                                                                           
   * 1. Redistributions of source code  must retain the above copyright notice 
   *    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 acknowlegement:                             
   *                                                                           
   *       "This product includes  software developed  by SuperLink            
   *        Software, Inc. <www.superlinksoftware.com> and Marcus Johnson as   
   *        well as other POI project <poi.sourceforge.net> contributers"      
   *                                                                           
   *    Alternately, this acknowlegement may appear in the software itself, if 
   *    and wherever such third-party acknowlegements normally appear.         
   *                                                                           
   * 4. The names  "POI",  "HSSF", "SuperLink Software, Inc." and "Marcus      
   *    Johnson"  must not be used  to endorse or promote  products derived    
   *    from this  software without  prior  written  permission.  For  written 
   *    permission, please contact <andyoliver at yahoo dot com>.              
   *                                                                           
   * 5. Products derived from this software may not be called "POI" nor may    
   *    "POI" appear in their names without prior written permission of        
   *    SuperLink Software, Inc.                                               
   *                                                                           
   * 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 SUPERLINK SOFTWARE, INC., ANDREW C. OLIVER OR  THE   CONTRIBUTORS  TO 
   * THE POI PROJECT 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 indivi- 
   * duals on behalf of  SuperLink Software, Inc.  For more information        
   * on the SuperLink Software, Inc, please see                                
   * <http://www.superlinksoftware.com/>.  For more information on the POI     
   * project see <www.sf.net/projects/poi>.                                    
   *                                                                           
   * ========================================================================= 
   */
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.Attribute;
  import org.apache.cocoon.components.elementprocessor.ElementProcessor;
  import org.apache.cocoon.components.elementprocessor.types.NumericConverter;
  import org.apache.cocoon.components.elementprocessor.types.NumericResult;
  
  import java.io.IOException;
  
  /**
   * No-op implementation of ElementProcessor to handle the "Rows" tag
   *
   * This element has an attribute (DefaultSizePts) and is a container
   * element
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EPRows
      extends BaseElementProcessor
  {
      private NumericResult       _default_size_pts;
      private static final String _default_size_pts_attribute =
          "DefaultSizePts";
  
      // package scope so test code can see it
      static final String         DEFAULT_SIZE_PTS            = "12.8";
  
      /**
       * constructor
       */
  
      public EPRows()
      {
          super(null);
          _default_size_pts = null;
      }
  
      /**
       * get the default size of rows, in points
       *
       * @return size in points
       *
       * @exception IOException if the attribute is missing or malformed
       */
  
      public double getDefaultSizePts()
          throws IOException
      {
          if (_default_size_pts == null)
          {
              String value = getValue(_default_size_pts_attribute);
  
              if ((value == null) || value.trim().equals(""))
              {
                  value = DEFAULT_SIZE_PTS;
              }
              _default_size_pts = NumericConverter.extractDouble(value);
          }
          return _default_size_pts.doubleValue();
      }
  
      /**
       * Override of Initialize() implementation
       *
       * @param attributes the array of Attribute instances; may be
       *                   empty, will never be null
       * @param parent the parent ElementProcessor; may be null
       *
       * @exception IOException if anything is wrong
       */
  
      public void initialize(final Attribute [] attributes,
                             final ElementProcessor parent)
          throws IOException
      {
          super.initialize(attributes, parent);
          getSheet().setDefaultRowHeight(getDefaultSizePts());
      }
  }   // end public class EPRows
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPSelection.java
  
  Index: EPSelection.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.NumericConverter;
  import org.apache.cocoon.components.elementprocessor.types.NumericResult;
  
  import java.io.IOException;
  
  /**
   * No-op implementation of ElementProcessor to handle the
   * "Selection" tag
   *
   * This element is a container of other elements and has four
   * attributes that define the boundaries of the region.
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EPSelection
      extends BaseElementProcessor
  {
      private static final String _start_col_attribute = "startCol";
      private static final String _start_row_attribute = "startRow";
      private static final String _end_col_attribute   = "endCol";
      private static final String _end_row_attribute   = "endRow";
      private NumericResult       _start_col;
      private NumericResult       _start_row;
      private NumericResult       _end_col;
      private NumericResult       _end_row;
  
      /**
       * constructor
       */
  
      public EPSelection()
      {
          super(null);
          _start_col = null;
          _start_row = null;
          _end_col   = null;
          _end_row   = null;
      }
  
      /**
       * @return start row
       *
       * @exception IOException
       */
  
      public int getStartRow()
          throws IOException
      {
          if (_start_row == null)
          {
              _start_row = NumericConverter
                  .extractNonNegativeInteger(getValue(_start_row_attribute));
          }
          return _start_row.intValue();
      }
  
      /**
       * @return start column
       *
       * @exception IOException
       */
  
      public int getStartCol()
          throws IOException
      {
          if (_start_col == null)
          {
              _start_col = NumericConverter
                  .extractNonNegativeInteger(getValue(_start_col_attribute));
          }
          return _start_col.intValue();
      }
  
      /**
       * @return end row
       *
       * @exception IOException
       */
  
      public int getEndRow()
          throws IOException
      {
          if (_end_row == null)
          {
              _end_row =
                  NumericConverter
                      .extractNonNegativeInteger(getValue(_end_row_attribute));
          }
          return _end_row.intValue();
      }
  
      /**
       * @return end column
       *
       * @exception IOException
       */
  
      public int getEndCol()
          throws IOException
      {
          if (_end_col == null)
          {
              _end_col =
                  NumericConverter
                      .extractNonNegativeInteger(getValue(_end_col_attribute));
          }
          return _end_col.intValue();
      }
  }   // end public class EPSelection
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPSelections.java
  
  Index: EPSelections.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.NumericConverter;
  import org.apache.cocoon.components.elementprocessor.types.NumericResult;
  
  import java.io.IOException;
  
  /**
   * No-op implementation of ElementProcessor to handle the "Selections"
   * tag
   *
   * This element is a container element with two attributes: CursorCol
   * and CursorRow, which presumable show where the cursor should be.
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EPSelections
      extends BaseElementProcessor
  {
      private static final String _cursor_col_attribute = "CursorCol";
      private static final String _cursor_row_attribute = "CursorRow";
      private NumericResult       _cursor_col;
      private NumericResult       _cursor_row;
  
      /**
       * constructor
       */
  
      public EPSelections()
      {
          super(null);
          _cursor_col = null;
          _cursor_row = null;
      }
  
      /**
       * @return cursor column
       *
       * @exception IOException
       */
  
      public int getCursorCol()
          throws IOException
      {
          if (_cursor_col == null)
          {
              _cursor_col = NumericConverter
                  .extractNonNegativeInteger(getValue(_cursor_col_attribute));
          }
          return _cursor_col.intValue();
      }
  
      /**
       * @return cursor row
       *
       * @exception IOException
       */
  
      public int getCursorRow()
          throws IOException
      {
          if (_cursor_row == null)
          {
              _cursor_row = NumericConverter
                  .extractNonNegativeInteger(getValue(_cursor_row_attribute));
          }
          return _cursor_row.intValue();
      }
  }   // end public class EPSelections
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPSheet.java
  
  Index: EPSheet.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.Attribute;
  import org.apache.cocoon.CascadingIOException;
  import org.apache.cocoon.components.elementprocessor.ElementProcessor;
  import org.apache.cocoon.components.elementprocessor.types.BooleanConverter;
  import org.apache.cocoon.components.elementprocessor.types.BooleanResult;
  
  import java.io.IOException;
  
  /**
   * No-op implementation of ElementProcessor to handle the "Sheet" tag
   *
   * This element contains other elements and has the following boolean
   * attributes:
   * <ul>
   * <li>DisplayFormulas
   * <li>HideZero
   * <li>HideGrid
   * <li>HideColHeader
   * <li>HideRowHeader
   * <li>DisplayOutlines
   * <li>OutlineSymbolsBelow
   * <li>OutlineSymbolsRight
   * </ul>
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com) 
   * @author Andrew C. Oliver (acoliver2@users.sourceforge.net)
   */
  
  public class EPSheet
      extends BaseElementProcessor
  {
      private Sheet               _sheet;
      private BooleanResult       _display_formulas;
      private BooleanResult       _hide_zero;
      private BooleanResult       _hide_grid;
      private BooleanResult       _hide_col_header;
      private BooleanResult       _hide_row_header;
      private BooleanResult       _display_outlines;
      private BooleanResult       _outline_symbols_below;
      private BooleanResult       _outline_symbols_right;
      private static final String _display_formulas_attribute      =
          "DisplayFormulas";
      private static final String _hide_zero_attribute             = "HideZero";
      private static final String _hide_grid_attribute             = "HideGrid";
      private static final String _hide_col_header_attribute       =
          "HideColHeader";
      private static final String _hide_row_header_attribute       =
          "HideRowHeader";
      private static final String _display_outlines_attribute      =
          "DisplayOutlines";
      private static final String _outline_symbols_below_attribute =
          "OutlineSymbolsBelow";
      private static final String _outline_symbols_right_attribute =
          "OutlineSymbolsRight";
  
      /**
       * constructor
       */
  
      public EPSheet()
      {
          super(null);
          _display_formulas      = null;
          _hide_zero             = null;
          _hide_grid             = null;
          _hide_col_header       = null;
          _hide_row_header       = null;
          _display_outlines      = null;
          _outline_symbols_below = null;
          _outline_symbols_right = null;
      }
  
      /**
       * Override of Initialize() implementation
       *
       * @param attributes the array of Attribute instances; may be
       *                   empty, will never be null
       * @param parent the parent ElementProcessor; may be null
       *
       * @exception IOException if anything is wrong
       */
  
      public void initialize(final Attribute [] attributes,
                             final ElementProcessor parent)
          throws IOException
      {
          super.initialize(attributes, parent);
          try
          {
              _sheet = new Sheet(getWorkbook());
          }
          catch (IOException e)
          {
              throw e;
          }
          catch (Exception e)
          {
              throw new CascadingIOException(e.getMessage(), e);
          }
      }
      
      /**
       * override of endProcessing().  Reponsible for fixing
       * style regions with blank cells.
       *
       * @exception IOException
       */
  
      public void endProcessing()
          throws IOException
      {
          _sheet.assignBlanksToRegions();
      }
      
      
  
      /**
       * override of getSheet()
       *
       * @return the sheet
       */
  
      protected Sheet getSheet()
      {
          return _sheet;
      }
  
      /**
       * @return true if formulas should be displayed
       *
       * @exception IOException if attribute is missing or malformed
       */
  
      public boolean getDisplayFormulas()
          throws IOException
      {
          if (_display_formulas == null)
          {
              _display_formulas =
                  BooleanConverter
                      .extractBoolean(getValue(_display_formulas_attribute));
          }
          return _display_formulas.booleanValue();
      }
  
      /**
       * @return true if zeroes should be suppressed
       *
       * @exception IOException if attribute is missing or malformed
       */
  
      public boolean getHideZero()
          throws IOException
      {
          if (_hide_zero == null)
          {
              _hide_zero =
                  BooleanConverter
                      .extractBoolean(getValue(_hide_zero_attribute));
          }
          return _hide_zero.booleanValue();
      }
  
      /**
       * @return true if grid should be hidden
       *
       * @exception IOException if attribute is missing or malformed
       */
  
      public boolean getHideGrid()
          throws IOException
      {
          if (_hide_grid == null)
          {
              _hide_grid =
                  BooleanConverter
                      .extractBoolean(getValue(_hide_grid_attribute));
          }
          return _hide_grid.booleanValue();
      }
  
      /**
       * @return true if column headers should be hidden
       *
       * @exception IOException if attribute is missing or malformed
       */
  
      public boolean getHideColHeader()
          throws IOException
      {
          if (_hide_col_header == null)
          {
              _hide_col_header =
                  BooleanConverter
                      .extractBoolean(getValue(_hide_col_header_attribute));
          }
          return _hide_col_header.booleanValue();
      }
  
      /**
       * @return true if row headers should be hidden
       *
       * @exception IOException if attribute is missing or malformed
       */
  
      public boolean getHideRowHeader()
          throws IOException
      {
          if (_hide_row_header == null)
          {
              _hide_row_header =
                  BooleanConverter
                      .extractBoolean(getValue(_hide_row_header_attribute));
          }
          return _hide_row_header.booleanValue();
      }
  
      /**
       * @return true if outlines should be displayed
       *
       * @exception IOException if attribute is missing or malformed
       */
  
      public boolean getDisplayOutlines()
          throws IOException
      {
          if (_display_outlines == null)
          {
              _display_outlines =
                  BooleanConverter
                      .extractBoolean(getValue(_display_outlines_attribute));
          }
          return _display_outlines.booleanValue();
      }
  
      /**
       * @return true if outline symbols are below
       *
       * @exception IOException if attribute is missing or malformed
       */
  
      public boolean getOutlineSymbolsBelow()
          throws IOException
      {
          if (_outline_symbols_below == null)
          {
              _outline_symbols_below = BooleanConverter
                  .extractBoolean(getValue(_outline_symbols_below_attribute));
          }
          return _outline_symbols_below.booleanValue();
      }
  
      /**
       * @return true if outline symbols are on the right
       *
       * @exception IOException if attribute is missing or malformed
       */
  
      public boolean getOutlineSymbolsRight()
          throws IOException
      {
          if (_outline_symbols_right == null)
          {
              _outline_symbols_right = BooleanConverter
                  .extractBoolean(getValue(_outline_symbols_right_attribute));
          }
          return _outline_symbols_right.booleanValue();
      }
  }   // end public class EPSheet
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPSheetName.java
  
  Index: EPSheetName.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  /**
   * No-op implementation of ElementProcessor to handle the "SheetName"
   * tag
   *
   * This element has no attributes and contains a string
   *
   * This element is not used in HSSFSerializer 1.0 and probably never
   * will be, as the gnumeric code indicates that it is a kludge
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EPSheetName
      extends BaseElementProcessor
  {
  
      /**
       * constructor
       */
  
      public EPSheetName()
      {
          super(null);
      }
  }   // end public class EPSheetName
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPSheetNameIndex.java
  
  Index: EPSheetNameIndex.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  /**
   * No-op implementation of ElementProcessor to handle the
   * "SheetNameIndex" tag
   *
   * This element has no attributes and contains other elements
   *
   * This element is not used in HSSFSerializer 1.0 and probably never
   * will be, as the gnumeric code indicates that it is a kludge
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EPSheetNameIndex
      extends BaseElementProcessor
  {
  
      /**
       * constructor
       */
  
      public EPSheetNameIndex()
      {
          super(null);
      }
  }   // end public class EPSheetNameIndex
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPSheetObjectBonobo.java
  
  Index: EPSheetObjectBonobo.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.NumericConverter;
  import org.apache.cocoon.components.elementprocessor.types.NumericResult;
  import org.apache.cocoon.components.elementprocessor.types.Validator;
  
  import java.io.IOException;
  
  /**
   * No-op implementation of ElementProcessor to handle the
   * "SheetObjectBonobo" tag
   *
   * This element has a small number of Attributes and no content.
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EPSheetObjectBonobo
      extends BaseElementProcessor
  {
      private String                 _object_bound;
      private Offsets                _object_offset;
      private Anchors                _object_anchor_type;
      private NumericResult          _direction;
      private static final String    _object_bound_attribute       =
          "ObjectBound";
      private static final String    _object_offset_attribute      =
          "ObjectOffset";
      private static final String    _object_anchor_type_attribute =
          "ObjectAnchorType";
      private static final String    _direction_attribute          =
          "Direction";
      private static final Validator _direction_validator          =
          new Validator()
      {
          public IOException validate(final Number number)
          {
              return Direction.isValid(number.intValue()) ? null
                                                          : new IOException(
                                                              "\"" + number
                                                              + "\" is not a legal value");
          }
      };
  
      /**
       * constructor
       */
  
      public EPSheetObjectBonobo()
      {
          super(null);
          _object_bound       = null;
          _object_offset      = null;
          _object_anchor_type = null;
          _direction          = null;
      }
  
      /**
       * @return object_bound
       *
       * @exception IOException
       */
  
      public String getObjectBound()
          throws IOException
      {
          if (_object_bound == null)
          {
              _object_bound = getValue(_object_bound_attribute);
              if (_object_bound == null)
              {
                  throw new IOException("missing " + _object_bound_attribute
                                        + " attribute");
              }
          }
          return _object_bound;
      }
  
      /**
       * @return offsets
       *
       * @exception IOException
       */
  
      public Offsets getOffsets()
          throws IOException
      {
          if (_object_offset == null)
          {
              _object_offset = new Offsets(getValue(_object_offset_attribute));
          }
          return _object_offset;
      }
  
      /**
       * @return anchors
       *
       * @exception IOException
       */
  
      public Anchors getAnchors()
          throws IOException
      {
          if (_object_anchor_type == null)
          {
              _object_anchor_type =
                  new Anchors(getValue(_object_anchor_type_attribute));
          }
          return _object_anchor_type;
      }
  
      /**
       * @return direction as a public member of Direction
       *
       * @exception IOException
       */
  
      public int getDirection()
          throws IOException
      {
          if (_direction == null)
          {
              _direction = NumericConverter.extractInteger(
                  getValue(_direction_attribute), _direction_validator);
          }
          return _direction.intValue();
      }
  }   // end public class EPSheetObjectBonobo
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPSheetObjectFilled.java
  
  Index: EPSheetObjectFilled.java
  ===================================================================
  
  /*
   * =========================================================================
   *
   *                 The POI Project Software License,  Version 1.1
   *                           (based on APL 1.1)
   *         Copyright (c) 2002 SuperLink Software, Inc. and Marcus Johnson
   *                           All rights reserved.
   *
   * =========================================================================
   *
   * Redistribution and use in source and binary forms,  with or without modi-
   * fication, are permitted provided that the following conditions are met:
   *
   * 1. Redistributions of source code  must retain the above copyright notice
   *    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 acknowlegement:
   *
   *       "This product includes  software developed  by SuperLink
   *        Software, Inc. <www.superlinksoftware.com> and Marcus Johnson as
   *        well as other POI project <poi.sourceforge.net> contributers"
   *
   *    Alternately, this acknowlegement may appear in the software itself, if
   *    and wherever such third-party acknowlegements normally appear.
   *
   * 4. The names  "POI",  "HSSF", "SuperLink Software, Inc." and "Marcus
   *    Johnson"  must not be used  to endorse or promote  products derived
   *    from this  software without  prior  written  permission.  For  written
   *    permission, please contact <andyoliver at yahoo dot com>.
   *
   * 5. Products derived from this software may not be called "POI" nor may
   *    "POI" appear in their names without prior written permission of
   *    SuperLink Software, Inc.
   *
   * 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 SUPERLINK SOFTWARE, INC., ANDREW C. OLIVER OR  THE   CONTRIBUTORS  TO
   * THE POI PROJECT 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 indivi-
   * duals on behalf of  SuperLink Software, Inc.  For more information
   * on the SuperLink Software, Inc, please see
   * <http://www.superlinksoftware.com/>.  For more information on the POI
   * project see <www.sf.net/projects/poi>.
   *
   * =========================================================================
   */
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.NumericConverter;
  import org.apache.cocoon.components.elementprocessor.types.NumericResult;
  import org.apache.cocoon.components.elementprocessor.types.Validator;
  
  import java.io.IOException;
  
  /**
   * No-op implementation of ElementProcessor to handle the
   * "SheetObjectFilled" tag
   *
   * This element has a small number of Attributes and no content.
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EPSheetObjectFilled
      extends BaseElementProcessor
  {
      private String                 _object_bound;
      private Offsets                _object_offset;
      private Anchors                _object_anchor_type;
      private NumericResult          _direction;
      private ColorCode              _outline_color;
      private ColorCode              _fill_color;
      private NumericResult          _type;
      private NumericResult          _width;
      private NumericResult          _arrow_shape_a;
      private NumericResult          _arrow_shape_b;
      private NumericResult          _arrow_shape_c;
      private boolean                _arrow_shape_a_fetched;
      private boolean                _arrow_shape_b_fetched;
      private boolean                _arrow_shape_c_fetched;
      private static final String    _object_bound_attribute       =
          "ObjectBound";
      private static final String    _object_offset_attribute      =
          "ObjectOffset";
      private static final String    _object_anchor_type_attribute =
          "ObjectAnchorType";
      private static final String    _direction_attribute          =
          "Direction";
      private static final String    _outline_color_attribute      =
          "OutlineColor";
      private static final String    _fill_color_attribute         =
          "FillColor";
      private static final String    _type_attribute               = "Type";
      private static final String    _width_attribute              = "Width";
      private static final String    _arrow_shape_a_attribute      =
          "ArrowShapeA";
      private static final String    _arrow_shape_b_attribute      =
          "ArrowShapeB";
      private static final String    _arrow_shape_c_attribute      =
          "ArrowShapeC";
      private static final Validator _direction_validator          =
          new Validator()
      {
          public IOException validate(final Number number)
          {
              return Direction.isValid(number.intValue()) ? null
                                                          : new IOException(
                                                              "\"" + number
                                                              + "\" is not a legal value");
          }
      };
      private static final Validator _object_fill_validator = new Validator()
      {
          public IOException validate(final Number number)
          {
              return ObjectFill.isValid(number.intValue()) ? null
                                                           : new IOException(
                                                               "\"" + number
                                                               + "\" is not a legal value");
          }
      };
  
      /**
       * constructor
       */
  
      public EPSheetObjectFilled()
      {
          super(null);
          _object_bound          = null;
          _object_offset         = null;
          _object_anchor_type    = null;
          _direction             = null;
          _outline_color         = null;
          _fill_color            = null;
          _type                  = null;
          _width                 = null;
          _arrow_shape_a         = null;
          _arrow_shape_b         = null;
          _arrow_shape_c         = null;
          _arrow_shape_a_fetched = false;
          _arrow_shape_b_fetched = false;
          _arrow_shape_c_fetched = false;
      }
  
      /**
       * @return object_bound
       *
       * @exception IOException
       */
  
      public String getObjectBound()
          throws IOException
      {
          if (_object_bound == null)
          {
              _object_bound = getValue(_object_bound_attribute);
              if (_object_bound == null)
              {
                  throw new IOException("missing " + _object_bound_attribute
                                        + " attribute");
              }
          }
          return _object_bound;
      }
  
      /**
       * @return offsets
       *
       * @exception IOException
       */
  
      public Offsets getOffsets()
          throws IOException
      {
          if (_object_offset == null)
          {
              _object_offset = new Offsets(getValue(_object_offset_attribute));
          }
          return _object_offset;
      }
  
      /**
       * @return anchors
       *
       * @exception IOException
       */
  
      public Anchors getAnchors()
          throws IOException
      {
          if (_object_anchor_type == null)
          {
              _object_anchor_type =
                  new Anchors(getValue(_object_anchor_type_attribute));
          }
          return _object_anchor_type;
      }
  
      /**
       * @return direction as a public member of Direction
       *
       * @exception IOException
       */
  
      public int getDirection()
          throws IOException
      {
          if (_direction == null)
          {
              _direction = NumericConverter.extractInteger(
                  getValue(_direction_attribute), _direction_validator);
          }
          return _direction.intValue();
      }
  
      /**
       * @return outline color
       *
       * @exception IOException
       */
  
      public ColorCode getOutlineColor()
          throws IOException
      {
          if (_outline_color == null)
          {
              _outline_color =
                  new ColorCode(getValue(_outline_color_attribute));
          }
          return _outline_color;
      }
  
      /**
       * @return fill color
       *
       * @exception IOException
       */
  
      public ColorCode getFillColor()
          throws IOException
      {
          if (_fill_color == null)
          {
              _fill_color = new ColorCode(getValue(_fill_color_attribute));
          }
          return _fill_color;
      }
  
      /**
       * @return type as a public member of ObjectFill
       *
       * @exception IOException
       */
  
      public int getType()
          throws IOException
      {
          if (_type == null)
          {
              _type = NumericConverter.extractInteger(getValue(_type_attribute),
                                                      _object_fill_validator);
          }
          return _type.intValue();
      }
  
      /**
       * @return width
       *
       * @exception IOException
       */
  
      public int getWidth()
          throws IOException
      {
          if (_width == null)
          {
              _width =
                  NumericConverter
                      .extractPositiveInteger(getValue(_width_attribute));
          }
          return _width.intValue();
      }
  
      /**
       * @return arrow shape a
       *
       * @exception IOException
       * @exception NullPointerException
       */
  
      public double getArrowShapeA()
          throws IOException, NullPointerException
      {
          if (!_arrow_shape_a_fetched)
          {
              _arrow_shape_a_fetched  = true;
              String arrowShapeString = getValue(_arrow_shape_a_attribute);
              if (arrowShapeString != null)
              {
                  _arrow_shape_a =
                      NumericConverter.extractDouble(arrowShapeString);
              }
              else
              {
                  throw new NullPointerException("attribute "
                                                 + _arrow_shape_a_attribute
                                                 + " is absent");
              }
          }
          return _arrow_shape_a.doubleValue();
      }
  
      /**
       * @return arrow shape b
       *
       * @exception IOException, NullPointerException
       * @exception NullPointerException
       */
  
      public double getArrowShapeB()
          throws IOException, NullPointerException
      {
          if (!_arrow_shape_b_fetched)
          {
              _arrow_shape_b_fetched  = true;
              String arrowShapeString = getValue(_arrow_shape_b_attribute);
              if (arrowShapeString != null)
              {
                  _arrow_shape_b =
                      NumericConverter.extractDouble(arrowShapeString);
              }
              else
              {
                  throw new NullPointerException("attribute "
                                                 + _arrow_shape_b_attribute
                                                 + " is absent");
              }
          }
          return _arrow_shape_b.doubleValue();
      }
  
      /**
       * @return arrow shape c
       *
       * @exception IOException, NullPointerException
       * @exception NullPointerException
       */
  
      public double getArrowShapeC()
          throws IOException, NullPointerException
      {
          if (!_arrow_shape_c_fetched)
          {
              _arrow_shape_c_fetched  = true;
              String arrowShapeString = getValue(_arrow_shape_c_attribute);
              if (arrowShapeString != null)
              {
                  _arrow_shape_c =
                      NumericConverter.extractDouble(arrowShapeString);
              }
              else
              {
                  throw new NullPointerException("attribute "
                                                 + _arrow_shape_c_attribute
                                                 + " is absent");
              }
          }
          return _arrow_shape_c.doubleValue();
      }
  }   // end public class EPSheetObjectFilled
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPSheets.java
  
  Index: EPSheets.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  /**
   * No-op implementation of ElementProcessor to handle the "Sheets" tag
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EPSheets
      extends BaseElementProcessor
  {
  
      /**
       * constructor
       */
  
      public EPSheets()
      {
          super(null);
      }
  }   // end public class EPSheets
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPSolver.java
  
  Index: EPSolver.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.NumericConverter;
  import org.apache.cocoon.components.elementprocessor.types.NumericResult;
  
  import java.io.IOException;
  
  /**
   * No-op implementation of ElementProcessor to handle the "Solver" tag
   *
   * This element is a container with four atributes (TargetRow,
   * TargetCol, and ProblemType are integers, and Inputs is a String)
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EPSolver
      extends BaseElementProcessor
  {
      private NumericResult       _target_row;
      private NumericResult       _target_col;
      private NumericResult       _problem_type;
      private String              _inputs;
      private static final String _target_row_attribute   = "TargetRow";
      private static final String _target_col_attribute   = "TargetCol";
      private static final String _problem_type_attribute = "ProblemType";
      private static final String _inputs_attribute       = "Inputs";
  
      /**
       * constructor
       */
  
      public EPSolver()
      {
          super(null);
          _target_row   = null;
          _target_col   = null;
          _problem_type = null;
          _inputs       = null;
      }
  
      /**
       * @return target column
       *
       * @exception IOException
       */
  
      public int getTargetCol()
          throws IOException
      {
          if (_target_col == null)
          {
              _target_col =
                  NumericConverter
                      .extractInteger(getValue(_target_col_attribute));
          }
          return _target_col.intValue();
      }
  
      /**
       * @return target row
       *
       * @exception IOException
       */
  
      public int getTargetRow()
          throws IOException
      {
          if (_target_row == null)
          {
              _target_row =
                  NumericConverter
                      .extractInteger(getValue(_target_row_attribute));
          }
          return _target_row.intValue();
      }
  
      /**
       * @return problem type
       *
       * @exception IOException
       */
  
      public int getProblemType()
          throws IOException
      {
          if (_problem_type == null)
          {
              _problem_type =
                  NumericConverter
                      .extractInteger(getValue(_problem_type_attribute));
          }
          return _problem_type.intValue();
      }
  
      /**
       * @return inputs
       */
  
      public String getInputs()
      {
          if (_inputs == null)
          {
              String value = getValue(_inputs_attribute);
  
              _inputs = (value == null) ? ""
                                        : value.trim();
          }
          return _inputs;
      }
  }   // end public class EPSolver
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPStyle.java
  
  Index: EPStyle.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.Attribute;
  import org.apache.cocoon.components.elementprocessor.ElementProcessor;
  
  import org.apache.cocoon.components.elementprocessor.types.BooleanConverter;
  import org.apache.cocoon.components.elementprocessor.types.BooleanResult;
  import org.apache.cocoon.components.elementprocessor.types.NumericConverter;
  import org.apache.cocoon.components.elementprocessor.types.NumericResult;
  import org.apache.cocoon.components.elementprocessor.types.Validator;
  
  import org.apache.poi.hssf.util.Region;
  import org.apache.poi.hssf.util.HSSFColor;
  
  import org.apache.poi.hssf.usermodel.HSSFCellStyle;
  
  import java.io.IOException;
  import java.util.Hashtable;
  
  /**
   * No-op implementation of ElementProcessor to handle the "Style" tag
   *
   * This element is a container of other elements and has several
   * attributes
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   * @author Andrew C. Oliver (acoliver2@users.sourceforge.net)
   */
  
  public class EPStyle
      extends BaseElementProcessor
  {
      private HorizontalAlignment    _h_align;
      private VerticalAlignment      _v_align;
      private BooleanResult          _wrap_text;
      private StyleOrientation       _orient;
      private NumericResult          _shade;
      private NumericResult          _indent;
      private ColorCode              _fore;
      private ColorCode              _back;
      private ColorCode              _pattern_color;
      private String                 _format;   
      private static final String    _h_align_attribute       = "HAlign";
      private static final String    _v_align_attribute       = "VAlign";
      private static final String    _wrap_text_attribute     = "WrapText";
      private static final String    _orient_attribute        = "Orient";
      private static final String    _shade_attribute         = "Shade";
      private static final String    _indent_attribute        = "Indent";
      private static final String    _fore_attribute          = "Fore";
      private static final String    _back_attribute          = "Back";
      private static final String    _pattern_color_attribute = "PatternColor";
      private static final String    _format_attribute        = "Format";
      
      private boolean invalid;
      
      private static final Validator _shade_validator         = new Validator()
      {
          public IOException validate(final Number number)
          {
              return StyleShading.isValid(number.intValue()) ? null
                                                             : new IOException(
                                                                 "\"" + number
                                                                 + "\" is not a legal value");
          }
      };
  
      /**
       * constructor
       */
  
      public EPStyle()
      {
          super(null);
          _h_align       = null;
          _v_align       = null;
          _wrap_text     = null;
          _orient        = null;
          _shade         = null;
          _indent        = null;
          _fore          = null;
          _back          = null;
          _pattern_color = null;
          _format        = null;
      }
      
      /**
       * Override of Initialize() implementation
       *
       * @param attributes the array of Attribute instances; may be
       *                   empty, will never be null
       * @param parent the parent ElementProcessor; may be null
       * @param filesystem the POIFSFileSystem object
       *
       * @exception IOException if anything is wrong
       */
  
      public void initialize(final Attribute [] attributes,
                             final ElementProcessor parent)
          throws IOException
      {
          super.initialize(attributes, parent);
          
          
          EPStyleRegion sregion = (EPStyleRegion) parent;
          
          if (sregion.isValid()) {
              Hashtable colorhash = sregion.getColorHash();
  
              HSSFCellStyle style = sregion.getStyle();
              short cnvhalign = convertAlignment(getHorizontalAlignment().getCode());
              style.setAlignment(cnvhalign);
              short cnvvalign = convertVAlignment(getVerticalAlignment().getCode());            
              style.setVerticalAlignment(cnvvalign);
              style.setFillPattern((short)getShade());
              
   
              if (getShade() == 1) {   //TODO: change to constant when upgrade to new HSSF 
                                       //solid w/foreground, bg doesn't matter
                  getLogger().debug("shade = 1");
                  HSSFColor color = (HSSFColor) colorhash.get(getBackgroundColor().toString());
                  if (color == null) {
                      getLogger().debug("s1 BG couldn't find color for "+ getBackgroundColor().toString());
                      color = new HSSFColor.WHITE();           
                  }
                  style.setFillForegroundColor(color.getIndex());
                  color = (HSSFColor) colorhash.get(getPatternColor().toString());
                  if (color == null) {
                      getLogger().debug("s1 PC couldn't find color for "+ getPatternColor().toString());
                      color = new HSSFColor.BLACK();   
                  }
                  style.setFillBackgroundColor(color.getIndex());
              } else {
                  HSSFColor color = (HSSFColor) colorhash.get(getBackgroundColor().toString());
                  if (color == null) {                
                      getLogger().debug("BG couldn't find color for "+ getBackgroundColor().toString());
                      color = new HSSFColor.BLACK();   
                  }
                  style.setFillBackgroundColor(color.getIndex());            
                  color = (HSSFColor) colorhash.get(getPatternColor().toString());
                  if (color == null) {
                      getLogger().debug("PC couldn't find color for "+ getPatternColor().toString());
                      color = new HSSFColor.WHITE();     
                  }
                  style.setFillForegroundColor(color.getIndex());            
              }
              style.setWrapText(getWrapText());
              style.setLocked(true);
              
              String format = null;
  
  	    try {
  		format = getFormat();
              } catch (NullPointerException e) {
  		format = "General";
              }
  
              if (!format.equals("General")) {
                  format = kludgeForGnumericMisformats(format);
                  format = kludgeForGnumericDateDivergence(format);
                  short nformat = org.apache.poi.hssf.usermodel.HSSFDataFormat.getFormat(format);
                          getLogger().debug("setting format to "+ nformat);
                  style.setDataFormat(nformat);
              }
          } else {
              
              invalid = true;
          }
      }    
      
      /**
       * @return true if horizontal alignment general bit is set
       *
       * @exception IOException
       */
  
      public boolean isHorizontalGeneral()
          throws IOException
      {
          return getHorizontalAlignment().isGeneral();
      }
  
      /**
       * @return true if horizontal alignment left bit is set
       *
       * @exception IOException
       */
  
      public boolean isHorizontalLeft()
          throws IOException
      {
          return getHorizontalAlignment().isLeft();
      }
  
      /**
       * @return true if horizontal alignment right bit is set
       *
       * @exception IOException
       */
  
      public boolean isHorizontalRight()
          throws IOException
      {
          return getHorizontalAlignment().isRight();
      }
  
      /**
       * @return true if horizontal alignment center bit is set
       *
       * @exception IOException
       */
  
      public boolean isHorizontalCenter()
          throws IOException
      {
          return getHorizontalAlignment().isCenter();
      }
  
      /**
       * @return true if horizontal alignment fill bit is set
       *
       * @exception IOException
       */
  
      public boolean isHorizontalFill()
          throws IOException
      {
          return getHorizontalAlignment().isFill();
      }
  
      /**
       * @return true if horizontal alignment justify bit is set
       *
       * @exception IOException
       */
  
      public boolean isHorizontalJustify()
          throws IOException
      {
          return getHorizontalAlignment().isJustify();
      }
  
      /**
       * @return true if horizontal alignment center across selection
       *         bit is set
       *
       * @exception IOException
       */
  
      public boolean isHorizontalCenterAcrossSelection()
          throws IOException
      {
          return getHorizontalAlignment().isCenterAcrossSelection();
      }
  
      /**
       * @return true if vertical alignment top bit is set
       *
       * @exception IOException
       */
  
      public boolean isVerticalTop()
          throws IOException
      {
          return getVerticalAlignment().isTop();
      }
  
      /**
       * @return true if vertical alignment bottom bit is set
       *
       * @exception IOException
       */
  
      public boolean isVerticalBottom()
          throws IOException
      {
          return getVerticalAlignment().isBottom();
      }
  
      /**
       * @return true if vertical alignment center bit is set
       *
       * @exception IOException
       */
  
      public boolean isVerticalCenter()
          throws IOException
      {
          return getVerticalAlignment().isCenter();
      }
  
      /**
       * @return true if vertical alignment justify bit is set
       *
       * @exception IOException
       */
  
      public boolean isVerticalJustify()
          throws IOException
      {
          return getVerticalAlignment().isJustify();
      }
  
      /**
       * @return true if wrap text is enabled
       *
       * @exception IOException
       */
  
      public boolean getWrapText()
          throws IOException
      {
          if (_wrap_text == null)
          {
              _wrap_text =
                  BooleanConverter
                      .extractBoolean(getValue(_wrap_text_attribute));
          }
          return _wrap_text.booleanValue();
      }
  
      /**
       * @return true if style orientation horiz bit is set
       *
       * @exception IOException
       */
  
      public boolean isStyleOrientationHoriz()
          throws IOException
      {
          return getStyleOrientation().isHoriz();
      }
  
      /**
       * @return true if style orientation vert horiz text bit is set
       *
       * @exception IOException
       */
  
      public boolean isStyleOrientationVertHorizText()
          throws IOException
      {
          return getStyleOrientation().isVertHorizText();
      }
  
      /**
       * @return true if style orientation vert vert text bit is set
       *
       * @exception IOException
       */
  
      public boolean isStyleOrientationVertVertText()
          throws IOException
      {
          return getStyleOrientation().isVertVertText();
      }
  
      /**
       * @return true if style orientation vert vert text2 bit is set
       *
       * @exception IOException
       */
  
      public boolean isStyleOrientationVertVertText2()
          throws IOException
      {
          return getStyleOrientation().isVertVertText2();
      }
  
      /**
       * @return shade as one of the public variables in StyleShading
       *
       * @exception IOException
       */
  
      public int getShade()
          throws IOException
      {
          if (_shade == null)
          {
              _shade =
                  NumericConverter.extractInteger(getValue(_shade_attribute),
                                                  _shade_validator);
          }
          return _shade.intValue();
      }
  
      /**
       * @return indent
       *
       * @exception IOException
       */
  
      public int getIndent()
          throws IOException
      {
          if (_indent == null)
          {
              _indent =
                  NumericConverter.extractInteger(getValue(_indent_attribute));
          }
          return _indent.intValue();
      }
  
      /**
       * @return foreground color
       *
       * @exception IOException
       */
  
      public ColorCode getForegroundColor()
          throws IOException
      {
          if (_fore == null)
          {
              _fore = new ColorCode(getValue(_fore_attribute));
          }
          return _fore;
      }
  
      /**
       * @return background color
       *
       * @exception IOException
       */
  
      public ColorCode getBackgroundColor()
          throws IOException
      {
          if (_back == null)
          {
              _back = new ColorCode(getValue(_back_attribute));
          }
          return _back;
      }
  
      /**
       * @return pattern color
       *
       * @exception IOException
       */
  
      public ColorCode getPatternColor()
          throws IOException
      {
          if (_pattern_color == null)
          {
              _pattern_color =
                  new ColorCode(getValue(_pattern_color_attribute));
          }
          return _pattern_color;
      }
  
      /**
       * @return format string
       *
       * @exception IOException
       */
  
      public String getFormat()
          throws IOException
      {
          if (_format == null)
          {
              _format = getValue(_format_attribute);
              /*if (_format == null)
              {
                  throw new IOException("missing " + _format_attribute
                                        + " attribute");
              }*/
          }
          return _format;
      }
  
      private HorizontalAlignment getHorizontalAlignment()
          throws IOException
      {
          if (_h_align == null)
          {
              _h_align = new HorizontalAlignment(getValue(_h_align_attribute));
          }
          return _h_align;
      }
  
      private VerticalAlignment getVerticalAlignment()
          throws IOException
      {
          if (_v_align == null)
          {
              _v_align = new VerticalAlignment(getValue(_v_align_attribute));
          }
          return _v_align;
      }
  
      private StyleOrientation getStyleOrientation()
          throws IOException
      {
          if (_orient == null)
          {
              _orient = new StyleOrientation(getValue(_orient_attribute));
          }
          return _orient;
      }
      
      /**
       * @return instance created in the EPStyles instance from HSSFColor.getTripletHash();
       * @see org.apache.poi.hssf.util.HSSFColor#getTripletHash()
       */
      Hashtable getColorHash() {
          return ((EPStyleRegion)getAncestor(EPStyleRegion.class)).getColorHash();
      }
      
      /**
       *  @return the HSSFCellStyle object associated with this style region.
       */
      HSSFCellStyle getStyle() {
          return ((EPStyleRegion)getAncestor(EPStyleRegion.class)).getStyle();
      }
      
      /**
       *
       * @return validity (used to determine whether this is a big wasteful region with
       *  no purpose (gnumeric does this)
       */
      public boolean isValid () {
          return (!invalid);
      }
      
     /**
      * deal with mismatch between gnumeric align and Excel
      */
     private short convertAlignment(short alignment) {
          short retval=HSSFCellStyle.ALIGN_GENERAL; // its 0
  
          switch (alignment) {
          case 1:
                  retval = HSSFCellStyle.ALIGN_GENERAL;
          break;
          case 2:
                  retval = HSSFCellStyle.ALIGN_LEFT;
          break;
          case 4:
                  retval = HSSFCellStyle.ALIGN_RIGHT;
          break;
          case 8:
                  retval = HSSFCellStyle.ALIGN_CENTER;
          break;
          case 16:
                  retval = HSSFCellStyle.ALIGN_FILL;
         break;
          case 32:
                  retval = HSSFCellStyle.ALIGN_JUSTIFY;
          break;
          case 64:
                  retval = HSSFCellStyle.ALIGN_CENTER_SELECTION;
          break;
          default:
                  retval = HSSFCellStyle.ALIGN_GENERAL;
          } 
  
          return retval;
     }
  
     /**
      * deal with mismatch between gnumeric valign and Excel
      */
     private short convertVAlignment(short alignment) {
          short retval=HSSFCellStyle.VERTICAL_TOP; // its 0
  
          switch (alignment) {
          case 1:
                  retval = HSSFCellStyle.VERTICAL_TOP;
          break;
          case 2:
                  retval = HSSFCellStyle.VERTICAL_BOTTOM;
          break;
          case 4:
                  retval = HSSFCellStyle.VERTICAL_CENTER;
          break;
          case 8:
                  retval = HSSFCellStyle.VERTICAL_JUSTIFY;
          break;
          default:
                  retval = HSSFCellStyle.VERTICAL_TOP;
          }
          return retval;
     }
     
      /**
       * Takes in a Gnumeric format string and applies some rules to it.  Some
       * versions of Gnumeric seem to leave off the first parenthesis which 
       * causes them not to match the Excel-style format string.  (which of course
       * makes it a little hard to match)
       */
      private String kludgeForGnumericMisformats(String format) {        
          String retval = format;
          getLogger().debug("going out of the format kludger "+ retval);        
          getLogger().debug("first )="+format.indexOf(')'));
          getLogger().debug("first (="+format.indexOf('('));
          if ( (format.indexOf(')') < format.indexOf('(')) && 
               (format.indexOf(')') != -1 )
               ) {
              retval = "("+format;
          }
          getLogger().debug("going out of the format kludger "+ retval);        
          return retval;
      }    
  
      private String kludgeForGnumericDateDivergence(String format) {
          String retval = format;
          getLogger().debug("going into the format kludgeForGnumericDateDivergence"+ retval);          
         
          if (retval.equals("mm/dd/yy")) {
              retval = "m/d/yy";
          } else if (retval.equals("dd-mmm-yy")) {
              retval = "d-mmm-yy";
          } else if (retval.equals("dd-mmm")) {
              retval = "d-mmm";
          }
  
          getLogger().debug("going out of the format kludgeForGnumericDateDivergence"+ retval);        
          return retval;
      }
     
      
     
  
  }   // end public class EPStyle
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPStyleBorder.java
  
  Index: EPStyleBorder.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  /**
   * No-op implementation of ElementProcessor to handle the
   * "StyleBorder" tag
   *
   * This element is a container element with no attributes.
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EPStyleBorder
      extends BaseElementProcessor
  {
  
      /**
       * constructor
       */
  
      public EPStyleBorder()
      {
          super(null);
      }
  }   // end public class EPStyleBorder
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPStyleRegion.java
  
  Index: EPStyleRegion.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import java.util.Hashtable;
  
  import org.apache.cocoon.components.elementprocessor.types.NumericConverter;
  import org.apache.cocoon.components.elementprocessor.types.NumericResult;
  import org.apache.cocoon.components.elementprocessor.ElementProcessor;
  import org.apache.cocoon.components.elementprocessor.types.Attribute;
  
  import org.apache.poi.hssf.usermodel.HSSFCellStyle;
  import org.apache.poi.hssf.util.Region;
  
  
  import java.io.IOException;
  
  /**
   * No-op implementation of ElementProcessor to handle the
   * "StyleRegion" tag
   *
   * This element is a container of other elements and has four
   * attributes that define the boundaries of the region.
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   * @author Andrew C. Oliver (acoliver2@users.sourceforge.net)
   */
  
  public class EPStyleRegion
      extends BaseElementProcessor
  {
      private static final String _start_col_attribute = "startCol";
      private static final String _start_row_attribute = "startRow";
      private static final String _end_col_attribute   = "endCol";
      private static final String _end_row_attribute   = "endRow";
      private NumericResult       _start_col;
      private NumericResult       _start_row;
      private NumericResult       _end_col;
      private NumericResult       _end_row;
  
      private HSSFCellStyle       _style;
      private Hashtable           colorhash;
  
      private boolean             invalid;
  
  
      //kludge constant to fix gnumeric's love of declaring large stlye regions
      //for the blank sections of the sheet w/no apparent purpose that we can
      //
      private int MAX_AREA = 2001;
  
      /**
       * constructor
       */
  
      public EPStyleRegion()
      {
          super(null);
          _start_col = null;
          _start_row = null;
          _end_col   = null;
          _end_row   = null;
      }
  
      /**
       * Override of Initialize() implementation
       *
       * @param attributes the array of Attribute instances; may be
       *                   empty, will never be null
       * @param parent the parent ElementProcessor; may be null
       * @param filesystem the POIFSFileSystem object
       *
       * @exception IOException if anything is wrong
       */
  
      public void initialize(final Attribute [] attributes,
                             final ElementProcessor parent)
          throws IOException
      {
          super.initialize(attributes, parent);
  
          Region region = new Region(getStartRow(),
                                     (short)getStartCol(),
                                     getEndRow(),
                                     (short)getEndCol());
  
  //        if (region.getRowFrom() == 0 &&
  //            region.getColumnFrom() ==0)
  //            getLogger().debug("got 0,0");
  
          getLogger().debug("region area is "+region.getArea());
          if(region.getArea() < MAX_AREA) {  //protect against stupid mega regions
                                         //of generally NOTHING and no real
                                         //puprose created by gnumeric
              getLogger().debug("region added");
              _style = getSheet().addStyleRegion(region
                                        ); //test
          } else {
              invalid = true;
          }
  
          colorhash = ((EPStyles)parent).getColorHash();
      }
  
  
      /**
       * @return start row
       *
       * @exception IOException
       */
  
      public int getStartRow()
          throws IOException
      {
          if (_start_row == null)
          {
              _start_row = NumericConverter
                  .extractNonNegativeInteger(getValue(_start_row_attribute));
          }
          return _start_row.intValue();
      }
  
      /**
       * @return start column
       *
       * @exception IOException
       */
  
      public int getStartCol()
          throws IOException
      {
          if (_start_col == null)
          {
              _start_col = NumericConverter
                  .extractNonNegativeInteger(getValue(_start_col_attribute));
          }
          return _start_col.intValue();
      }
  
      /**
       * @return end row
       *
       * @exception IOException
       */
  
      public int getEndRow()
          throws IOException
      {
          if (_end_row == null)
          {
              _end_row =
                  NumericConverter
                      .extractNonNegativeInteger(getValue(_end_row_attribute));
          }
          return _end_row.intValue();
      }
  
      /**
       * @return end column
       *
       * @exception IOException
       */
  
      public int getEndCol()
          throws IOException
      {
          if (_end_col == null)
          {
              _end_col =
                  NumericConverter
                      .extractNonNegativeInteger(getValue(_end_col_attribute));
          }
          return _end_col.intValue();
      }
  
      /**
       *  @return HSSFCellStyle associated with this style region.
       */
      public HSSFCellStyle getStyle() {
          return _style;
      }
  
      /**
       * @return instance created in the EPStyles instance from HSSFColor.getTripletHash();
       * @see org.apache.poi.hssf.util.HSSFColor#getTripletHash()
       */
      public Hashtable getColorHash() {
          return colorhash;
      }
  
      /**
       *
       * @return validity (used to determine whether this is a big wasteful region with
       *  no purpose (gnumeric does this
       */
      public boolean isValid () {
          return (!invalid);
      }
  
  }   // end public class EPStyleRegion
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPStyles.java
  
  Index: EPStyles.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import java.util.Hashtable;
  import org.apache.poi.hssf.util.HSSFColor;
  /**
   * No-op implementation of ElementProcessor to handle the "Styles" tag
   *
   * This is a container element with no attributes
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   * @author Andrew C. Oliver (acoliver2@users.sourceforge.net)
   */
  
  public class EPStyles
      extends BaseElementProcessor
  {
      private Hashtable colors;
      /**
       * constructor
       */
  
      public EPStyles()
      {
          super(null);
          colors = HSSFColor.getTripletHash();
      }
  
      /**
       *  @return an instance of Hashtable created by HSSFColor.getTripletHash()
       *  @see org.apache.poi.hssf.util.HSSFColor#getTripletHash()
       */
      public Hashtable getColorHash() {
          return colors;
      }
  }   // end public class EPStyles
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPSummary.java
  
  Index: EPSummary.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  /**
   * No-op implementation of ElementProcessor to handle the "Summary"
   * tag
   *
   * This element has no attributes and contains other elements
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EPSummary
      extends BaseElementProcessor
  {
  
      /**
       * constructor
       */
  
      public EPSummary()
      {
          super(null);
      }
  }   // end public class EPSummary
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPTop.java
  
  Index: EPTop.java
  ===================================================================
  
  /*
   * ========================================================================= 
   *                                                                           
   *                 The POI Project Software License,  Version 1.1            
   *                           (based on APL 1.1)                              
   *         Copyright (c) 2002 SuperLink Software, Inc. and Marcus Johnson    
   *                           All rights reserved.                            
   *                                                                           
   * ========================================================================= 
   *                                                                           
   * Redistribution and use in source and binary forms,  with or without modi- 
   * fication, are permitted provided that the following conditions are met:   
   *                                                                           
   * 1. Redistributions of source code  must retain the above copyright notice 
   *    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 acknowlegement:                             
   *                                                                           
   *       "This product includes  software developed  by SuperLink            
   *        Software, Inc. <www.superlinksoftware.com> and Marcus Johnson as   
   *        well as other POI project <poi.sourceforge.net> contributers"      
   *                                                                           
   *    Alternately, this acknowlegement may appear in the software itself, if 
   *    and wherever such third-party acknowlegements normally appear.         
   *                                                                           
   * 4. The names  "POI",  "HSSF", "SuperLink Software, Inc." and "Marcus      
   *    Johnson"  must not be used  to endorse or promote  products derived    
   *    from this  software without  prior  written  permission.  For  written 
   *    permission, please contact <andyoliver at yahoo dot com>.              
   *                                                                           
   * 5. Products derived from this software may not be called "POI" nor may    
   *    "POI" appear in their names without prior written permission of        
   *    SuperLink Software, Inc.                                               
   *                                                                           
   * 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 SUPERLINK SOFTWARE, INC., ANDREW C. OLIVER OR  THE   CONTRIBUTORS  TO 
   * THE POI PROJECT 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 indivi- 
   * duals on behalf of  SuperLink Software, Inc.  For more information        
   * on the SuperLink Software, Inc, please see                                
   * <http://www.superlinksoftware.com/>.  For more information on the POI     
   * project see <www.sf.net/projects/poi>.                                    
   *                                                                           
   * ========================================================================= 
   */
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.Attribute;
  import org.apache.cocoon.components.elementprocessor.ElementProcessor;
  
  import org.apache.cocoon.components.elementprocessor.types.NumericConverter;
  import org.apache.cocoon.components.elementprocessor.types.NumericResult;
  import org.apache.cocoon.components.elementprocessor.types.Validator;
  
  import org.apache.poi.hssf.util.HSSFColor;
  import org.apache.poi.hssf.usermodel.HSSFCellStyle;
  
  import java.io.IOException;
  import java.util.Hashtable;
  
  /**
   * No-op implementation of ElementProcessor to handle the "Top" tag
   *
   * This element has two attributes and no content.
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   * @author Andrew C. Oliver (acoliver2@users.sourceforge.net)
   */
  
  public class EPTop
      extends BaseElementProcessor
  {
      private NumericResult          _style;
      private ColorCode              _color;
      private boolean                _color_fetched;
      private static final String    _style_attribute = "Style";
      private static final String    _color_attribute = "Color";
      private static final Validator _style_validator = new Validator()
      {
          public IOException validate(final Number number)
          {
              return BorderStyle.isValid(number.intValue()) ? null
                                                            : new IOException(
                                                                "\"" + number
                                                                + "\" is not a legal value");
          }
      };
  
      /**
       * constructor
       */
  
      public EPTop()
      {
          super(null);
          _style         = null;
          _color         = null;
          _color_fetched = false;
      }
      
      
      /**
       * Override of Initialize() implementation
       *
       * @param attributes the array of Attribute instances; may be
       *                   empty, will never be null
       * @param parent the parent ElementProcessor; may be null
       * @param filesystem the POIFSFileSystem object
       *
       * @exception IOException if anything is wrong
       */
  
      public void initialize(final Attribute [] attributes,
                             final ElementProcessor parent)
          throws IOException
      {
          super.initialize(attributes, parent);
          EPStyle pstyle = (EPStyle)getAncestor(EPStyle.class);
          if ((pstyle != null) && pstyle.isValid()) {
              Hashtable colorhash = pstyle.getColorHash();        
              HSSFColor color = null;
  
              HSSFCellStyle style = pstyle.getStyle();  //oops a little confusing
                                                        //below is the style attribute
                                                        //this is an HSSFCellStyle
                                                        //associated with EPStyle
              style.setBorderTop((short)getStyle());
  
              ColorCode colorCode = getColor();
              if (colorCode != null) {
                  color = (HSSFColor)colorhash.get(colorCode.toString());
              }
              if (color == null) color = new HSSFColor.BLACK();
  
  
              style.setTopBorderColor(color.getIndex());
          }
          
      }        
      
  
      /**
       * @return style as an int from BorderStyle
       *
       * @exception IOException
       */
  
      public int getStyle()
          throws IOException
      {
          if (_style == null)
          {
              _style =
                  NumericConverter.extractInteger(getValue(_style_attribute),
                                                  _style_validator);
          }
          return _style.intValue();
      }
  
      /**
       * @return color (may be null)
       *
       * @exception IOException
       */
  
      public ColorCode getColor()
          throws IOException
      {
          if (!_color_fetched)
          {
              String colorString = getValue(_color_attribute);
  
              if (colorString != null)
              {
                  _color = new ColorCode(colorString);
              }
              _color_fetched = true;
          }
          return _color;
      }
  }   // end public class EPTop
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPUIData.java
  
  Index: EPUIData.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.NumericConverter;
  import org.apache.cocoon.components.elementprocessor.types.NumericResult;
  
  import java.io.IOException;
  
  /**
   * No-op implementation of ElementProcessor to handle the "UIData" tag
   *
   * This element contains no data and has an attribute, SelectedTab,
   * that indicates which sheet is currently selected
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EPUIData
      extends BaseElementProcessor
  {
      private NumericResult       _selected_tab;
      private static final String _selected_tab_attribute = "SelectedTab";
  
      /**
       * constructor
       */
  
      public EPUIData()
      {
          super(null);
          _selected_tab = null;
      }
  
      /**
       * Get the selected tab
       *
       * @return the number of the currently selected sheet (tab)
       *
       * @exception IOException if the value is missing or incorrectly
       *            written
       */
  
      public int getSelectedTab()
          throws IOException
      {
          if (_selected_tab == null)
          {
              _selected_tab = NumericConverter
                  .extractNonNegativeInteger(getValue(_selected_tab_attribute));
          }
          return _selected_tab.intValue();
      }
  }   // end public class EPUIData
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPWorkbook.java
  
  Index: EPWorkbook.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import java.io.IOException;
  
  /**
   * ElementProcessor that handles the "Workbook" tag
   *
   * The Workbook element includes one attribute ("gmr"), which
   * basically gives us the Gnumeric major version. At some point we
   * might care about that, but not today.
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EPWorkbook
      extends BaseElementProcessor
  {
      private Workbook _workbook;
  
      /**
       * constructor
       */
  
      public EPWorkbook()
      {
  
          // the Workbook element has no implied attributes
          super(null);
          _workbook = new Workbook();
      }
  
      /**
       * override of getWorkbook()
       *
       * @return the workbook
       */
  
      protected Workbook getWorkbook()
      {
          return _workbook;
      }
  
      /**
       * override of endProcessing()
       *
       * @exception IOException
       */
  
      public void endProcessing()
          throws IOException
      {
          _workbook.write(getFilesystem());
      }
  }   // end public class EPWorkbook
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EPZoom.java
  
  Index: EPZoom.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.NumericConverter;
  import org.apache.cocoon.components.elementprocessor.types.NumericResult;
  
  import java.io.IOException;
  
  /**
   * No-op implementation of ElementProcessor to handle the "Zoom" tag
   *
   * This element contains the most recently zoom factor
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EPZoom
      extends BaseElementProcessor
  {
      private NumericResult _zoom;
  
      /**
       * constructor
       */
  
      public EPZoom()
      {
          super(null);
          _zoom = null;
      }
  
      /**
       * get the most recently used zoom factor
       *
       * @return zoom factor
       *
       * @exception IOException if the data is malformed
       */
  
      public double getZoom()
          throws IOException
      {
          if (_zoom == null)
          {
              _zoom = NumericConverter.extractDouble(getData());
          }
          return _zoom.doubleValue();
      }
  }   // end public class EPZoom
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EP_Bottom.java
  
  Index: EP_Bottom.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.NumericConverter;
  import org.apache.cocoon.components.elementprocessor.types.NumericResult;
  
  import java.io.IOException;
  
  /**
   * No-op implementation of ElementProcessor to handle the "bottom" tag
   *
   * This element has two attributes: Points and PrefUnit
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EP_Bottom
      extends BaseElementProcessor
  {
      private static final String _points_attribute    = "Points";
      private static final String _pref_unit_attribute = "PrefUnit";
      private NumericResult       _points;
      private NumericResult       _pref_unit;
  
      /**
       * constructor
       */
  
      public EP_Bottom()
      {
          super(null);
          _points    = null;
          _pref_unit = null;
      }
  
      /**
       * @return points
       *
       * @exception IOException
       */
  
      double getPoints()
          throws IOException
      {
          if (_points == null)
          {
              _points =
                  NumericConverter.extractDouble(getValue(_points_attribute));
          }
          return _points.doubleValue();
      }
  
      /**
       * @return print unit (always one of the values in PrintUnits)
       *
       * @exception IOException
       */
  
      int getPrefUnit()
          throws IOException
      {
          if (_pref_unit == null)
          {
              _pref_unit =
                  PrintUnits.extractPrintUnits(getValue(_pref_unit_attribute));
          }
          return _pref_unit.intValue();
      }
  }   // end public class EP_Bottom
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EP_Default_.java
  
  Index: EP_Default_.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  /**
   * No-op implementation of ElementProcessor to handle the any tags we
   * don't recognize
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EP_Default_
      extends BaseElementProcessor
  {
  
      /**
       * constructor
       */
  
      public EP_Default_()
      {
          super(null);
      }
  }   // end public class EP_Default_
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EP_Draft.java
  
  Index: EP_Draft.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.BooleanConverter;
  import org.apache.cocoon.components.elementprocessor.types.BooleanResult;
  
  import java.io.IOException;
  
  /**
   * No-op implementation of ElementProcessor to handle the "draft" tag
   *
   * This element has a single attribute, value, which is boolean.
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EP_Draft
      extends BaseElementProcessor
  {
      private static final String _value_attribute = "value";
      private BooleanResult       _value;
  
      /**
       * constructor
       */
  
      public EP_Draft()
      {
          super(null);
          _value = null;
      }
  
      /**
       * @return value
       *
       * @exception IOException if the value is malformed or missing
       */
  
      public boolean getValue()
          throws IOException
      {
          if (_value == null)
          {
              _value =
                  BooleanConverter.extractBoolean(getValue(_value_attribute));
          }
          return _value.booleanValue();
      }
  }   // end public class EP_Draft
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EP_EvenIfOnlyStyles.java
  
  Index: EP_EvenIfOnlyStyles.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.BooleanConverter;
  import org.apache.cocoon.components.elementprocessor.types.BooleanResult;
  
  import java.io.IOException;
  
  /**
   * No-op implementation of ElementProcessor to handle the
   * "even_if_only_styles" tag
   *
   * This element has a single attribute, value, which is boolean.
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EP_EvenIfOnlyStyles
      extends BaseElementProcessor
  {
      private static final String _value_attribute = "value";
      private BooleanResult       _value;
  
      /**
       * constructor
       */
  
      public EP_EvenIfOnlyStyles()
      {
          super(null);
          _value = null;
      }
  
      /**
       * @return value
       *
       * @exception IOException if the value is malformed or missing
       */
  
      public boolean getValue()
          throws IOException
      {
          if (_value == null)
          {
              _value =
                  BooleanConverter.extractBoolean(getValue(_value_attribute));
          }
          return _value.booleanValue();
      }
  }   // end public class EP_EvenIfOnlyStyles
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EP_Footer.java
  
  Index: EP_Footer.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.NumericConverter;
  import org.apache.cocoon.components.elementprocessor.types.NumericResult;
  
  import java.io.IOException;
  
  /**
   * No-op implementation of ElementProcessor to handle the "footer" tag
   *
   * This element has two attributes: Points and PrefUnit
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EP_Footer
      extends BaseElementProcessor
  {
      private static final String _points_attribute    = "Points";
      private static final String _pref_unit_attribute = "PrefUnit";
      private NumericResult       _points;
      private NumericResult       _pref_unit;
  
      /**
       * constructor
       */
  
      public EP_Footer()
      {
          super(null);
          _points    = null;
          _pref_unit = null;
      }
  
      /**
       * @return points
       *
       * @exception IOException
       */
  
      double getPoints()
          throws IOException
      {
          if (_points == null)
          {
              _points =
                  NumericConverter.extractDouble(getValue(_points_attribute));
          }
          return _points.doubleValue();
      }
  
      /**
       * @return print unit (always one of the values in PrintUnits)
       *
       * @exception IOException
       */
  
      int getPrefUnit()
          throws IOException
      {
          if (_pref_unit == null)
          {
              _pref_unit =
                  PrintUnits.extractPrintUnits(getValue(_pref_unit_attribute));
          }
          return _pref_unit.intValue();
      }
  }   // end public class EP_Footer
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EP_Grid.java
  
  Index: EP_Grid.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.BooleanConverter;
  import org.apache.cocoon.components.elementprocessor.types.BooleanResult;
  
  import java.io.IOException;
  
  /**
   * No-op implementation of ElementProcessor to handle the "grid" tag
   *
   * This element has a single attribute, value, which is boolean.
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EP_Grid
      extends BaseElementProcessor
  {
      private static final String _value_attribute = "value";
      private BooleanResult       _value;
  
      /**
       * constructor
       */
  
      public EP_Grid()
      {
          super(null);
          _value = null;
      }
  
      /**
       * @return value
       *
       * @exception IOException if the value is malformed or missing
       */
  
      public boolean getValue()
          throws IOException
      {
          if (_value == null)
          {
              _value =
                  BooleanConverter.extractBoolean(getValue(_value_attribute));
          }
          return _value.booleanValue();
      }
  }   // end public class EP_Grid
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EP_HCenter.java
  
  Index: EP_HCenter.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.BooleanConverter;
  import org.apache.cocoon.components.elementprocessor.types.BooleanResult;
  
  import java.io.IOException;
  
  /**
   * No-op implementation of ElementProcessor to handle the "hcenter"
   * tag
   *
   * This element has a single attribute, value, which is boolean.
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EP_HCenter
      extends BaseElementProcessor
  {
      private static final String _value_attribute = "value";
      private BooleanResult       _value;
  
      /**
       * constructor
       */
  
      public EP_HCenter()
      {
          super(null);
          _value = null;
      }
  
      /**
       * @return value
       *
       * @exception IOException if the value is malformed or missing
       */
  
      public boolean getValue()
          throws IOException
      {
          if (_value == null)
          {
              _value =
                  BooleanConverter.extractBoolean(getValue(_value_attribute));
          }
          return _value.booleanValue();
      }
  }   // end public class EP_HCenter
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EP_Header.java
  
  Index: EP_Header.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.NumericConverter;
  import org.apache.cocoon.components.elementprocessor.types.NumericResult;
  
  import java.io.IOException;
  
  /**
   * No-op implementation of ElementProcessor to handle the "header" tag
   *
   * This element has two attributes: Points and PrefUnit
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EP_Header
      extends BaseElementProcessor
  {
      private static final String _points_attribute    = "Points";
      private static final String _pref_unit_attribute = "PrefUnit";
      private NumericResult       _points;
      private NumericResult       _pref_unit;
  
      /**
       * constructor
       */
  
      public EP_Header()
      {
          super(null);
          _points    = null;
          _pref_unit = null;
      }
  
      /**
       * @return points
       *
       * @exception IOException
       */
  
      double getPoints()
          throws IOException
      {
          if (_points == null)
          {
              _points =
                  NumericConverter.extractDouble(getValue(_points_attribute));
          }
          return _points.doubleValue();
      }
  
      /**
       * @return print unit (always one of the values in PrintUnits)
       *
       * @exception IOException
       */
  
      int getPrefUnit()
          throws IOException
      {
          if (_pref_unit == null)
          {
              _pref_unit =
                  PrintUnits.extractPrintUnits(getValue(_pref_unit_attribute));
          }
          return _pref_unit.intValue();
      }
  }   // end public class EP_Header
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EP_Left.java
  
  Index: EP_Left.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.NumericConverter;
  import org.apache.cocoon.components.elementprocessor.types.NumericResult;
  
  import java.io.IOException;
  
  /**
   * No-op implementation of ElementProcessor to handle the "left" tag
   *
   * This element has two attributes: Points and PrefUnit
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EP_Left
      extends BaseElementProcessor
  {
      private static final String _points_attribute    = "Points";
      private static final String _pref_unit_attribute = "PrefUnit";
      private NumericResult       _points;
      private NumericResult       _pref_unit;
  
      /**
       * constructor
       */
  
      public EP_Left()
      {
          super(null);
          _points    = null;
          _pref_unit = null;
      }
  
      /**
       * @return points
       *
       * @exception IOException
       */
  
      double getPoints()
          throws IOException
      {
          if (_points == null)
          {
              _points =
                  NumericConverter.extractDouble(getValue(_points_attribute));
          }
          return _points.doubleValue();
      }
  
      /**
       * @return print unit (always one of the values in PrintUnits)
       *
       * @exception IOException
       */
  
      int getPrefUnit()
          throws IOException
      {
          if (_pref_unit == null)
          {
              _pref_unit =
                  PrintUnits.extractPrintUnits(getValue(_pref_unit_attribute));
          }
          return _pref_unit.intValue();
      }
  }   // end public class EP_Left
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EP_Monochrome.java
  
  Index: EP_Monochrome.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.BooleanConverter;
  import org.apache.cocoon.components.elementprocessor.types.BooleanResult;
  
  import java.io.IOException;
  
  /**
   * No-op implementation of ElementProcessor to handle the "monochrome"
   * tag
   *
   * This element has a single attribute, value, which is boolean.
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EP_Monochrome
      extends BaseElementProcessor
  {
      private static final String _value_attribute = "value";
      private BooleanResult       _value;
  
      /**
       * constructor
       */
  
      public EP_Monochrome()
      {
          super(null);
          _value = null;
      }
  
      /**
       * @return value
       *
       * @exception IOException if the value is malformed or missing
       */
  
      public boolean getValue()
          throws IOException
      {
          if (_value == null)
          {
              _value =
                  BooleanConverter.extractBoolean(getValue(_value_attribute));
          }
          return _value.booleanValue();
      }
  }   // end public class EP_Monochrome
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EP_Name.java
  
  Index: EP_Name.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  /**
   * No-op implementation of ElementProcessor to handle the "name" tag
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * This element has no attributes, but it does have character content
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EP_Name
      extends BaseElementProcessor
  {
  
      /**
       * constructor
       */
  
      public EP_Name()
      {
          super(null);
      }
  }   // end public class EP_Name
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EP_Order.java
  
  Index: EP_Order.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.NumericResult;
  
  import java.io.IOException;
  
  /**
   * No-op implementation of ElementProcessor to handle the "order" tag
   *
   * This element has no attributes and contains a string describing the
   * print ordering (right then down, or down then right)
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EP_Order
      extends BaseElementProcessor
  {
      private NumericResult _print_order;
  
      /**
       * constructor
       */
  
      public EP_Order()
      {
          super(null);
          _print_order = null;
      }
  
      /**
       * @return print order (always one of the values in PrintOrder)
       *
       * @exception IOException
       */
  
      int getPrintOrder()
          throws IOException
      {
          if (_print_order == null)
          {
              _print_order = PrintOrder.extractPrintOrder(getData());
          }
          return _print_order.intValue();
      }
  }   // end public class EP_Order
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EP_Orientation.java
  
  Index: EP_Orientation.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.NumericResult;
  
  import java.io.IOException;
  
  /**
   * No-op implementation of ElementProcessor to handle the
   * "orientation" tag
   *
   * This element has no attributes and contains a string describing the
   * print orientation (landscape or portrait)
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EP_Orientation
      extends BaseElementProcessor
  {
      private NumericResult _print_orientation;
  
      /**
       * constructor
       */
  
      public EP_Orientation()
      {
          super(null);
          _print_orientation = null;
      }
  
      /**
       * @return print orientation (always one of the values in
       *         PrintOrientation)
       *
       * @exception IOException
       */
  
      int getPrintOrientation()
          throws IOException
      {
          if (_print_orientation == null)
          {
              _print_orientation =
                  PrintOrientation.extractPrintOrientation(getData());
          }
          return _print_orientation.intValue();
      }
  }   // end public class EP_Orientation
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EP_Paper.java
  
  Index: EP_Paper.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  /**
   * No-op implementation of ElementProcessor to handle the "paper" tag
   *
   * This element contains no other elements and has no attributes. Its
   * content describes the paper to be used (e.g., A4)
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com) */
  
  public class EP_Paper
      extends BaseElementProcessor
  {
  
      /**
       * constructor
       */
  
      public EP_Paper()
      {
          super(null);
      }
  }   // end public class EP_Paper
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EP_RepeatLeft.java
  
  Index: EP_RepeatLeft.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.BooleanConverter;
  import org.apache.cocoon.components.elementprocessor.types.BooleanResult;
  
  import java.io.IOException;
  
  /**
   * No-op implementation of ElementProcessor to handle the
   * "repeat_left" tag
   *
   * This element has a single attribute, value, which is boolean.
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EP_RepeatLeft
      extends BaseElementProcessor
  {
      private static final String _value_attribute = "value";
      private BooleanResult       _value;
  
      /**
       * constructor
       */
  
      public EP_RepeatLeft()
      {
          super(null);
          _value = null;
      }
  
      /**
       * @return value
       *
       * @exception IOException if the value is malformed or missing
       */
  
      public boolean getValue()
          throws IOException
      {
          if (_value == null)
          {
              _value =
                  BooleanConverter.extractBoolean(getValue(_value_attribute));
          }
          return _value.booleanValue();
      }
  }   // end public class EP_RepeatLeft
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EP_RepeatTop.java
  
  Index: EP_RepeatTop.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.BooleanConverter;
  import org.apache.cocoon.components.elementprocessor.types.BooleanResult;
  
  import java.io.IOException;
  
  /**
   * No-op implementation of ElementProcessor to handle the
   * "repeat_top" tag
   *
   * This element has a single attribute, value, which is boolean.
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EP_RepeatTop
      extends BaseElementProcessor
  {
      private static final String _value_attribute = "value";
      private BooleanResult       _value;
  
      /**
       * constructor
       */
  
      public EP_RepeatTop()
      {
          super(null);
          _value = null;
      }
  
      /**
       * @return value
       *
       * @exception IOException if the value is malformed or missing
       */
  
      public boolean getValue()
          throws IOException
      {
          if (_value == null)
          {
              _value =
                  BooleanConverter.extractBoolean(getValue(_value_attribute));
          }
          return _value.booleanValue();
      }
  }   // end public class EP_RepeatTop
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EP_Right.java
  
  Index: EP_Right.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.NumericConverter;
  import org.apache.cocoon.components.elementprocessor.types.NumericResult;
  
  import java.io.IOException;
  
  /**
   * No-op implementation of ElementProcessor to handle the "right" tag
   *
   * This element has two attributes: Points and PrefUnit
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EP_Right
      extends BaseElementProcessor
  {
      private static final String _points_attribute    = "Points";
      private static final String _pref_unit_attribute = "PrefUnit";
      private NumericResult       _points;
      private NumericResult       _pref_unit;
  
      /**
       * constructor
       */
  
      public EP_Right()
      {
          super(null);
          _points    = null;
          _pref_unit = null;
      }
  
      /**
       * @return points
       *
       * @exception IOException
       */
  
      double getPoints()
          throws IOException
      {
          if (_points == null)
          {
              _points =
                  NumericConverter.extractDouble(getValue(_points_attribute));
          }
          return _points.doubleValue();
      }
  
      /**
       * @return print unit (always one of the values in PrintUnits)
       *
       * @exception IOException
       */
  
      int getPrefUnit()
          throws IOException
      {
          if (_pref_unit == null)
          {
              _pref_unit =
                  PrintUnits.extractPrintUnits(getValue(_pref_unit_attribute));
          }
          return _pref_unit.intValue();
      }
  }   // end public class EP_Right
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EP_Titles.java
  
  Index: EP_Titles.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.BooleanConverter;
  import org.apache.cocoon.components.elementprocessor.types.BooleanResult;
  
  import java.io.IOException;
  
  /**
   * No-op implementation of ElementProcessor to handle the "titles" tag
   *
   * This element has a single attribute, value, which is boolean.
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EP_Titles
      extends BaseElementProcessor
  {
      private static final String _value_attribute = "value";
      private BooleanResult       _value;
  
      /**
       * constructor
       */
  
      public EP_Titles()
      {
          super(null);
          _value = null;
      }
  
      /**
       * @return value
       *
       * @exception IOException if the value is malformed or missing
       */
  
      public boolean getValue()
          throws IOException
      {
          if (_value == null)
          {
              _value =
                  BooleanConverter.extractBoolean(getValue(_value_attribute));
          }
          return _value.booleanValue();
      }
  }   // end public class EP_Titles
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EP_Top.java
  
  Index: EP_Top.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.NumericConverter;
  import org.apache.cocoon.components.elementprocessor.types.NumericResult;
  
  import java.io.IOException;
  
  /**
   * No-op implementation of ElementProcessor to handle the "top" tag
   *
   * This element has two attributes: Points and PrefUnit
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EP_Top
      extends BaseElementProcessor
  {
      private static final String _points_attribute    = "Points";
      private static final String _pref_unit_attribute = "PrefUnit";
      private NumericResult       _points;
      private NumericResult       _pref_unit;
  
      /**
       * constructor
       */
  
      public EP_Top()
      {
          super(null);
          _points    = null;
          _pref_unit = null;
      }
  
      /**
       * @return points
       *
       * @exception IOException
       */
  
      double getPoints()
          throws IOException
      {
          if (_points == null)
          {
              _points =
                  NumericConverter.extractDouble(getValue(_points_attribute));
          }
          return _points.doubleValue();
      }
  
      /**
       * @return print unit (always one of the values in PrintUnits)
       *
       * @exception IOException
       */
  
      int getPrefUnit()
          throws IOException
      {
          if (_pref_unit == null)
          {
              _pref_unit =
                  PrintUnits.extractPrintUnits(getValue(_pref_unit_attribute));
          }
          return _pref_unit.intValue();
      }
  }   // end public class EP_Top
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EP_Type.java
  
  Index: EP_Type.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.NumericConverter;
  import org.apache.cocoon.components.elementprocessor.types.NumericResult;
  import org.apache.cocoon.components.elementprocessor.types.Validator;
  
  import java.io.IOException;
  
  /**
   * No-op implementation of ElementProcessor to handle the "type" tag
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * This element has no attributes, but has string content, which is
   * numeric.
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EP_Type
      extends BaseElementProcessor
  {
      private NumericResult          _type;
      private static final Validator _validator = new Validator()
      {
          public IOException validate(final Number number)
          {
              return GTKTypes.isValid(number.intValue()) ? null
                                                         : new IOException(
                                                             "\"" + number
                                                             + "\" is not a legal value");
          }
      };
  
      /**
       * constructor
       */
  
      public EP_Type()
      {
          super(null);
          _type = null;
      }
  
      /**
       * @return the type
       *
       * @exception IOException if the type is not numeric
       */
  
      int getType()
          throws IOException
      {
          if (_type == null)
          {
              _type = NumericConverter.extractInteger(getData(), _validator);
          }
          return _type.intValue();
      }
  }   // end public class EP_Type
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EP_VCenter.java
  
  Index: EP_VCenter.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.BooleanConverter;
  import org.apache.cocoon.components.elementprocessor.types.BooleanResult;
  
  import java.io.IOException;
  
  /**
   * No-op implementation of ElementProcessor to handle the "vcenter"
   * tag
   *
   * This element has a single attribute, value, which is boolean.
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EP_VCenter
      extends BaseElementProcessor
  {
      private static final String _value_attribute = "value";
      private BooleanResult       _value;
  
      /**
       * constructor
       */
  
      public EP_VCenter()
      {
          super(null);
          _value = null;
      }
  
      /**
       * @return value
       *
       * @exception IOException if the value is malformed or missing
       */
  
      public boolean getValue()
          throws IOException
      {
          if (_value == null)
          {
              _value =
                  BooleanConverter.extractBoolean(getValue(_value_attribute));
          }
          return _value.booleanValue();
      }
  }   // end public class EP_VCenter
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EP_ValString.java
  
  Index: EP_ValString.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  /**
   * No-op implementation of ElementProcessor to handle the "val-string"
   * tag
   *
   * This element has no attributes and contains a string
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EP_ValString
      extends BaseElementProcessor
  {
  
      /**
       * constructor
       */
  
      public EP_ValString()
      {
          super(null);
      }
  }   // end public class EP_ValString
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/EP_Value.java
  
  Index: EP_Value.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  /**
   * No-op implementation of ElementProcessor to handle the "value" tag
   *
   * This element is not used in HSSFSerializer 1.0
   *
   * This element has no attributes, but has string content
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class EP_Value
      extends BaseElementProcessor
  {
  
      /**
       * constructor
       */
  
      public EP_Value()
      {
          super(null);
      }
  }   // end public class EP_Value
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/GTKTypes.java
  
  Index: GTKTypes.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  /**
   * GTK type codes
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class GTKTypes
  {
      public static final int GTK_TYPE_INVALID    = 0;
      public static final int GTK_TYPE_NONE       = 1;
      public static final int GTK_TYPE_CHAR       = 2;
      public static final int GTK_TYPE_UCHAR      = 3;
      public static final int GTK_TYPE_BOOL       = 4;
      public static final int GTK_TYPE_INT        = 5;
      public static final int GTK_TYPE_UINT       = 6;
      public static final int GTK_TYPE_LONG       = 7;
      public static final int GTK_TYPE_ULONG      = 8;
      public static final int GTK_TYPE_FLOAT      = 9;
      public static final int GTK_TYPE_DOUBLE     = 10;
      public static final int GTK_TYPE_STRING     = 11;
      public static final int GTK_TYPE_ENUM       = 12;
      public static final int GTK_TYPE_FLAGS      = 13;
      public static final int GTK_TYPE_BOXED      = 14;
      public static final int GTK_TYPE_POINTER    = 15;
      public static final int GTK_TYPE_SIGNAL     = 16;
      public static final int GTK_TYPE_ARGS       = 17;
      public static final int GTK_TYPE_CALLBACK   = 18;
      public static final int GTK_TYPE_C_CALLBACK = 19;
      public static final int GTK_TYPE_FOREIGN    = 20;
      public static final int GTK_TYPE_OBJECT     = 21;
  
      private GTKTypes()
      {
      }
  
      /**
       * Is this a valid GTK value?
       *
       * @param val value to be checked
       *
       * @return true if valid, false otherwise
       */
  
      public static boolean isValid(int val)
      {
          return ((val >= GTK_TYPE_INVALID) && (val <= GTK_TYPE_OBJECT));
      }
  }   // end public class GTKTypes
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/HorizontalAlignment.java
  
  Index: HorizontalAlignment.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.NumericConverter;
  import org.apache.cocoon.components.elementprocessor.types.Validator;
  
  import java.io.IOException;
  
  /**
   * Horizontal alignment is written as an integer, and each bit in the
   * integer specifies a particular boolean attribute. This class deals
   * with all that information in an easily digested form.
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class HorizontalAlignment
  {
      private int                    _alignment;
      private static final int       _general                 = 1;
      private static final int       _left                    = 2;
      private static final int       _right                   = 4;
      private static final int       _center                  = 8;
      private static final int       _fill                    = 16;
      private static final int       _justify                 = 32;
      private static final int       _center_across_selection = 64;
      private static final Validator _validator               = new Validator()
      {
          public IOException validate(final Number number)
          {
              int value = number.intValue();
  
              return ((value >= 0) && (value <= 127)) ? null
                                                      : new IOException(
                                                          "\"" + number
                                                          + "\" is out of range");
          }
      };
  
      /**
       * Create an HorizontalAlignment object
       *
       * @param value the string containing the horizontal alignment
       *              data
       *
       * @exception IOException if the data is malformed
       */
  
      public HorizontalAlignment(final String value)
          throws IOException
      {
          _alignment = NumericConverter.extractInteger(value,
                  _validator).intValue();
      }
  
      /**
       * @return true if general bit is set
       */
  
      public boolean isGeneral()
      {
          return (_alignment & _general) == _general;
      }
  
      /**
       * @return true if left bit is set
       */
  
      public boolean isLeft()
      {
          return (_alignment & _left) == _left;
      }
  
      /**
       * @return true if right bit is set
       */
  
      public boolean isRight()
      {
          return (_alignment & _right) == _right;
      }
  
      /**
       * @return true if center bit is set
       */
  
      public boolean isCenter()
      {
          return (_alignment & _center) == _center;
      }
  
      /**
       * @return true if fill bit is set
       */
  
      public boolean isFill()
      {
          return (_alignment & _fill) == _fill;
      }
  
      /**
       * @return true if justify bit is set
       */
  
      public boolean isJustify()
      {
          return (_alignment & _justify) == _justify;
      }
  
      /**
       * @return true if center across selection bit is set
       */
  
      public boolean isCenterAcrossSelection()
      {
          return (_alignment & _center_across_selection)
                 == _center_across_selection;
      }
      
      short getCode() {
          return (short)_alignment;
      }
  }   // end public class HorizontalAlignment
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/ObjectFill.java
  
  Index: ObjectFill.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  /**
   * ObjectFill codes
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class ObjectFill
  {
      public static final int OBJECT_FILL_LINE  = 1;
      public static final int OBJECT_FILL_ARROW = 2;
      public static final int OBJECT_FILL_BOX   = 101;
      public static final int OBJECT_FILL_OVAL  = 102;
  
      private ObjectFill()
      {
      }
  
      /**
       * Is this a valid direction?
       *
       * @param val value to be checked
       *
       * @return true if valid, false otherwise
       */
  
      public static boolean isValid(final int val)
      {
          switch (val)
          {
  
              case OBJECT_FILL_LINE :
              case OBJECT_FILL_ARROW :
              case OBJECT_FILL_BOX :
              case OBJECT_FILL_OVAL :
                  return true;
  
              default :
                  return false;
          }
      }
  }   // end public class ObjectFill
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/Offsets.java
  
  Index: Offsets.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.NumericConverter;
  
  import java.io.IOException;
  
  /**
   * Offsets. This particular object is represented in gnumeric's XML as
   * four doubles, space separated. Presumably, each represents an
   * offset in a particular direction -- top, bottom, left, right -- but
   * what the reference is for each offset is not known, nor is it known
   * which one is top, bottom, left, or right, or even whether that's
   * the correct interpretation of the numbers. This is an area of the
   * gnumeric XML that is not terribly well documented even in their
   * code, and I don't think the features that use offsets are terribly
   * mature yet.
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class Offsets
  {
      private static final int _component_count = 4;
      private double[]         _components      =
          new double[ _component_count ];
  
      /**
       * construct the Offsets object
       *
       * @param value the string containing the offset values
       *
       * @exception IOException if the string is badly formed
       */
  
      public Offsets(final String value)
          throws IOException
      {
          if (value == null)
          {
              throw new IOException("cannot process a null offsets string");
          }
          char[]   input   = value.trim().toCharArray();
          String[] offsets = new String[ _component_count ];
          int      index   = 0;
  
          for (int j = 0; j < _component_count; j++)
          {
              while ((index < input.length)
                      && (Character.isWhitespace(input[ index ])))
              {
                  ++index;
              }
              if (index == input.length)
              {
                  throw new IOException("insufficient offsets in string");
              }
              int tailIndex = index;
  
              while ((tailIndex < input.length)
                      && (!Character.isWhitespace(input[ tailIndex ])))
              {
                  ++tailIndex;
              }
              _components[ j ] =
                  NumericConverter.extractDouble(new String(input, index,
                      tailIndex - index)).doubleValue();
              index            = tailIndex;
          }
          if (new String(input, index, input.length - index).trim().length()
                  != 0)
          {
              throw new IOException("Too much data in string for "
                                    + _component_count + " offsets");
          }
      }
  
      /**
       * @return components
       */
  
      public double [] getComponents()
      {
          return _components;
      }
  }   // end public class Offsets
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/PrintOrder.java
  
  Index: PrintOrder.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.NumericResult;
  
  import java.io.IOException;
  
  /**
   * Print order -- encapsulation of the strings representing the print
   * ordering, and a simpler way to deal with them.
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class PrintOrder
  {
      private static final String        _right_then_down            =
          "r_then_d";
      private static final String        _down_then_right            =
          "d_then_r";
      public static final int            PRINT_ORDER_RIGHT_THEN_DOWN = 0;
      public static final int            PRINT_ORDER_DOWN_THEN_RIGHT = 1;
      private static final NumericResult _null_result                =
          new NumericResult(new IOException("print order cannot be null"));
      private static final NumericResult _right_then_down_result     =
          new NumericResult(new Integer(PRINT_ORDER_RIGHT_THEN_DOWN));
      private static final NumericResult _down_then_right_result     =
          new NumericResult(new Integer(PRINT_ORDER_DOWN_THEN_RIGHT));
  
      private PrintOrder()
      {
      }
  
      /**
       * convert a string into a NumericResult
       *
       * @param value the string describing the print order
       *
       * @return a NumericResult containing either one of the public
       *         enumeration values, or an appropriate IOException
       */
  
      public static NumericResult extractPrintOrder(final String value)
      {
          NumericResult rval  = null;
          String        input = (value == null) ? null
                                                : value.trim();
  
          if (input == null)
          {
              rval = _null_result;
          }
          else if (input.equalsIgnoreCase(_right_then_down))
          {
              rval = _right_then_down_result;
          }
          else if (input.equalsIgnoreCase(_down_then_right))
          {
              rval = _down_then_right_result;
          }
          else
          {
              rval = new NumericResult(
                  new IOException(
                      "\"" + input + "\" is not a valid print order"));
          }
          return rval;
      }
  }   // end public class PrintOrder
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/PrintOrientation.java
  
  Index: PrintOrientation.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.NumericResult;
  
  import java.io.IOException;
  
  /**
   * Print orientation -- encapsulation of the strings representing the
   * print orientation, and a simpler way to deal with them.
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class PrintOrientation
  {
      private static final String        _landscape                  =
          "landscape";
      private static final String        _portrait                   =
          "portrait";
      public static final int            PRINT_ORIENTATION_LANDSCAPE = 0;
      public static final int            PRINT_ORIENTATION_PORTRAIT  = 1;
      private static final NumericResult _null_result                =
          new NumericResult(
              new IOException("print orientation cannot be null"));
      private static final NumericResult _landscape_result           =
          new NumericResult(new Integer(PRINT_ORIENTATION_LANDSCAPE));
      private static final NumericResult _portrait_result            =
          new NumericResult(new Integer(PRINT_ORIENTATION_PORTRAIT));
  
      private PrintOrientation()
      {
      }
  
      /**
       * convert a string into a NumericResult
       *
       * @param value the string describing the print orientation
       *
       * @return a NumericResult containing either one of the public
       *         enumeration values, or an appropriate IOException
       */
  
      public static NumericResult extractPrintOrientation(final String value)
      {
          NumericResult rval  = null;
          String        input = (value == null) ? null
                                                : value.trim();
  
          if (input == null)
          {
              rval = _null_result;
          }
          else if (input.equalsIgnoreCase(_landscape))
          {
              rval = _landscape_result;
          }
          else if (input.equalsIgnoreCase(_portrait))
          {
              rval = _portrait_result;
          }
          else
          {
              rval = new NumericResult(
                  new IOException(
                      "\"" + input + "\" is not a valid print orientation"));
          }
          return rval;
      }
  }   // end public class PrintOrientation
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/PrintUnits.java
  
  Index: PrintUnits.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.NumericResult;
  
  import java.io.IOException;
  
  /**
   * Print units -- encapsulation of the strings representing them, and
   * a simpler way to deal with them.GTK type codes
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class PrintUnits
  {
      private static final String        _cm                = "cm";
      private static final String        _in                = "in";
      private static final String        _mm                = "mm";
      private static final String        _points            = "points";
      public static final int            PRINT_UNITS_CM     = 0;
      public static final int            PRINT_UNITS_IN     = 1;
      public static final int            PRINT_UNITS_MM     = 2;
      public static final int            PRINT_UNITS_POINTS = 3;
      private static final NumericResult _null_result       =
          new NumericResult(new IOException("print units cannot be null"));
      private static final NumericResult _cm_result         =
          new NumericResult(new Integer(PRINT_UNITS_CM));
      private static final NumericResult _in_result         =
          new NumericResult(new Integer(PRINT_UNITS_IN));
      private static final NumericResult _mm_result         =
          new NumericResult(new Integer(PRINT_UNITS_MM));
      private static final NumericResult _points_result     =
          new NumericResult(new Integer(PRINT_UNITS_POINTS));
  
      private PrintUnits()
      {
      }
  
      /**
       * convert a string into a NumericResult
       *
       * @param value the string describing the print units
       *
       * @return a NumericResult containing either one of the public
       *         enumeration values, or an appropriate IOException
       */
  
      public static NumericResult extractPrintUnits(final String value)
      {
          NumericResult rval  = null;
          String        input = (value == null) ? null
                                                : value.trim();
  
          if (input == null)
          {
              rval = _null_result;
          }
          else if (input.equalsIgnoreCase(_cm))
          {
              rval = _cm_result;
          }
          else if (input.equalsIgnoreCase(_in))
          {
              rval = _in_result;
          }
          else if (input.equalsIgnoreCase(_mm))
          {
              rval = _mm_result;
          }
          else if (input.equalsIgnoreCase(_points))
          {
              rval = _points_result;
          }
          else
          {
              rval = new NumericResult(
                  new IOException(
                      "\"" + input + "\" is not a valid print unit"));
          }
          return rval;
      }
  }   // end public class PrintUnits
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/Row.java
  
  Index: Row.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.poi.hssf.usermodel.HSSFRow;
  
  import java.io.IOException;
  
  /**
   * internal representation of a Row
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  // package scope
  class Row
  {
      private HSSFRow _row;
      private Sheet _sheet;
  
      /**
       * Constructor Row
       *
       * @param row
       */
  
      Row(final HSSFRow row, final Sheet sheet)
      {
          _row = row;
          _sheet = sheet;
      }
  
      /**
       * set a row's height
       *
       * @param points the height, in points
       *
       * @exception IOException if any arguments are illegal
       */
  
      void setHeight(final double points)
          throws IOException
      {
          if (!isValid(points))
          {
              throw new IOException("points " + points + " is out of range");
          }
          _row.setHeight(( short ) (points * 20));
      }
  
      /**
       * get the row height of a specified row
       *
       * @return row height in 1/20 of a point
       */
  
      short getHeight()
      {
          return _row.getHeight();
      }
  
      /**
       * create a cell in a specific column, with a specific type
       *
       * @param column the column number for the cell
       * @param cellType the cell type, being an enum from the CellType
       *                 class
       *
       * @return a new Cell object
       *
       * @exception IOException
       */
  
      Cell createCell(final int column, final int cellType)
          throws IOException
      {
          if ((column < 0) || (column > Short.MAX_VALUE))
          {
              throw new IOException("Illegal column value: " + column);
          }
          Cell retval =  new Cell(_row
              .createCell(( short ) column, CellType
                  .convertCellType(cellType)), cellType);
          retval.setStyle(_sheet.getCellStyleForRegion(_row.getRowNum(), (short)column));
          return retval;
      }
  
      private boolean isValid(double points)
      {
          return ((points >= 0)
                  && (points <= ((( double ) Short.MAX_VALUE) / 20)));
      }
  }   // end package scope class Row
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/Sheet.java
  
  Index: Sheet.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.poi.hssf.util.Region;
  
  import org.apache.poi.hssf.usermodel.HSSFSheet;
  import org.apache.poi.hssf.usermodel.HSSFRow;
  import org.apache.poi.hssf.usermodel.HSSFCell;
  import org.apache.poi.hssf.usermodel.HSSFCellStyle;
  import org.apache.poi.hssf.usermodel.HSSFFont;
  import org.apache.poi.hssf.util.HSSFColor;
  
  import java.io.IOException;
  
  import java.util.ArrayList;
  import java.util.HashMap;
  import java.util.Iterator;
  import java.util.List;
  import java.util.Map;
  
  import org.apache.avalon.framework.logger.AbstractLogEnabled;
  
  /**
   * internal representation of a Sheet
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   * @author Andrew C. Oliver (acoliver2@users.sourceforge.net)
   */
  
  // package scope
  class Sheet extends AbstractLogEnabled
  {
      private HSSFSheet _sheet;
      private String    _name;
      private int       _physical_index;
      private Workbook  _workbook;
  
      // keys are Shorts (row numbers), values are Row instances
      private Map       _rows;
  
      private Map      regions;
  
  
      //optimization constant
      private final static int ROWS_CAPACITY = 200;
  
      //optimization constant
      private final static int REGION_CAPACITY = 20;
  
      private final static int DEBUG=0;
  
      /**
       * Constructor Sheet
       *
       * @param workbook
       */
  
      Sheet(final Workbook workbook)
      {
          _workbook       = workbook;
          _name           = _workbook.getNextName();
          _sheet          = _workbook.createSheet(_name);
          _physical_index = _workbook.getPhysicalIndex(_name);
          _rows           = new HashMap(ROWS_CAPACITY);
          regions         = new HashMap(REGION_CAPACITY);
      }
  
      /**
       * renameSheet
       *
       * @param new_name
       */
  
      void renameSheet(final String new_name)
      {
          if (!_name.equals(new_name))
          {
              _workbook.renameSheet(_physical_index, new_name);
              _name = new_name;
          }
      }
  
      /**
       * set a column's width
       *
       * @param number the column number
       * @param set the width in characters
       * @param points
       *
       * @exception IOException if any arguments are illegal
       */
  
      void setColumnWidth(final int number, final double points)
          throws IOException
      {
          if ((number < 0) || (number > Short.MAX_VALUE))
          {
              throw new IOException("column number " + number
                                    + " is too large");
          }
          if (!isValidColumnPoints(points))
          {
              throw new IOException("points " + points
                                    + " is out of range");
          }
          _sheet.setColumnWidth(( short ) number,
                                ( short ) ((points * 48) + .5));
      }
  
      /**
       * get the column width of a specified column
       *
       * @param number the column number
       *
       * @return column width in characters
       */
  
      short getColumnWidth(short number)
      {
          return _sheet.getColumnWidth(number);
      }
  
      /**
       * set default column width
       *
       * @param width width, in points
       *
       * @exception IOException
       */
  
      void setDefaultColumnWidth(double width)
          throws IOException
      {
          if ((width < 0) || (width >= (4.8 * (0.5 + Short.MAX_VALUE))))
          {
              throw new IOException("Invalid width (" + width + ")");
          }   // 12 is being used as a "guessed" points for the font
          _sheet.setDefaultColumnWidth(( short ) ((width/4.8) + 0.5));
      }
  
      /**
       * @return default column width (in 1/256ths of a character width)
       */
  
      short getDefaultColumnWidth()
      {
          return _sheet.getDefaultColumnWidth();
      }
  
      /**
       * set default row height
       *
       * @param height height, in points
       *
       * @exception IOException
       */
  
      void setDefaultRowHeight(double height)
          throws IOException
      {
          if (!isValidPoints(height))
          {
              throw new IOException("Invalid height (" + height + ")");
          }
          _sheet.setDefaultRowHeight(( short ) ((height * 20) + .5));
      }
  
      /**
       * @return default row height
       */
  
      short getDefaultRowHeight()
      {
          return _sheet.getDefaultRowHeight();
      }
  
      /**
       * @return name
       */
  
      String getName()
      {
          return _name;
      }
  
      /**
       * @return index
       */
  
      int getIndex()
      {
          return _physical_index;
      }
  
      /**
       * get a specified row
       *
       * @param rowNo the row number
       *
       * @return a Row object
       *
       * @exception IOException if rowNo is out of range
       */
  
      Row getRow(int rowNo)
          throws IOException
      {
          if (rowNo < 0)
          {
              throw new IOException("Illegal row number: " + rowNo);
          }
          Short  key  = new Short((short)rowNo);
          Object o    = _rows.get(key);
          Row    rval = null;
  
          if (o == null)
          {
              rval = createRow((int)rowNo);
              _rows.put(key, rval);
          }
          else
          {
              rval = ( Row ) o;
          }
          return rval;
      }
  
  /*    void addStyleRegion(Region region,
                       short halign,
                       short valign,
                       boolean wrap,
                       boolean locked,
                       boolean hidden,
                       short fontcolor,
                       short fontheight,
                       String fontname) {
  
          HSSFCellStyle style = _workbook.createStyle(halign,
                                                      valign,
                                                      wrap,
                                                      locked,
                                                      hidden,
                                                      fontcolor,
                                                      fontheight,
                                                      fontname);
          regions.put(region, style);
  
  
      }*/
  
      HSSFCellStyle addStyleRegion(Region region) {
  
          HSSFCellStyle style = _workbook.createStyle();
          /*
          getLogger().debug("region = "+ region.getRowFrom() + ","+region.getColumnFrom()+
              ","+region.getRowTo()+","+region.getColumnTo());
              */
          regions.put(region, style);
  
          return style;
      }
  
      /**
       *  returns the HSSFCellStyle for a cell if defined by region
       *  if there is not a definition it returns null.  If you don't
       *  expect that then your code dies a horrible death.
       *  @return HSSFCellStyle
       */
       HSSFCellStyle getCellStyleForRegion(int row, short col) {
          Iterator iregions = regions.keySet().iterator();
          while (iregions.hasNext()) {
              Region region = ((Region) iregions.next());
  //            if (col == 1)
  //                getLogger().debug("breakpoint support");
              if ( region.contains(row, col) ) {
                  //getLogger().debug("Returning style for " + row +"," + col);
                  return (HSSFCellStyle) regions.get( region );
              }
          }
          //getLogger().debug("returning null for "+row+","+col);
          return null;
      }
  
  
      private Row createRow(final int rowNo)
      {
          return new Row(_sheet.createRow((int)rowNo), this);
      }
  
      private boolean isValidPoints(double points)
      {
          return ((points >= 0) && (points <= ((Short.MAX_VALUE + 0.5) / 20)));
      }
  
      private boolean isValidColumnPoints(double points)
      {
          return ((points >= 0) && (points <= ((Short.MAX_VALUE + 0.5) / 48)));
      }
  
      private boolean isValidCharacters(double characters)
      {
          return ((characters >= 0)
                  && (characters <= ((Short.MAX_VALUE + 0.5) / 256)));
  
      }
  
      /**
       * assigns blank cells to regions where no cell is currently allocated.
       * Meaning if there is a sheet with a cell defined at 1,1 and a style region
       * from 0,0-1,1 then cells 0,0;0,1;1,0 will be defined as blank cells pointing
       * to the style defined by the style region.  If there is not a defined cell
       * and no styleregion encompases the area, then no cell is defined.
       */
      public void assignBlanksToRegions () {
          Iterator iregions = regions.keySet().iterator();
  
  
  
          while (iregions.hasNext()) {
              Region region = ((Region) iregions.next());
              //getLogger().debug("fixing region "+region.getRowFrom()+","+region.getColumnFrom()+"-"+
              //          region.getRowTo()+","+region.getColumnTo());
  
              for (int rownum = region.getRowFrom(); rownum < region.getRowTo() +1; rownum++) {
  
                  HSSFRow row  = _sheet.getRow(rownum);
  
                  for (short colnum = region.getColumnFrom(); colnum < region.getColumnTo()+1; colnum ++) {
  
                      HSSFCellStyle style = (HSSFCellStyle)regions.get(region);
  
  
                      if (!isBlank(style)) { //don't waste time with huge blocks of blankly
                                             //styled cells
  
                          if (row == null) {
                              if (rownum > Short.MAX_VALUE)
                              {  rownum = Short.MAX_VALUE; }
  
                              row = _sheet.createRow((int)rownum);
                          }
  
                          HSSFCell cell = row.getCell(colnum);
  
                          if (cell == null) {
                              //getLogger().debug("creating blank cell at "+rownum + "," +colnum);
                              cell = row.createCell(colnum,HSSFCell.CELL_TYPE_BLANK);
                              cell.setCellStyle((HSSFCellStyle)regions.get(region));
                          }
                      }
  
                  }
              }
          }
      }
  
  
      private boolean isBlank(HSSFCellStyle style) {
  
          HSSFFont font = null;
          if (style.getFontIndex() >0)
              font = ((HSSFFont)_workbook.getWorkbook().getFontAt(style.getFontIndex()));
  
          if (style.getBorderBottom() == 0 &&
              style.getBorderTop() == 0 &&
              style.getBorderRight() == 0 &&
              style.getBorderLeft() == 0 &&
              style.getFillBackgroundColor() == HSSFColor.WHITE.index &&
              style.getFillPattern() == 0 &&
              (style.getFontIndex() == 0 ||
                 ((font.getFontName().equals("Arial") ||
                  font.getFontName().equals("Helvetica")) &&
                  font.getFontHeightInPoints() > 8 && font.getFontHeightInPoints() < 12)
               )) return true;
  
          return false;
      }
  
  }   // end package scope class Sheet
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/StyleOrientation.java
  
  Index: StyleOrientation.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.NumericConverter;
  import org.apache.cocoon.components.elementprocessor.types.Validator;
  
  import java.io.IOException;
  
  /**
   * Style orientation is written as an integer, and each bit in the
   * integer specifies a particular boolean attribute. This class deals
   * with all that information in an easily digested form.
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class StyleOrientation
  {
      private int                    _alignment;
      private static final int       _horiz           = 1;
      private static final int       _vert_horiz_text = 2;
      private static final int       _vert_vert_text  = 4;
      private static final int       _vert_vert_text2 = 8;
      private static final Validator _validator       = new Validator()
      {
          public IOException validate(final Number number)
          {
              int value = number.intValue();
  
              return ((value >= 0) && (value <= 15)) ? null
                                                     : new IOException(
                                                         "\"" + number
                                                         + "\" is out of range");
          }
      };
  
      /**
       * Create a StyleOrientation object
       *
       * @param value the string containing the style orientation data
       *
       * @exception IOException if the data is malformed
       */
  
      public StyleOrientation(final String value)
          throws IOException
      {
          _alignment = NumericConverter.extractInteger(value,
                  _validator).intValue();
      }
  
      /**
       * @return true if horiz bit is set
       */
  
      public boolean isHoriz()
      {
          return (_alignment & _horiz) == _horiz;
      }
  
      /**
       * @return true if vert horiz text bit is set
       */
  
      public boolean isVertHorizText()
      {
          return (_alignment & _vert_horiz_text) == _vert_horiz_text;
      }
  
      /**
       * @return true if vert vert text bit is set
       */
  
      public boolean isVertVertText()
      {
          return (_alignment & _vert_vert_text) == _vert_vert_text;
      }
  
      /**
       * @return true if vert vert text2 bit is set
       */
  
      public boolean isVertVertText2()
      {
          return (_alignment & _vert_vert_text2) == _vert_vert_text2;
      }
  }   // end public class StyleOrientation
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/StyleShading.java
  
  Index: StyleShading.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  /**
   * Style shading codes
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class StyleShading
  {
      public static final int STYLE_SHADING_NONE                         = 0;
      public static final int STYLE_SHADING_SOLID                        = 1;
      public static final int STYLE_SHADING_PERCENT75                    = 2;
      public static final int STYLE_SHADING_PERCENT50                    = 3;
      public static final int STYLE_SHADING_PERCENT25                    = 4;
      public static final int STYLE_SHADING_PERCENT12PT5                 = 5;
      public static final int STYLE_SHADING_PERCENT6PT25                 = 6;
      public static final int STYLE_SHADING_HORIZONTAL_STRIPE            = 7;
      public static final int STYLE_SHADING_VERTICAL_STRIPE              = 8;
      public static final int STYLE_SHADING_REVERSE_DIAGONAL_STRIPE      = 9;
      public static final int STYLE_SHADING_DIAGONAL_STRIPE              = 10;
      public static final int STYLE_SHADING_DIAGONAL_CROSSHATCH          = 11;
      public static final int STYLE_SHADING_THICK_DIAGONAL_CROSSHATCH    = 12;
      public static final int STYLE_SHADING_THIN_HORIZONTAL_STRIPE       = 13;
      public static final int STYLE_SHADING_THIN_VERTICAL_STRIPE         = 14;
      public static final int STYLE_SHADING_THIN_REVERSE_DIAGONAL_STRIPE = 15;
      public static final int STYLE_SHADING_THIN_DIAGONAL_STRIPE         = 16;
      public static final int STYLE_SHADING_THIN_CROSSHATCH              = 17;
      public static final int STYLE_SHADING_THIN_DIAGONAL_CROSSHATCH     = 18;
      public static final int STYLE_SHADING_APPLIX_SMALL_CIRCLE          = 19;
      public static final int STYLE_SHADING_APPLIX_SEMICIRCLE            = 20;
      public static final int STYLE_SHADING_APPLIX_SMALL_THATCH          = 21;
      public static final int STYLE_SHADING_APPLIX_ROUND_THATCH          = 22;
      public static final int STYLE_SHADING_APPLIX_BRICK                 = 23;
      public static final int STYLE_SHADING_PERCENT100                   = 24;
      public static final int STYLE_SHADING_PERCENT87PT5                 = 25;
  
      private StyleShading()
      {
      }
  
      /**
       * Is this a valid style shading?
       *
       * @param val value to be checked
       *
       * @return true if valid, false otherwise
       */
  
      public static boolean isValid(int val)
      {
          return ((val >= STYLE_SHADING_NONE)
                  && (val <= STYLE_SHADING_PERCENT87PT5));
      }
  }   // end public class StyleShading
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/UnderlineType.java
  
  Index: UnderlineType.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  /**
   * Underline codes
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class UnderlineType
  {
      public static final int UNDERLINE_NONE   = 0;
      public static final int UNDERLINE_SINGLE = 1;
      public static final int UNDERLINE_DOUBLE = 2;
  
      private UnderlineType()
      {
      }
  
      /**
       * Is this a valid underline shading?
       *
       * @param val value to be checked
       *
       * @return true if valid, false otherwise
       */
  
      public static boolean isValid(int val)
      {
          return ((val >= UNDERLINE_NONE) && (val <= UNDERLINE_DOUBLE));
      }
  }   // end public class UnderlineType
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/VerticalAlignment.java
  
  Index: VerticalAlignment.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.cocoon.components.elementprocessor.types.NumericConverter;
  import org.apache.cocoon.components.elementprocessor.types.Validator;
  
  import java.io.IOException;
  
  /**
   * Vertical alignment is written as an integer, and each bit in the
   * integer specifies a particular boolean attribute. This class deals
   * with all that information in an easily digested form.
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   */
  
  public class VerticalAlignment
  {
      private int                    _alignment;
      private static final int       _top       = 1;
      private static final int       _bottom    = 2;
      private static final int       _center    = 4;
      private static final int       _justify   = 8;
      private static final Validator _validator = new Validator()
      {
          public IOException validate(final Number number)
          {
              int value = number.intValue();
  
              return ((value >= 0) && (value <= 15)) ? null
                                                     : new IOException(
                                                         "\"" + number
                                                         + "\" is out of range");
          }
      };
  
      /**
       * Create a VerticalAlignment object
       *
       * @param value the string containing the vertical alignment data
       *
       * @exception IOException if the data is malformed
       */
  
      public VerticalAlignment(final String value)
          throws IOException
      {
          _alignment = NumericConverter.extractInteger(value,
                  _validator).intValue();
      }
  
      /**
       * @return true if top bit is set
       */
  
      public boolean isTop()
      {
          return (_alignment & _top) == _top;
      }
  
      /**
       * @return true if bottom bit is set
       */
  
      public boolean isBottom()
      {
          return (_alignment & _bottom) == _bottom;
      }
  
      /**
       * @return true if center bit is set
       */
  
      public boolean isCenter()
      {
          return (_alignment & _center) == _center;
      }
  
      /**
       * @return true if justify bit is set
       */
  
      public boolean isJustify()
      {
          return (_alignment & _justify) == _justify;
      }
      
      public short getCode() {
          return (short)_alignment;
      }
  }   // end public class VerticalAlignment
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/components/elementprocessor/impl/poi/hssf/elements/Workbook.java
  
  Index: Workbook.java
  ===================================================================
  
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
  
  
  
  import org.apache.poi.hssf.usermodel.HSSFSheet;
  import org.apache.poi.hssf.usermodel.HSSFWorkbook;
  import org.apache.poi.hssf.usermodel.HSSFCell;
  import org.apache.poi.hssf.usermodel.HSSFCellStyle;
  import org.apache.poi.hssf.usermodel.HSSFFont;
  
  import org.apache.poi.poifs.filesystem.POIFSFileSystem;
  
  import java.io.ByteArrayInputStream;
  import java.io.IOException;
  
  /**
   * internal representation of a Workbook
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   * @author Andrew C. Oliver (acoliver2@users.sourceforge.net)
   */
  
  // package scope
  class Workbook
  {
      private HSSFWorkbook _workbook;
      private int          _sheet_index;
  
      /**
       * Constructor Workbook
       */
  
      Workbook()
      {
          _workbook    = new HSSFWorkbook();
          _sheet_index = 0;
      }
  
      /**
       * Method getNextName
       *
       * @return next name for a new sheet
       */
  
      String getNextName()
      {
          return "Sheet" + _sheet_index++;
      }
  
      /**
       * Method createSheet
       *
       * @param name name of the sheet
       *
       * @return newly created sheet
       */
  
      HSSFSheet createSheet(final String name)
      {
          return _workbook.createSheet(name);
      }
  
      /**
       * Method getPhysicalIndex
       *
       * @param name name of the sheet
       *
       * @return the sheet's physical index
       */
  
      int getPhysicalIndex(final String name)
      {
          return _workbook.getSheetIndex(name);
      }
  
      /**
       * Method renameSheet
       *
       * @param index the sheet's physical index
       * @param name the new name for the sheet
       */
  
      void renameSheet(final int index, final String name)
      {
          _workbook.setSheetName(index, name);
      }
  
      
      /**
       * create a cell style in the underlying HSSF model and return the reference
       * this should match reasonably close to what is in the StyleRegion element
       * in the gnumeric ss.
       */
      HSSFCellStyle createStyle() {
          
          HSSFCellStyle style = _workbook.createCellStyle();
         
          return style;
      }
      
      /**
       * create a font in the underlying HSSF model and return the reference
       */
      HSSFFont createFont() {
          
          HSSFFont font = _workbook.createFont();
         
          return font;
      }
      
  
      HSSFWorkbook getWorkbook() {
          return _workbook;
      }
      
      /**
       * write self to a filesystem
       *
       * @param filesystem the filesystem to be written to
       *
       * @exception IOException
       */
  
      void write(final POIFSFileSystem filesystem)
          throws IOException
      {
          filesystem
              .createDocument(new ByteArrayInputStream(_workbook
                  .getBytes()), "Workbook");
      }
  }   // end package scope class Workbook
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/serialization/ElementProcessorSerializer.java
  
  Index: ElementProcessorSerializer.java
  ===================================================================
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  package org.apache.cocoon.serialization;
  
  import org.apache.cocoon.serialization.Serializer;
  import org.apache.avalon.framework.component.Component;
  import org.apache.avalon.framework.component.ComponentException;
  import org.apache.avalon.framework.component.Composable;
  import org.apache.avalon.framework.component.ComponentManager;
  
  import org.apache.cocoon.components.elementprocessor.CannotCreateElementProcessorException;
  import org.apache.cocoon.components.elementprocessor.*;
  import org.apache.cocoon.components.elementprocessor.types.*;
  
  import org.apache.avalon.framework.logger.AbstractLogEnabled;
  
  import org.xml.sax.Attributes;
  import org.xml.sax.Locator;
  import org.xml.sax.SAXException;
  
  import java.io.IOException;
  import java.io.OutputStream;
  
  import java.util.Stack;
  
  /**
   * An implementation of nearly all of the methods included in the
   * org.apache.poi.serialization.Serializer interface
   *
   * This is an abstract class. Concrete extensions need to implement
   * the following methods:
   * <ul>
   *    <li>String getMimeType()</li>
   *    <li>void endDocument()</li>
   *    <li>ElementProcessorFactory getElementProcessorFactory()</li>
   *    <li>void doPreInitialization(ElementProcessor processor)</li>
   * </ul>
   *
   * @author Marc Johnson (marc_johnson27591@hotmail.com)
   * @author Nicola Ken Barozzi (nicolaken@apache.org)
   */
  
  public abstract class ElementProcessorSerializer 
      extends AbstractLogEnabled implements Serializer, Composable
  {
      private static final boolean _should_set_content_length = false;
      private OutputStream         _output_stream;
      private Stack                _open_elements;
      private Locator              _locator;
      /** Component Manager */
      protected ComponentManager   manager = null;
  
      /**
       * Constructor
       */
  
      public ElementProcessorSerializer()
      {
          _output_stream = null;
          _open_elements = new Stack();
          _locator       = null;
      }
  
      public void compose(ComponentManager manager) {
          this.manager = manager;
      }
      
      /**
       * get the appropriate ElementProcessorFactory
       *
       * @return an ElementProcessorFactory suitable for the file type
       */
  
      protected abstract ElementProcessorFactory getElementProcessorFactory();
  
      /**
       * perform whatever pre-initialization seems good on the
       * ElementProcessor
       *
       * @param processor the processor to be initialized
       *
       * @exception SAXException on errors
       */
  
      protected abstract void doPreInitialization(ElementProcessor processor)
  	throws SAXException;
  
      /**
       * @return the output stream
       */
  
      protected OutputStream getOutputStream()
      {
  	return _output_stream;
      }
  
      /**
       * Create a new SAXException
       *
       * @param message the exception message
       * @param e the underlying exception (may be null)
       *
       * @return new SAXException
       */
  
      protected SAXException SAXExceptionFactory(final String message,
                                                 final Exception e)
      {
          StringBuffer message_buffer = new StringBuffer();
  
          message_buffer.append((message == null) ? ""
                                                  : message);
          if (_locator != null)
          {
              message_buffer.append("; System id: \"");
              message_buffer.append(_locator.getSystemId());
              message_buffer.append("\"; public id: \"");
              message_buffer.append(_locator.getPublicId());
              message_buffer.append("\"; line number: ");
              message_buffer.append(_locator.getLineNumber());
              message_buffer.append("; column number: ");
              message_buffer.append(_locator.getColumnNumber());
          }
          SAXException rval = null;
  
          if (e != null)
          {
              rval = new SAXException(message_buffer.toString(), e);
          }
          else
          {
              rval = new SAXException(message_buffer.toString());
          }
          return rval;
      }
  
      /**
       * Create a SAXException
       *
       * @param message the exception message
       *
       * @return new SAXException
       */
  
      protected SAXException SAXExceptionFactory(final String message)
      {
          return SAXExceptionFactory(message, null);
      }
  
      private ElementProcessor getCurrentElementProcessor()
      {
          return _open_elements.empty() ? null
                                        : ( ElementProcessor ) _open_elements
                                            .peek();
      }
  
      private char [] cleanupArray(final char [] array, final int start,
                                   final int length)
      {
          char[] output = new char[ length ];
  
          System.arraycopy(array, start, output, 0, length);
          return output;
      }
  
      /* ********** START implementation of SitemapOutputComponent ********** */
  
      /**
       * Set the OutputStream where the requested resource should be
       * serialized.
       *
       * @param out the OutputStream to which the serialized data will
       *            be written
       */
  
      public void setOutputStream(final OutputStream out)
      {
          _output_stream = out;
      }
  
      /**
       * Test if the component wants to set the content length.
       *
       * @return false
       */
  
      public boolean shouldSetContentLength()
      {
          return _should_set_content_length;
      }
  
      /* **********  END  implementation of SitemapOutputComponent ********** */
      /* ********** START implementation of LexicalHandler ********** */
  
      /**
       * Report an XML comment anywhere in the document. We don't really
       * care.
       *
       * @param ignored_ch
       * @param ignored_start
       * @param ignored_length
       */
  
      public void comment(final char [] ignored_ch, final int ignored_start,
                          final int ignored_length)
      {
      }
  
      /**
       * Report the end of a CDATA section. We don't really care.
       */
  
      public void endCDATA()
      {
      }
  
      /**
       * Report the end of DTD declarations. We don't really care.
       */
  
      public void endDTD()
      {
      }
  
      /**
       * Report the end of an entity. We don't really care.
       *
       * @param ignored_name
       */
  
      public void endEntity(final String ignored_name)
      {
      }
  
      /**
       * Report the start of a CDATA section. We don't really care.
       */
  
      public void startCDATA()
      {
      }
  
      /**
       * Report the start of DTD declarations, if any. We don't really
       * care.
       *
       * @param ignored_name
       * @param ignored_publicId
       * @param ignored_systemId
       */
  
      public void startDTD(final String ignored_name,
                           final String ignored_publicId,
                           final String ignored_systemId)
      {
      }
  
      /**
       * Report the beginning of some internal and external XML
       * entities. We don't really care.
       *
       * @param ignored_name
       */
  
      public void startEntity(final String ignored_name)
      {
      }
  
      /* **********  END  implementation of LexicalHandler ********** */
      /* ********** START implementation of ContentHandler ********** */
  
      /**
       * Receive notification of character data.
       *
       * @param ch the character array
       * @param start the start index in ch
       * @param length the length of the valid part of ch
       *
       * @exception SAXException if anything goes wrong in processing
       *            the character data
       */
  
      public void characters(final char [] ch, final int start,
                             final int length)
          throws SAXException
      {
          try
          {
              getCurrentElementProcessor().acceptCharacters(cleanupArray(ch,
                      start, length));
          }
          catch (Exception e)
          {
              throw SAXExceptionFactory("could not process characters event",
                                        e);
          }
      }
  
      /**
       * Receive notification of the end of an element.
       *
       * @param ignored_namespaceURI
       * @param ignored_localName
       * @param ignored_qName
       *
       * @exception SAXException on any errors processing the event.
       */
  
      public void endElement(final String ignored_namespaceURI,
                             final String ignored_localName,
                             final String ignored_qName)
          throws SAXException
      {
          try
          {
              getCurrentElementProcessor().endProcessing();
              _open_elements.pop();
          }
          catch (Exception e)
          {
              throw SAXExceptionFactory("could not process endElement event",
                                        e);
          }
      }
  
      /**
       * End the scope of a prefix-URI mapping. We don't really care.
       *
       * @param ignored_prefix
       */
  
      public void endPrefixMapping(final String ignored_prefix)
      {
      }
  
      /**
       * Receive notification of ignorable whitespace in element
       * content.
       *
       * @param ch the character array
       * @param start the start index in ch
       * @param length the length of the valid part of ch
       *
       * @exception SAXException if anything goes wrong in processing
       *            the character data
       */
  
      public void ignorableWhitespace(final char [] ch, final int start,
                                      final int length)
          throws SAXException
      {
          try
          {
              getCurrentElementProcessor()
                  .acceptWhitespaceCharacters(cleanupArray(ch, start, length));
          }
          catch (Exception e)
          {
              throw SAXExceptionFactory(
                  "could not process ignorableWhitespace event", e);
          }
      }
  
      /**
       * Receive notification of a processing instruction. We don't
       * really care.
       *
       * @param ignored_target
       * @param ignored_data
       */
  
      public void processingInstruction(final String ignored_target,
                                        final String ignored_data)
      {
      }
  
      /**
       * Receive an object for locating the origin of SAX document
       * events.
       *
       * @param locator the Locator object
       */
  
      public void setDocumentLocator(final Locator locator)
      {
          _locator = locator;
      }
  
      /**
       * Receive notification of a skipped entity. We don't really care.
       *
       * @param ignored_name
       */
  
      public void skippedEntity(final String ignored_name)
      {
      }
  
      /**
       * Receive notification of the beginning of a document.
       */
  
      public void startDocument()
      {
  
          // nothing to do; should be ready as soon as we were
          // constructed
      }
  
      /**
       * Receive notification of the beginning of an element.
       *
       * @param namespaceURI the namespace this element is in
       * @param localName the local name of the element
       * @param qName the qualified name of the element
       * @param atts the Attributes, if any, of the element
       *
       * @exception SAXException if we cannot create an ElementProcessor
       *            to handle the element
       */
  
      public void startElement(final String namespaceURI,
                               final String localName, final String qName,
                               final Attributes atts)
          throws SAXException
      {
          String name = "";
  
          if ((localName != null) && (localName.length() != 0))
          {
              name = localName;
          }
          else if ((qName != null) && (qName.length() != 0))
          {
              name = qName;
          }
          ElementProcessor processor;
  
          try
          {
              processor =
                  getElementProcessorFactory().createElementProcessor(name);
          }
          catch (CannotCreateElementProcessorException e)
          {
              throw SAXExceptionFactory("could not process startElement event",
                                        e);
          }
  	doPreInitialization(processor);
          Attribute[] attributes = (atts == null) ? new Attribute[ 0 ]
                                                  : new Attribute[ atts.getLength() ];
  
          for (int j = 0; j < attributes.length; j++)
          {
              attributes[ j ] = new Attribute(atts.getQName(j),
                                              atts.getValue(j));
          }
          try
          {
              processor.initialize(attributes, getCurrentElementProcessor());
          }
          catch (IOException e)
          {
              throw SAXExceptionFactory("Exception processing startElement", e);
          }
          _open_elements.push(processor);
      }
  
      /**
       * Begin the scope of a prefix-URI Namespace mapping. We don't
       * really care.
       *
       * @param ignored_prefix
       * @param ignored_uri
       */
  
      public void startPrefixMapping(final String ignored_prefix,
                                     final String ignored_uri)
      {
      }
  
      /* **********  END  implementation of ContentHandler ********** */
  }   // end public abstract class ElementProcessorSerializer
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/serialization/HSSFSerializer.java
  
  Index: HSSFSerializer.java
  ===================================================================
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  package org.apache.cocoon.serialization;
  
  import org.apache.avalon.framework.activity.Initializable;
  import org.apache.avalon.framework.component.ComponentSelector;
  import org.apache.avalon.framework.configuration.Configurable;
  import org.apache.avalon.framework.configuration.Configuration;
  import org.apache.avalon.framework.configuration.ConfigurationException;
  
  import org.apache.cocoon.components.elementprocessor.ElementProcessor;
  import org.apache.cocoon.components.elementprocessor.ElementProcessorFactory;
  import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.HSSFElementProcessorFactory;
  
  /**
   *  Serializer to produce an HSSF stream.
   *
   *@author   Marc Johnson (marc_johnson27591@hotmail.com)
   *@author   Nicola Ken Barozzi (nicolaken@apache.org) 
   */
  
  public class HSSFSerializer
        extends POIFSSerializer implements Initializable, Configurable
  {
    private ElementProcessorFactory _element_processor_factory;
    private final static String _mime_type = "vnd.ms-excel";
    String locale;
  
    /**
     *  Constructor
     */
  
    public HSSFSerializer() {
      super();
    }
  
    /**
     * Initialialize the component. Initialization includes 
     * allocating any resources required throughout the 
     * components lifecycle.
     *
     * @exception Exception if an error occurs
     */
    public void initialize() throws Exception{
  
      _element_processor_factory  = new HSSFElementProcessorFactory(locale);
      setupLogger(_element_processor_factory);
    }
  
    public void configure(Configuration conf) throws ConfigurationException {
          Configuration[] parameters = conf.getChildren("parameter");
          for (int i = 0; i < parameters.length; i++) {
              String name = parameters[i].getAttribute("name");
              if (name.trim().equals("locale")) {
  		locale = parameters[i].getAttribute("value");
              }
          }
  
    }
          
    /**
     *  get the mime type
     *
     *@return    vnd.ms-excel
     */
  
    public String getMimeType() {
      return _mime_type;
    }
  
    /**
     *  get the ElementProcessorFactory
     *
     *@return    the ElementProcessorFactory
     */
  
    protected ElementProcessorFactory getElementProcessorFactory() {
      return _element_processor_factory;
    }
  
    /**
     *  post-processing for endDocument
     */
  
    protected void doLocalPostEndDocument() { }
  
    /**
     *  pre-processing for endDocument
     */
  
    protected void doLocalPreEndDocument() { }
  
  }
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/java/org/apache/cocoon/serialization/POIFSSerializer.java
  
  Index: POIFSSerializer.java
  ===================================================================
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, 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 Cocoon" and  "Apache Software Foundation" 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", 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 (INCLU-
   DING, 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 and was  originally created by
   Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
   Software Foundation, please see <http://www.apache.org/>.
  
  */
  package org.apache.cocoon.serialization;
  
  import java.io.IOException;
  import java.io.OutputStream;
  
  import org.apache.cocoon.components.elementprocessor.ElementProcessor;
  
  import org.apache.cocoon.components.elementprocessor.CannotCreateElementProcessorException;
  import org.apache.poi.poifs.filesystem.POIFSFileSystem;
  import org.apache.cocoon.components.elementprocessor.impl.poi.POIFSElementProcessor;
  
  
  import org.xml.sax.SAXException;
  
  /**
   *  An extension of ElementProcessorSerializer with extensions for dealing with
   *  the POIFS filesystem This is an abstract class. Concrete extensions need to
   *  implement the following methods:
   *  <ul>
   *    <li> String getMimeType()</li>
   *    <li> void doLocalPreEndDocument()</li>
   *    <li> void doLocalPostEndDocument()</li>
   *    <li> ElementProcessorFactory getElementProcessorFactory()</li>
   *    </li>
   *  </ul>
   *
   *
   *@author   Marc Johnson (marc_johnson27591@hotmail.com)
   *@author   Nicola Ken Barozzi (nicolaken@apache.org) 
   */
  
  public abstract class POIFSSerializer
        extends ElementProcessorSerializer
  {
    private POIFSFileSystem _filesystem;
  
    /**
     *  Constructor
     */
  
    public POIFSSerializer() {
      super();
      _filesystem = new POIFSFileSystem();
    }
  
    /*
     *  ********** START implementation of ContentHandler **********
     */
    /**
     *  Receive notification of the end of a document.
     *
     *@exception  SAXException  if there is an error writing the document to the
     *      output stream
     */
  
    public void endDocument()
      throws SAXException {
      doLocalPreEndDocument();
  
      OutputStream stream = getOutputStream();
  
      if ( stream != null ) {
        try {
          _filesystem.writeFilesystem( stream );
        }
        catch ( IOException e ) {
          throw SAXExceptionFactory(
            "could not process endDocument event", e );
        }
      }
      else {
        throw SAXExceptionFactory(
          "no outputstream for writing the document!!" );
      }
      doLocalPostEndDocument();
    }
  
    /**
     *  Provide access to the filesystem for extending classes
     *
     *@return    the filesystem
     */
  
    protected POIFSFileSystem getFilesystem() {
      return _filesystem;
    }
  
    /**
     *  Extending classes should do whatever they need to do prior to writing the
     *  filesystem out
     */
  
    protected abstract void doLocalPreEndDocument();
  
    /**
     *  Extending classes should do whatever they need to do after writing the
     *  filesystem out
     */
  
    protected abstract void doLocalPostEndDocument();
  
    /**
     *  perform pre-initialization on an element processor
     *
     *@param  processor         the element processor to be iniitialized
     *@exception  SAXException  on errors
     */
  
    protected void doPreInitialization( ElementProcessor processor )
      throws SAXException {
      try {
        ( ( POIFSElementProcessor ) processor ).setFilesystem( _filesystem );
      }
      catch ( ClassCastException e ) {
        throw SAXExceptionFactory( "could not pre-initialize processor",
          e );
      }
    }
  
    /*
     *  **********  END  implementation of ContentHandler **********
     */
  }
  // end public abstract class POIFSSerializer
  
  
  
  1.1                  xml-cocoon2/src/blocks/poi/samples/notyet.txt
  
  	<<Binary file>>
  
  

----------------------------------------------------------------------
In case of troubles, e-mail:     webmaster@xml.apache.org
To unsubscribe, e-mail:          cocoon-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: cocoon-cvs-help@xml.apache.org


Mime
View raw message