/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.cocoon.components.elementprocessor.impl.poi.hssf; import org.apache.cocoon.components.elementprocessor.CannotCreateElementProcessorException; import org.apache.cocoon.components.elementprocessor.ElementProcessor; import org.apache.cocoon.components.elementprocessor.LocaleAware; import org.apache.cocoon.components.elementprocessor.impl.AbstractElementProcessorFactory; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPAttribute; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPAttributes; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPBottom; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPButton; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPCell; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPCellComment; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPCells; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPCheckbox; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPColInfo; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPCols; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPConstr; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPContent; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPDiagonal; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPFont; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPFooter; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPFrame; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPGeometry; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPHeader; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPItem; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPLabel; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPLeft; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPMargins; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPMaxCol; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPMaxRow; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPMerge; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPMergedRegions; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPName; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPNames; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPObjects; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPPrintInformation; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPRev_Diagonal; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPRight; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPRowInfo; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPRows; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPSelection; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPSelections; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPSheet; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPSheetName; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPSheetNameIndex; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPSheetObjectBonobo; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPSheetObjectFilled; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPSheets; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPSolver; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPStyle; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPStyleBorder; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPStyleRegion; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPStyles; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPSummary; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPTop; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPUIData; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPWorkbook; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EPZoom; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EP_Bottom; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EP_Default_; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EP_Draft; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EP_EvenIfOnlyStyles; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EP_Footer; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EP_Grid; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EP_HCenter; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EP_Header; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EP_Left; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EP_Monochrome; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EP_Name; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EP_Order; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EP_Orientation; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EP_Paper; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EP_RepeatLeft; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EP_RepeatTop; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EP_Right; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EP_Titles; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EP_Top; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EP_Type; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EP_VCenter; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EP_ValString; import org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements.EP_Value; /** * 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) * @version CVS $Id$ */ 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("Merge", EPMerge.class); addElementProcessorProgenitor("MergedRegions", EPMergedRegions.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