/* * This file is part of the LibreOffice project. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * * This file incorporates work covered by the following license notice: * * 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 . */ package org.openoffice.xmerge.converter.xml.sxc.pexcel; import java.io.IOException; import java.util.ArrayList; import java.util.Iterator; import org.openoffice.xmerge.ConvertData; import org.openoffice.xmerge.converter.xml.sxc.SpreadsheetDecoder; import org.openoffice.xmerge.converter.xml.sxc.SxcDocumentDeserializer; import org.openoffice.xmerge.converter.xml.sxc.pexcel.records.Workbook; import org.openoffice.xmerge.util.Debug; /** *

Pocket Excel implementation of DocumentDeserializer * for the {@link * org.openoffice.xmerge.converter.xml.sxc.pexcel.PluginFactoryImpl * PluginFactoryImpl}.

* *

This converts a set of files in Pocket Excel PXL format to a StarOffice DOM.

* * @author Mark Murnane */ public final class SxcDocumentDeserializerImpl extends SxcDocumentDeserializer { /** * Creates new SxcDocumentDeserializerImpl. * * @param cd ConvertData Input data to convert. */ public SxcDocumentDeserializerImpl(ConvertData cd) { super(cd); } /** * This method will be implemented by concrete subclasses and will * return an application-specific decoder. * * @param workbook The WorkBook name. * @param worksheetNames An array of WorkSheet names. * @param password The password. * * @return An application-specific SpreadsheetDecoder. */ public SpreadsheetDecoder createDecoder(String workbook, String[] worksheetNames, String password) throws IOException { return new PocketExcelDecoder(workbook, worksheetNames, password); } /** * This method will return the name of the WorkBook from the * ConvertData. Allows for situations where the * WorkBook name differs from the PDB name. * * Implemented in the Deserializer as the Decoder's constructor * requires a name. * * @param cd The ConvertData. * * @return The name of the WorkBook. */ protected String getWorkbookName(ConvertData cd) throws IOException { Iterator e = cd.getDocumentEnumeration(); Workbook wb = (Workbook) e.next(); String workbookName = wb.getName(); return workbookName; } /** * This method will return an array of WorkSheet names from the * ConvertData. * * @param cd The ConvertData. * * @return The name of the WorkSheet. */ protected String[] getWorksheetNames(ConvertData cd) throws IOException { Iterator e = cd.getDocumentEnumeration(); Workbook wb = (Workbook) e.next(); ArrayList v = wb.getWorksheetNames(); e = v.iterator(); String worksheetNames[] = new String[v.size()]; int i = 0; while(e.hasNext()) { worksheetNames[i] = (String) e.next(); Debug.log(Debug.TRACE,"Worksheet Name : " + worksheetNames[i]); i++; } return worksheetNames; } }