Kaydet (Commit) 5acbb755 authored tarafından dkenny's avatar dkenny

Initial Import

üst
<?xml version="1.0" encoding="UTF-8"?>
<!--
# The Contents of this file are made available subject to the terms of
# either of the following licenses
#
# - GNU Lesser General Public License Version 2.1
# - Sun Industry Standards Source License Version 1.1
#
# Sun Microsystems Inc., October, 2000
#
# GNU Lesser General Public License Version 2.1
# =============================================
# Copyright 2000 by Sun Microsystems, Inc.
# 901 San Antonio Road, Palo Alto, CA 94303, USA
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License version 2.1, as published by the Free Software Foundation.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
#
#
# Sun Industry Standards Source License Version 1.1
# =================================================
# The contents of this file are subject to the Sun Industry Standards
# Source License Version 1.1 (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.openoffice.org/license.html.
#
# Software provided under this License is provided on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
# WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
# MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
# See the License for the specific provisions governing your rights and
# obligations concerning the Software.
#
# The Initial Developer of the Original Code is: Sun Microsystems, Inc.
#
# Copyright: 2000 by Sun Microsystems, Inc.
#
# All Rights Reserved.
#
# Contributor(s): _______________________________________
#
#
-->
<project name="xmerge" default="main" basedir=".">
<!-- ================================================================= -->
<!-- settings -->
<!-- ================================================================= -->
<!-- project prefix, used to generate build.lst -->
<property name="prj.prefix" value="xmrg"/>
<!-- name of this sub target used in recursive builds -->
<property name="target" value="xmerge"/>
<!-- ================================================================= -->
<!-- solar build environment targets -->
<!-- ================================================================= -->
<!-- used by init to set build directory -->
<target name="build_dir" unless="build.dir">
<property name="build.dir" value="${basedir}/${inpath}"/>
</target>
<target name="build_class" depends="build_dir">
<property name="build.class" value="${build.dir}/class"/>
<mkdir dir="${build.dir}"/>
<mkdir dir="${build.class}"/>
<copy file="util/solar.properties" todir="${build.class}"/>
</target>
<!-- used by init to set up 'solar' build environment -->
<target name="solar" depends="build_dir,build_class" if="solar.update">
<property name="solar.properties"
value="${solar.bin}/solar.properties"/>
<property name="build.dir" value="${basedir}/${out}"/>
</target>
<!-- initialize build environment -->
<target name="init" depends="solar">
<property name="build.compiler" value="classic"/>
<property file="${build.dir}/class/solar.properties"/>
<property file="${solar.properties}"/>
</target>
<!-- show information about current sub target in recursive builds -->
<target name="info">
<echo message="----------------------------------------"/>
<echo message="${target}"/>
<echo message="----------------------------------------"/>
</target>
<!-- ================================================================= -->
<!--- custom targets -->
<!-- ================================================================= -->
<!-- names for targets build by release engineering -->
<!-- must start with project prefix and an underscore -->
<!-- the main target, called in recursive builds -->
<target name="main" depends="info,prepare,xmrg_util,xmrg_javadoc"/>
<!-- prepare output directories -->
<target name="prepare" depends="init"/>
<!-- java package -->
<target name="xmrg_joo_xmerge" depends="prepare">
<ant dir="java/org/openoffice/xmerge" target="main">
<property name="target" value="xmrg_joo_xmerge"/>
<property name="prj" value="../../../.."/>
</ant>
</target>
<!-- java package -->
<target name="xmrg_jooxc_xml" depends="prepare">
<ant dir="java/org/openoffice/xmerge/converter/xml" target="main">
<property name="target" value="xmrg_jooxc_xml"/>
<property name="prj" value="../../../../../.."/>
</ant>
</target>
<!-- java package -->
<target name="xmrg_jooxcx_sxc" depends="prepare">
<ant dir="java/org/openoffice/xmerge/converter/xml/sxc" target="main">
<property name="target" value="xmrg_jooxcx_sxc"/>
<property name="prj" value="../../../../../../.."/>
</ant>
</target>
<!-- java package -->
<target name="xmrg_jooxcx_sxw" depends="prepare">
<ant dir="java/org/openoffice/xmerge/converter/xml/sxw" target="main">
<property name="target" value="xmrg_jooxcx_sxw"/>
<property name="prj" value="../../../../../../.."/>
</ant>
</target>
<!-- java package -->
<target name="xmrg_jooxcx_xslt" depends="prepare">
<ant dir="java/org/openoffice/xmerge/converter/xml/xslt" target="main">
<property name="target" value="xmrg_jooxcx_xslt"/>
<property name="prj" value="../../../../../../.."/>
</ant>
</target>
<!-- java package -->
<target name="xmrg_joox_merger" depends="prepare">
<ant dir="java/org/openoffice/xmerge/merger" target="main">
<property name="target" value="xmrg_joox_merger"/>
<property name="prj" value="../../../../.."/>
</ant>
</target>
<!-- java package -->
<target name="xmrg_jooxm_diff" depends="prepare">
<ant dir="java/org/openoffice/xmerge/merger/diff" target="main">
<property name="target" value="xmrg_jooxm_diff"/>
<property name="prj" value="../../../../../.."/>
</ant>
</target>
<!-- java package -->
<target name="xmrg_jooxm_merge" depends="prepare">
<ant dir="java/org/openoffice/xmerge/merger/merge" target="main">
<property name="target" value="xmrg_jooxm_merge"/>
<property name="prj" value="../../../../../.."/>
</ant>
</target>
<!-- java package -->
<target name="xmrg_joox_test" depends="prepare,xmrg_joox_util,xmrg_joo_xmerge">
<ant dir="java/org/openoffice/xmerge/test" target="main">
<property name="target" value="xmrg_joox_test"/>
<property name="prj" value="../../../../.."/>
</ant>
</target>
<!-- java package -->
<target name="xmrg_joox_util" depends="prepare">
<ant dir="java/org/openoffice/xmerge/util" target="main">
<property name="target" value="xmrg_joox_util"/>
<property name="prj" value="../../../../.."/>
</ant>
</target>
<!-- java package -->
<target name="xmrg_jooxu_registry" depends="prepare">
<ant dir="java/org/openoffice/xmerge/util/registry" target="main">
<property name="target" value="xmrg_jooxu_registry"/>
<property name="prj" value="../../../../../.."/>
</ant>
</target>
<!-- java package -->
<target name="xmrg_jooxc_dom" depends="prepare">
<ant dir="java/org/openoffice/xmerge/converter/dom" target="main">
<property name="target" value="xmrg_jooxc_dom"/>
<property name="prj" value="../../../../../.."/>
</ant>
</target>
<!-- java package -->
<target name="xmrg_javadoc" depends="prepare">
<ant dir="java" target="main">
<property name="target" value="javadoc"/>
<property name="prj" value=".."/>
</ant>
</target>
<!-- util -->
<target name="xmrg_util" depends="prepare,xmrg_joo_xmerge,xmrg_jooxc_xml,xmrg_jooxcx_sxc,xmrg_jooxcx_sxw,xmrg_jooxcx_xslt,xmrg_joox_merger,xmrg_jooxm_diff,xmrg_jooxm_merge,xmrg_joox_test,xmrg_joox_util,xmrg_jooxu_registry,xmrg_jooxc_dom,xmrg_javadoc">
<ant dir="util" target="main">
<property name="target" value="xmrg_util"/>
<property name="prj" value="."/>
</ant>
</target>
<!-- clean up -->
<target name="clean" depends="prepare">
<delete includeEmptyDirs="true">
<fileset dir="${build.dir}">
<patternset>
<include name="**"/>
</patternset>
</fileset>
</delete>
</target>
<!-- handle dependencies -->
<target name="depend"/>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<!--
# The Contents of this file are made available subject to the terms of
# either of the following licenses
#
# - GNU Lesser General Public License Version 2.1
# - Sun Industry Standards Source License Version 1.1
#
# Sun Microsystems Inc., October, 2000
#
# GNU Lesser General Public License Version 2.1
# =============================================
# Copyright 2000 by Sun Microsystems, Inc.
# 901 San Antonio Road, Palo Alto, CA 94303, USA
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License version 2.1, as published by the Free Software Foundation.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
#
#
# Sun Industry Standards Source License Version 1.1
# =================================================
# The contents of this file are subject to the Sun Industry Standards
# Source License Version 1.1 (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.openoffice.org/license.html.
#
# Software provided under this License is provided on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
# WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
# MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
# See the License for the specific provisions governing your rights and
# obligations concerning the Software.
#
# The Initial Developer of the Original Code is: Sun Microsystems, Inc.
#
# Copyright: 2000 by Sun Microsystems, Inc.
#
# All Rights Reserved.
#
# Contributor(s): _______________________________________
#
#
-->
<project name="xmrg_java" default="main" basedir=".">
<!-- ================================================================= -->
<!-- settings -->
<!-- ================================================================= -->
<!-- project prefix, used for targets and build.lst -->
<property name="prj.prefix" value="xmrg"/>
<!-- name of this sub target used in recursive builds -->
<property name="target" value="xmrg_java"/>
<!-- relative path to project directory -->
<property name="prj" value=".."/>
<!-- start of java source code package structure -->
<property name="java.dir" value="${prj}/java"/>
<!-- path component for current java package -->
<property name="package" value="."/>
<!-- define how to handle CLASSPATH environment -->
<property name="build.sysclasspath" value="ignore"/>
<!-- classpath settings for javac tasks -->
<path id="classpath">
<pathelement location="${build.class}"/>
<pathelement location="${solar.jar}/parser.jar"/>
<pathelement location="${solar.jar}/jaxp.jar"/>
<pathelement location="${solar.jar}/xalan.jar"/>
<pathelement location="${solar.jar}/jurt.jar"/>
<pathelement location="${solar.jar}/unoil.jar"/>
<pathelement location="${solar.jar}/ridl.jar"/>
<pathelement location="${solar.jar}/sandbox.jar"/>
<pathelement location="${solar.jar}/juh.jar"/>
<pathelement location="${solar.jar}/jmc.jar"/>
</path>
<!-- set wether we want to compile with or without deprecation -->
<property name="deprecation" value="on"/>
<!-- ================================================================= -->
<!-- solar build environment targets -->
<!-- ================================================================= -->
<target name="build_dir" unless="build.dir">
<property name="build.dir" value="${out}"/>
</target>
<target name="solar" depends="build_dir" if="solar.update">
<property name="solar.properties"
value="${solar.bin}/solar.properties"/>
</target>
<target name="init" depends="solar">
<property name="build.compiler" value="classic"/>
<property file="${solar.properties}"/>
<property file="${build.dir}/class/solar.properties"/>
</target>
<target name="info">
<echo message="--------------------"/>
<echo message="${target}"/>
<echo message="--------------------"/>
</target>
<!-- ================================================================= -->
<!-- custom targets -->
<!-- ================================================================= -->
<!-- the main target, called in recursive builds -->
<target name="main" depends="info,prepare,javadoc,zipdoc"/>
<!-- prepare output directories -->
<target name="prepare" depends="init" if="build.class">
<mkdir dir="${build.dir}"/>
<mkdir dir="${build.dir}/doc/javadoc"/>
</target>
<!-- compile java sources in ${package} and sub packages -->
<target name="javadoc" depends="prepare" if="build.dir">
<javadoc packagenames="org.openoffice.xmerge.*"
destdir="${build.dir}/doc/javadoc"
verbose="false"
author="false"
nodeprecated="true"
nodeprecatedlist="true"
use="true"
Doctitle="OpenOffice XMerge API"
windowtitle="OpenOffice XMerge API"
sourcepath="${prj}/java"
excludepackagenames="org.openoffice.xmerge.test"
classpathref="classpath">
<link offline="true" href="http://java.sun.com/j2se/1.3/docs/api" packagelistLoc="${solar.doc}/jdk13"/>
<bottom><![CDATA[<i>Copyright &#169 2002 OpenOffice.org</i>]]></bottom>
<header><![CDATA[<b>OpenOffice.org<br>XMerge API</b>]]></header>
</javadoc>
</target>
<!-- zip together all the javadocs -->
<target name="zipdoc" depends="javadoc" if="build.dir">
<zip zipfile="${build.dir}/doc/xmerge_javadoc.zip"
basedir="${build.dir}/doc/javadoc"
update="true"/>
</target>
<!-- clean up -->
<target name="clean" depends="prepare">
<delete includeEmptyDirs="true">
<fileset dir="${build.dir}/doc">
<patternset>
<include name="**"/>
</patternset>
</fileset>
</delete>
</target>
</project>
#***************************************************************************
#
# The Contents of this file are made available subject to the terms of
# either of the following licenses
#
# - GNU Lesser General Public License Version 2.1
# - Sun Industry Standards Source License Version 1.1
#
# Sun Microsystems Inc., October, 2000
#
# GNU Lesser General Public License Version 2.1
# =============================================
# Copyright 2000 by Sun Microsystems, Inc.
# 901 San Antonio Road, Palo Alto, CA 94303, USA
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License version 2.1, as published by the Free Software Foundation.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
#
#
# Sun Industry Standards Source License Version 1.1
# =================================================
# The contents of this file are subject to the Sun Industry Standards
# Source License Version 1.1 (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.openoffice.org/license.html.
#
# Software provided under this License is provided on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
# WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
# MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
# See the License for the specific provisions governing your rights and
# obligations concerning the Software.
#
# The Initial Developer of the Original Code is: Sun Microsystems, Inc.
#
# Copyright: 2000 by Sun Microsystems, Inc.
#
# All Rights Reserved.
#
# Contributor(s): _______________________________________
#
#***************************************************************************
TARGET=xmrg_java
PRJ=..
.INCLUDE : ant.mk
ALLTAR: ANTBUILD
/************************************************************************
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
*
* - GNU Lesser General Public License Version 2.1
* - Sun Industry Standards Source License Version 1.1
*
* Sun Microsystems Inc., October, 2000
*
* GNU Lesser General Public License Version 2.1
* =============================================
* Copyright 2000 by Sun Microsystems, Inc.
* 901 San Antonio Road, Palo Alto, CA 94303, USA
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License version 2.1, as published by the Free Software Foundation.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*
*
* Sun Industry Standards Source License Version 1.1
* =================================================
* The contents of this file are subject to the Sun Industry Standards
* Source License Version 1.1 (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.openoffice.org/license.html.
*
* Software provided under this License is provided on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
* WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
* MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
* See the License for the specific provisions governing your rights and
* obligations concerning the Software.
*
* The Initial Developer of the Original Code is: Sun Microsystems, Inc.
*
* Copyright: 2000 by Sun Microsystems, Inc.
*
* All Rights Reserved.
*
* Contributor(s): _______________________________________
*
*
************************************************************************/
package org.openoffice.xmerge;
import java.io.InputStream;
import java.io.IOException;
import java.util.Enumeration;
import org.openoffice.xmerge.util.registry.ConverterInfo;
/**
* The <code>Convert</code> class manages a conversion from one
* mime-type to another. The <code>ConvertFactory</code> is
* responsible for returning the appropriate <code>Convert</code>
* class for a specified conversion. This class is responsible
* for all interactions with the <code>PluginFactory</code>
* implementation.
*
* @see ConverterFactory
* @see PluginFactory
* @see org.openoffice.xmerge.util.registry.ConverterInfo
*
* @author Martin Maher
*/
public class Convert implements Cloneable {
/**
* ConvertInfo that corresponds to the from-mime/to-mime
* conversion.
*/
private ConverterInfo ci;
/**
* true if converting to the Office format, false if converting
* to the device format.
*/
private boolean toOffice;
/**
* Holds the convert input data.
*/
private ConvertData inputCD = new ConvertData();
/**
* Construct a Convert class with specified <code>ConvertInfo</code>
* registry information.
*
* @param ci A <code>ConvertInfo</code> object containing
* registry information corresponding to a
* specific plug-in.
* @param toOffice true if converting to the Office format,
* false if converting to the device format.
*/
public Convert(ConverterInfo ci, boolean toOffice) {
this.ci = ci;
this.toOffice = toOffice;
}
/**
* Adds an <code>InputStream</code> to be used as input by the
* <code>Convert</code> class. It is possible that many files
* need to be converted into a single output <code>Documetn</code>,
* so this function may be called more than one time. It is the
* plug-in's responsibility to know how to handle the input.
*
* @param name The name corresponding to the <code>InputStream</code>.
* @param is <code>InputStream</code> to be used as input.
*
* @throws IOException If any I/O error occurs.
*/
public void addInputStream(String name, InputStream is)
throws IOException {
Document inputDoc;
if (toOffice == true) {
inputDoc = ci.getPluginFactory().createDeviceDocument(name, is);
} else {
inputDoc = ci.getPluginFactory().createOfficeDocument(name, is);
}
inputCD.addDocument(inputDoc);
}
/**
* Adds the original Document to the Convert Class. This
* is to be used for merges. If this Document is added then
* it is assumed that a convert with merge is the desired
* operation.
*
* @param name The <code>Document</code> name.
* @param is <code>InputStream</code> object corresponding
* to the <code>Document</code>.
*
* @throws IOException If any I/O error occurs.
*/
public DocumentMerger getDocumentMerger(Document origDoc)
throws IOException {
DocumentMergerFactory myDocMergerFactory = ci.getDocMergerFactory();
DocumentMerger merger = myDocMergerFactory.createDocumentMerger(origDoc);
return merger;
}
/**
* Resets the input queue, so that the user can use this class to
* perform another conversion. This causes the
* <code>addInputStream</code> method to accept input for the next
* conversion.
*/
public void reset() {
inputCD.reset();
}
/**
* Clones a Convert object so another Convert object can
* do the same conversion. <code>InputStream<code> objects passed
* in via calls to the <code>addInputStream</code> method are not
* copied.
*
* @return The cloned <code>Convert</code> object.
*/
public Object clone() {
Convert aClone = null;
try {
aClone = (Convert) super.clone();
aClone.reset();
}
catch (CloneNotSupportedException e) {
System.out.println("Convert clone could not be created");