summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--filter/prj/build.lst5
-rw-r--r--filter/source/config/fragments/makefile.mk2
-rw-r--r--filter/source/config/tools/merge/FCFGMerge.cfg125
-rw-r--r--filter/source/config/tools/merge/FCFGMerge.java128
-rw-r--r--filter/source/config/tools/merge/Manifest.mf1
-rw-r--r--filter/source/config/tools/merge/Merger.java362
-rw-r--r--filter/source/config/tools/merge/makefile.mk90
-rw-r--r--filter/source/config/tools/utils/AnalyzeStartupLog.java324
-rw-r--r--filter/source/config/tools/utils/Cache.java2444
-rw-r--r--filter/source/config/tools/utils/ConfigHelper.java297
-rw-r--r--filter/source/config/tools/utils/FileHelper.java760
-rw-r--r--filter/source/config/tools/utils/Logger.java172
-rw-r--r--filter/source/config/tools/utils/MalformedCommandLineException.java46
-rw-r--r--filter/source/config/tools/utils/XMLHelper.java820
-rw-r--r--filter/source/config/tools/utils/makefile.mk63
-rw-r--r--oox/util/makefile.mk3
-rw-r--r--unoxml/source/rdf/makefile.mk2
-rw-r--r--xmerge/source/aportisdoc/makefile.mk2
-rw-r--r--xmerge/source/bridge/makefile.mk2
-rw-r--r--xmerge/source/htmlsoff/makefile.mk2
-rw-r--r--xmerge/source/pexcel/makefile.mk2
-rw-r--r--xmerge/source/pocketword/makefile.mk2
-rw-r--r--xmerge/source/xmerge/makefile.mk2
-rw-r--r--xmerge/util/makefile.mk2
24 files changed, 20 insertions, 5638 deletions
diff --git a/filter/prj/build.lst b/filter/prj/build.lst
index 49083f538e8f..63b7e25c646b 100644
--- a/filter/prj/build.lst
+++ b/filter/prj/build.lst
@@ -16,9 +16,6 @@ fl filter\source\xsltdialog nmake - all fl_xsltdialog fl_flash fl_inc NULL
fl filter\source\docbook nmake - all fl_docbook fl_inc NULL
fl filter\source\t602 nmake - all fl_t602 fl_inc NULL
fl filter\source\config\cache nmake - all fl_config fl_inc NULL
-fl filter\source\config\tools\utils nmake - all fl_fcfg_utils fl_inc NULL
-fl filter\source\config\tools\merge nmake - all fl_fcfg_merge fl_fcfg_utils fl_xsltvalidate fl_inc NULL
fl filter\source\config\fragments\types nmake - all fl_fcfg_fragments_types fl_inc NULL
fl filter\source\config\fragments\filters nmake - all fl_fcfg_fragments_filters fl_inc NULL
-fl filter\source\config\fragments nmake - all fl_fcfg_fragments fl_fcfg_merge fl_fcfg_fragments_filters fl_inc NULL
-
+fl filter\source\config\fragments nmake - all fl_fcfg_fragments fl_fcfg_fragments_filters fl_inc NULL
diff --git a/filter/source/config/fragments/makefile.mk b/filter/source/config/fragments/makefile.mk
index 6f76c1d60d6b..d398e03e5a7d 100644
--- a/filter/source/config/fragments/makefile.mk
+++ b/filter/source/config/fragments/makefile.mk
@@ -187,7 +187,7 @@ $(ALL_FLAGS) : $(INCLUDE_FRAGMENTS)
#cmc, hack to workaround the java build requirement
MERGE:=python ../tools/merge/pyAltFCFGMerge
.ELSE
-MERGE := $(JAVAI) -jar $(CLASSDIR)$/FCFGMerge.jar
+MERGE := $(JAVAI) -jar $(SOLARBINDIR)$/FCFGMerge.jar
.ENDIF
PACKLANG := $(XSLTPROC) --nonet
diff --git a/filter/source/config/tools/merge/FCFGMerge.cfg b/filter/source/config/tools/merge/FCFGMerge.cfg
deleted file mode 100644
index 46fcccafe7e4..000000000000
--- a/filter/source/config/tools/merge/FCFGMerge.cfg
+++ /dev/null
@@ -1,125 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2008 by Sun Microsystems, Inc.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# $RCSfile: FCFGMerge.cfg,v $
-#
-# $Revision: 1.5 $
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org 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 version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-#************************************************
-# Specify the verbose mode of this tool.
-# 1 = show errors only
-# 2 = show errors/warnings (default)
-# 3 = show errors/warnings and some generic infos
-# 4 = show anything (including detailed infos)
-#
-# [OPTIONAL]
-#************************************************
-
-loglevel = 2
-
-#************************************************
-# This extension is used for all XML files. It doesnt
-# matter if its used for reading fragments or writing
-# XML packages.
-# Must be given without any additional signes like "."
-# or "*."!
-#
-# [REQUIRED]
-#************************************************
-
-extension_xcu=xcu
-
-#************************************************
-# This extension is used for all Package files. It doesnt
-# matter if its used for reading such files or writing
-# it.
-# Must be given without any additional signes like "."
-# or "*."!
-#
-# [REQUIRED]
-#************************************************
-
-extension_pkg=pkg
-
-#************************************************
-# These values are used to generate a correct XML
-# header.
-# Note: The property "xmlpackage" must be specified
-# via command line. There exists more then one
-# possible value.
-#
-# [REQUIRED]
-#************************************************
-
-xmlversion = 1.0
-xmlencoding = UTF-8
-xmlpath = org.openoffice.TypeDetection
-#xmlpackage =
-
-#************************************************
-# These values are used to name the configuration
-# sets inside the generated XCM file for different
-# item groups like e.g. types, filters etcpp.
-#
-# [REQUIRED]
-#************************************************
-
-setname_types = Types
-setname_filters = Filters
-setname_frameloaders = FrameLoaders
-setname_contenthandlers = ContentHandlers
-
-subdir_types = types
-subdir_filters = filters
-subdir_frameloaders = frameloaders
-subdir_contenthandlers = contenthandlers
-
-#************************************************
-# This delimiter is used to split every
-# item list of the package configuration files
-# (which are temp. created by the make proccess)
-# into its tokens.
-#
-# [REQUIRED]
-#************************************************
-delimiter=,
-
-#************************************************
-# Enable/disable removing of leading/trailing withespaces
-# during splitting stringlists.
-#
-# [REQUIRED]
-#************************************************
-trim=true
-
-#************************************************
-# Enable/disable removing of leading/trailing "-signs
-# during splitting stringlists.
-#
-# [REQUIRED]
-#************************************************
-decode=false
diff --git a/filter/source/config/tools/merge/FCFGMerge.java b/filter/source/config/tools/merge/FCFGMerge.java
deleted file mode 100644
index 1b37bab0e89a..000000000000
--- a/filter/source/config/tools/merge/FCFGMerge.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: FCFGMerge.java,v $
- * $Revision: 1.5 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org 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 version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-package com.sun.star.filter.config.tools.merge;
-
-//_______________________________________________
-
-import com.sun.star.filter.config.tools.utils.*;
-
-//_______________________________________________
-
-/**
- * Its a simple command line tool, which can merge different XML fragments
- * together. Such fragments must exist as files on disk, will be moved into
- * one file together on disk.
- *
- *
- */
-public class FCFGMerge
-{
- //___________________________________________
- // const
-
- private static final java.lang.String CFGFILE = "com/sun/star/filter/config/tools/merge/FCFGMerge.cfg";
- private static final java.lang.String PROP_LOGLEVEL = "loglevel";
-
- //___________________________________________
- // main
-
- public static void main(java.lang.String[] sCmdLine)
- {
- FCFGMerge.printCopyright();
-
- // create log object in default mode "WARNINGS"
- // If a command line parameter indicates another
- // level - change it!
- Logger aLog = new Logger();
-
- try
- {
- // merge config file and overwrite properties
- // via command line
- ConfigHelper aCfg = null;
- aCfg = new ConfigHelper(CFGFILE, sCmdLine);
-
- // update log level
- int nLogLevel = aCfg.getInt(PROP_LOGLEVEL, Logger.LEVEL_WARNINGS);
- aLog = new Logger(nLogLevel);
-
- // help requested?
- if (aCfg.isHelp())
- {
- FCFGMerge.printHelp();
- System.exit(-1);
- }
-
- // create new merge object and start operation
- Merger aMerger = new Merger(aCfg, aLog);
- aMerger.merge();
- }
- catch(java.lang.Throwable ex)
- {
- aLog.setException(ex);
- System.exit(-1);
- }
-
- System.exit(0);
- }
-
- //___________________________________________
-
- /** prints out a copyright message on stdout.
- */
- private static void printCopyright()
- {
- java.lang.StringBuffer sOut = new java.lang.StringBuffer(256);
- sOut.append("FCFGMerge\n");
- sOut.append("Copyright: 2003 by Sun Microsystems, Inc.\n");
- sOut.append("All Rights Reserved.\n");
- System.out.println(sOut.toString());
- }
-
- //___________________________________________
-
- /** prints out a help message on stdout.
- */
- private static void printHelp()
- {
- java.lang.StringBuffer sOut = new java.lang.StringBuffer(256);
- sOut.append("____________________________________________________________\n");
- sOut.append("usage: FCFGMerge cfg=<file name>\n" );
- sOut.append("parameters:\n" );
- sOut.append("\tcfg=<file name>\n" );
- sOut.append("\t\tmust point to a system file, which contains\n" );
- sOut.append("\t\tall neccessary configuration data for the merge process.\n");
- sOut.append("\n\tFurther cou can specify every parameter allowed in the\n" );
- sOut.append("\n\tconfig file as command line parameter too, to overwrite\n" );
- sOut.append("\n\tthe value from the file.\n" );
- System.out.println(sOut.toString());
- }
-}
diff --git a/filter/source/config/tools/merge/Manifest.mf b/filter/source/config/tools/merge/Manifest.mf
deleted file mode 100644
index 1337eaf4d39a..000000000000
--- a/filter/source/config/tools/merge/Manifest.mf
+++ /dev/null
@@ -1 +0,0 @@
-Main-Class: com.sun.star.filter.config.tools.merge.FCFGMerge
diff --git a/filter/source/config/tools/merge/Merger.java b/filter/source/config/tools/merge/Merger.java
deleted file mode 100644
index 34e27a3835da..000000000000
--- a/filter/source/config/tools/merge/Merger.java
+++ /dev/null
@@ -1,362 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: Merger.java,v $
- * $Revision: 1.8 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org 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 version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-package com.sun.star.filter.config.tools.merge;
-
-//_______________________________________________
-
-import java.io.*;
-import com.sun.star.filter.config.tools.utils.*;
-
-//_______________________________________________
-
-/** can merge different xml fragments together.
- *
- *
- */
-public class Merger
-{
- //___________________________________________
- // const
-
- private static final java.lang.String PROP_XMLVERSION = "xmlversion" ; // <= global cfg file
- private static final java.lang.String PROP_XMLENCODING = "xmlencoding" ; // <= global cfg file
- private static final java.lang.String PROP_XMLPATH = "xmlpath" ; // <= global cfg file
- private static final java.lang.String PROP_XMLPACKAGE = "xmlpackage" ; // <= global cfg file
-
- private static final java.lang.String PROP_SETNAME_TYPES = "setname_types" ; // <= global cfg file
- private static final java.lang.String PROP_SETNAME_FILTERS = "setname_filters" ; // <= global cfg file
- private static final java.lang.String PROP_SETNAME_LOADERS = "setname_frameloaders" ; // <= global cfg file
- private static final java.lang.String PROP_SETNAME_HANDLERS = "setname_contenthandlers" ; // <= global cfg file
-
- private static final java.lang.String PROP_SUBDIR_TYPES = "subdir_types" ; // <= global cfg file
- private static final java.lang.String PROP_SUBDIR_FILTERS = "subdir_filters" ; // <= global cfg file
- private static final java.lang.String PROP_SUBDIR_LOADERS = "subdir_frameloaders" ; // <= global cfg file
- private static final java.lang.String PROP_SUBDIR_HANDLERS = "subdir_contenthandlers" ; // <= global cfg file
-
- private static final java.lang.String PROP_EXTENSION_XCU = "extension_xcu" ; // <= global cfg file
- private static final java.lang.String PROP_EXTENSION_PKG = "extension_pkg" ; // <= global cfg file
-
- private static final java.lang.String PROP_DELIMITER = "delimiter" ; // <= global cfg file
- private static final java.lang.String PROP_TRIM = "trim" ; // <= global cfg file
- private static final java.lang.String PROP_DECODE = "decode" ; // <= global cfg file
-
- private static final java.lang.String PROP_FRAGMENTSDIR = "fragmentsdir" ; // <= cmdline
- private static final java.lang.String PROP_TEMPDIR = "tempdir" ; // <= cmdline
- private static final java.lang.String PROP_OUTDIR = "outdir" ; // <= cmdline
- private static final java.lang.String PROP_PKG = "pkg" ; // <= cmdline
- private static final java.lang.String PROP_DEBUG = "debug" ; // <= cmdline
-
- private static final java.lang.String PROP_TCFG = "tcfg" ; // <= cmdline
- private static final java.lang.String PROP_FCFG = "fcfg" ; // <= cmdline
- private static final java.lang.String PROP_LCFG = "lcfg" ; // <= cmdline
- private static final java.lang.String PROP_CCFG = "ccfg" ; // <= cmdline
- private static final java.lang.String PROP_LANGUAGEPACK = "languagepack" ; // <= cmdline
-
- private static final java.lang.String PROP_ITEMS = "items" ; // <= pkg cfg files!
-
- //___________________________________________
- // member
-
- //-------------------------------------------
- /** TODO */
- private ConfigHelper m_aCfg;
-
- //-------------------------------------------
- /** TODO */
- private Logger m_aLog;
-
- //-------------------------------------------
- /** TODO */
- private java.io.File m_aFragmentsDir;
-
- //-------------------------------------------
- /** TODO */
- private java.io.File m_aTempDir;
-
- //-------------------------------------------
- /** TODO */
- private java.io.File m_aOutDir;
-
- //-------------------------------------------
- /** TODO */
- private java.util.Vector m_lTypes;
- private java.util.Vector m_lFilters;
- private java.util.Vector m_lLoaders;
- private java.util.Vector m_lHandlers;
-
- //___________________________________________
- // interface
-
- //-------------------------------------------
- /** initialize a new instance of this class and
- * try to get all needed resources from the config module.
- *
- * @param aCfg
- * provides access to all values of the global
- * config file and to the command line.
- *
- * @param aLog
- * can be used to print out log informations.
- */
- public Merger(ConfigHelper aCfg,
- Logger aLog)
- throws java.lang.Exception
- {
- m_aCfg = aCfg;
- m_aLog = aLog;
-
- m_aFragmentsDir = new java.io.File(m_aCfg.getString(PROP_FRAGMENTSDIR));
- m_aTempDir = new java.io.File(m_aCfg.getString(PROP_TEMPDIR ));
-// m_aOutDir = new java.io.File(m_aCfg.getString(PROP_OUTDIR ));
-
- java.lang.String sDelimiter = m_aCfg.getString(PROP_DELIMITER);
- boolean bTrim = m_aCfg.getBoolean(PROP_TRIM);
- boolean bDecode = m_aCfg.getBoolean(PROP_DECODE);
-
- try
- {
- ConfigHelper aFcfg = new ConfigHelper(m_aCfg.getString(PROP_TCFG), null);
- m_lTypes = aFcfg.getStringList(PROP_ITEMS, sDelimiter, bTrim, bDecode);
- }
- catch(java.util.NoSuchElementException ex1)
- {
- m_lTypes = new java.util.Vector();
- //m_aLog.setWarning("Fragment list of types is missing. Parameter \"items\" seems to be invalid.");
- }
-
- try
- {
- ConfigHelper aFcfg = new ConfigHelper(m_aCfg.getString(PROP_FCFG), null);
- m_lFilters = aFcfg.getStringList(PROP_ITEMS, sDelimiter, bTrim, bDecode);
- }
- catch(java.util.NoSuchElementException ex1)
- {
- m_lFilters = new java.util.Vector();
- //m_aLog.setWarning("Fragment list of filters is missing. Parameter \"items\" seems to be invalid.");
- }
-
- try
- {
- ConfigHelper aFcfg = new ConfigHelper(m_aCfg.getString(PROP_LCFG), null);
- m_lLoaders = aFcfg.getStringList(PROP_ITEMS, sDelimiter, bTrim, bDecode);
- }
- catch(java.util.NoSuchElementException ex1)
- {
- m_lLoaders = new java.util.Vector();
- //m_aLog.setWarning("Fragment list of frame loader objects is missing. Parameter \"items\" seems to be invalid.");
- }
-
- try
- {
- ConfigHelper aFcfg = new ConfigHelper(m_aCfg.getString(PROP_CCFG), null);
- m_lHandlers = aFcfg.getStringList(PROP_ITEMS, sDelimiter, bTrim, bDecode);
- }
- catch(java.util.NoSuchElementException ex1)
- {
- m_lHandlers = new java.util.Vector();
- //m_aLog.setWarning("Fragment list of content handler objects is missing. Parameter \"items\" seems to be invalid.");
- }
- }
-
- //-------------------------------------------
- /** TODO */
- public synchronized void merge()
- throws java.lang.Exception
- {
- java.lang.StringBuffer sBuffer = new java.lang.StringBuffer(1000000);
- java.lang.String sPackage = m_aCfg.getString(PROP_PKG);
-
- m_aLog.setGlobalInfo("create package \""+sPackage+"\" ...");
- m_aLog.setDetailedInfo("generate package header ... ");
-
- sBuffer.append(
- XMLHelper.generateHeader(
- m_aCfg.getString (PROP_XMLVERSION ),
- m_aCfg.getString (PROP_XMLENCODING ),
- m_aCfg.getString (PROP_XMLPATH ),
- m_aCfg.getString (PROP_XMLPACKAGE ),
- m_aCfg.getBoolean(PROP_LANGUAGEPACK, false)));
-
- // counts all transfered fragments
- // Can be used later to decide, if a generated package file
- // contains "nothing"!
- int nItemCount = 0;
-
- for (int i=0; i<4; ++i)
- {
- java.lang.String sSetName = null;
- java.lang.String sSubDir = null;
- java.util.Vector lFragments = null;
-
- try
- {
- switch(i)
- {
- case 0: // types
- {
- m_aLog.setDetailedInfo("generate set for types ... ");
- sSetName = m_aCfg.getString(PROP_SETNAME_TYPES);
- sSubDir = m_aCfg.getString(PROP_SUBDIR_TYPES );
- lFragments = m_lTypes;
- }
- break;
-
- case 1: // filters
- {
- m_aLog.setDetailedInfo("generate set for filter ... ");
- sSetName = m_aCfg.getString(PROP_SETNAME_FILTERS);
- sSubDir = m_aCfg.getString(PROP_SUBDIR_FILTERS );
- lFragments = m_lFilters;
- }
- break;
-
- case 2: // loaders
- {
- m_aLog.setDetailedInfo("generate set for frame loader ... ");
- sSetName = m_aCfg.getString(PROP_SETNAME_LOADERS);
- sSubDir = m_aCfg.getString(PROP_SUBDIR_LOADERS );
- lFragments = m_lLoaders;
- }
- break;
-
- case 3: // handlers
- {
- m_aLog.setDetailedInfo("generate set for content handler ... ");
- sSetName = m_aCfg.getString(PROP_SETNAME_HANDLERS);
- sSubDir = m_aCfg.getString(PROP_SUBDIR_HANDLERS );
- lFragments = m_lHandlers;
- }
- break;
- }
-
- nItemCount += lFragments.size();
-
- getFragments(
- new java.io.File(m_aFragmentsDir, sSubDir),
- sSetName,
- lFragments,
- 1,
- sBuffer);
- }
- catch(java.util.NoSuchElementException exIgnore)
- { continue; }
- }
-
- m_aLog.setDetailedInfo("generate package footer ... ");
- sBuffer.append(XMLHelper.generateFooter());
-
- // Attention!
- // If the package seem to be empty, it make no sense to generate a corresponding
- // xml file. We should suppress writing of this file on disk completly ...
- if (nItemCount < 1)
- {
- m_aLog.setWarning("Package is empty and will not result into a xml file on disk!? Please check configuration file.");
- return;
- }
- m_aLog.setGlobalInfo("package contains "+nItemCount+" items");
-
- java.io.File aPackage = new File(sPackage);
- m_aLog.setGlobalInfo("write temp package \""+aPackage.getPath()); // TODO encoding must be readed from the configuration
- FileHelper.writeEncodedBufferToFile(aPackage, "UTF-8", false, sBuffer); // check for success is done inside this method!
- }
-
- //-------------------------------------------
- /** TODO */
- private void getFragments(java.io.File aDir ,
- java.lang.String sSetName ,
- java.util.Vector lFragments ,
- int nPrettyTabs,
- java.lang.StringBuffer sBuffer )
- throws java.lang.Exception
- {
- if (lFragments.size()<1)
- {
- m_aLog.setWarning("List of fragments is empty!? Will be ignored ...");
- return;
- }
-
- java.util.Enumeration pFragments = lFragments.elements();
- java.lang.String sExtXcu = m_aCfg.getString(PROP_EXTENSION_XCU);
-
- for (int tabs=0; tabs<nPrettyTabs; ++tabs)
- sBuffer.append("\t");
- sBuffer.append("<node oor:name=\""+sSetName+"\">\n");
- ++nPrettyTabs;
-
- // special mode for generating language packs.
- // In such case we must live with some missing fragment files.
- // Reason behind; Not all filters are realy localized.
- // But we dont use a different fragment list. We try to locate
- // any fragment file in its language-pack version ...
- boolean bHandleLanguagePacks = m_aCfg.getBoolean(PROP_LANGUAGEPACK, false);
- boolean bDebug = m_aCfg.getBoolean(PROP_DEBUG , false);
- java.lang.String sEncoding = "UTF-8";
- if (bDebug)
- sEncoding = "UTF-8Special";
-
- while(pFragments.hasMoreElements())
- {
- java.lang.String sFragment = (java.lang.String)pFragments.nextElement();
- java.io.File aFragment = new java.io.File(aDir, sFragment+"."+sExtXcu);
-
- // handle simple files only and check for existence!
- if (!aFragment.exists())
- {
- if (bHandleLanguagePacks)
- {
- m_aLog.setWarning("language fragment \""+aFragment.getPath()+"\" does not exist. Will be ignored.");
- continue;
- }
- else
- throw new java.io.IOException("fragment \""+aFragment.getPath()+"\" does not exists.");
- }
-
- if (!aFragment.isFile())
- {
- m_aLog.setWarning("fragment \""+aFragment.getPath()+"\" seem to be not a valid file.");
- continue;
- }
-
- // copy file content of original fragment
- // Note: A FileNotFoundException will be thrown automaticly by the
- // used reader objects. Let it break this method too. Our calli is interested
- // on such errors :-)
- m_aLog.setDetailedInfo("merge fragment \""+aFragment.getPath()+"\" ...");
- FileHelper.readEncodedBufferFromFile(aFragment, sEncoding, sBuffer);
-
- sBuffer.append("\n");
- }
-
- --nPrettyTabs;
- for (int tabs=0; tabs<nPrettyTabs; ++tabs)
- sBuffer.append("\t");
- sBuffer.append("</node>\n");
- }
-}
diff --git a/filter/source/config/tools/merge/makefile.mk b/filter/source/config/tools/merge/makefile.mk
deleted file mode 100644
index 84175ab43cfb..000000000000
--- a/filter/source/config/tools/merge/makefile.mk
+++ /dev/null
@@ -1,90 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2008 by Sun Microsystems, Inc.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# $RCSfile: makefile.mk,v $
-#
-# $Revision: 1.9.102.1 $
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org 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 version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ = ..$/..$/..$/..
-TARGET = FCFGMerge
-PRJNAME = filter
-PACKAGE = com$/sun$/star$/filter$/config$/tools$/merge
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE: settings.mk
-
-#----- compile .java files -----------------------------------------
-
-OWNCOPY = \
- $(MISC)$/$(TARGET)_copied.done
-
-JARFILES = \
- ridl.jar \
- unoil.jar \
- jurt.jar \
- juh.jar \
- java_uno.jar
-
-CFGFILES = \
- FCFGMerge.cfg
-
-JAVACLASSFILES = \
- $(CLASSDIR)$/$(PACKAGE)$/Merger.class \
- $(CLASSDIR)$/$(PACKAGE)$/FCFGMerge.class
-
-CUSTOMMANIFESTFILE = \
- Manifest.mf
-
-MAXLINELENGTH = 100000
-
-#----- make a jar from compiled files ------------------------------
-
-JARCLASSDIRS = \
- com$/sun$/star$/filter$/config$/tools$/utils \
- com$/sun$/star$/filter$/config$/tools$/merge
-
-JARTARGET = $(TARGET).jar
-
-JARCOMPRESS = TRUE
-
-# --- targets -----------------------------------------------------
-
-.INCLUDE : target.mk
-
-.IF "$(SOLAR_JAVA)" != "" || "$(GUI)"=="OS2"
-ALLTAR : $(OWNCOPY)
-
-.IF "$(JARTARGETN)" != ""
-$(JARTARGETN) : $(OWNCOPY)
-.ENDIF
-
-$(OWNCOPY) : $(CFGFILES)
- -$(MKDIR) $(CLASSDIR)$/$(PACKAGE)
- $(COPY) $? $(CLASSDIR)$/$(PACKAGE) && $(TOUCH) $@
-
-.ENDIF # "$(SOLAR_JAVA)" != ""
diff --git a/filter/source/config/tools/utils/AnalyzeStartupLog.java b/filter/source/config/tools/utils/AnalyzeStartupLog.java
deleted file mode 100644
index 0d074d9aad0e..000000000000
--- a/filter/source/config/tools/utils/AnalyzeStartupLog.java
+++ /dev/null
@@ -1,324 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: AnalyzeStartupLog.java,v $
- * $Revision: 1.4 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org 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 version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-package com.sun.star.filter.config.tools.utils;
-
-
-//_______________________________________________
-// implementation
-public class AnalyzeStartupLog
-{
- private class OperationTime
- {
- /** name the measured operation. */
- public java.lang.String sOperation;
-
- /** contains the time value, when this operation was started. */
- public long nStartTime;
-
- /** contains the time value, when this operation was finished. */
- public long nEndTime;
-
- /** text inside log file, which identifies the start time value. */
- public java.lang.String sStartMsg;
-
- /** text inside log file, which identifies the end time value. */
- public java.lang.String sEndMsg;
- }
-
- //_________________________________
- // main
-
- public static void main(java.lang.String[] lCmdLine)
- {
- int nExit = 0;
- try
- {
- // analyze command line
- ConfigHelper aCmdLine = new ConfigHelper("", lCmdLine);
- java.lang.String sLogDir = aCmdLine.getString("logdir" );
- java.lang.String sDataFile = aCmdLine.getString("datafile");
-
- if (sLogDir == null || sDataFile == null)
- {
- System.err.println("AnalyzeStartupLog lodir=<dir> datafile=<file>");
- System.err.println("E.g.: AnalyzeStartupLog lodir=c:\\temp\\logs datafile=c:\\temp\\data.csv");
- System.exit(--nExit);
- }
-
- // get list of all log files
- boolean bRecursive = true;
- java.util.Vector lLogs = FileHelper.getSystemFilesFromDir(new java.io.File(sLogDir), bRecursive);
- if (lLogs == null || lLogs.isEmpty())
- {
- System.err.println("log dir is empty");
- System.exit(--nExit);
- }
-
- // analyze it
- java.lang.StringBuffer sOut = new java.lang.StringBuffer(1000);
- sOut.append("log;t_cfg_start;t_cfg_end;t_fwk_start;t_fwk_end;t_sfx_start;t_sfx_end;t_types_start;t_types_end;t_filters_start;t_filters_end;");
- sOut.append("t_filters_swriter_start;t_filters_swriter_end;t_filters_sweb_start;t_filters_sweb_end;t_filters_sglobal_start;t_filters_sglobal_end;t_filters_scalc_start;t_filters_scalc_end;t_filters_sdraw_start;t_filters_sdraw_end;t_filters_simpress_start;t_filters_simpress_end;t_filters_schart_start;t_filters_schart_end;t_filters_smath_start;t_filters_smath_end;");
- sOut.append("t_others_start;t_others_end;d_cfg;d_fwk;d_sfx;d_types;d_filters;d_others;d_complete\n");
-
- java.util.Enumeration aIt = lLogs.elements();
- while (aIt.hasMoreElements())
- {
- java.io.File aLog = (java.io.File)aIt.nextElement();
- java.io.FileReader aReader = new java.io.FileReader(aLog);
- java.io.BufferedReader aBuffer = new java.io.BufferedReader(aReader);
-
- long t_cfg_start = 0;
- long t_cfg_end = 0;
-
- long t_fwk_start = 0;
- long t_fwk_end = 0;
-
- long t_sfx_start = 0;
- long t_sfx_end = 0;
-
- long t_types_start = 0;
- long t_types_end = 0;
-
- long t_filters_start = 0;
- long t_filters_end = 0;
-
- long t_filters_swriter_start = 0;
- long t_filters_swriter_end = 0;
-
- long t_filters_sweb_start = 0;
- long t_filters_sweb_end = 0;
-
- long t_filters_sglobal_start = 0;
- long t_filters_sglobal_end = 0;
-
- long t_filters_scalc_start = 0;
- long t_filters_scalc_end = 0;
-
- long t_filters_sdraw_start = 0;
- long t_filters_sdraw_end = 0;
-
- long t_filters_simpress_start = 0;
- long t_filters_simpress_end = 0;
-
- long t_filters_schart_start = 0;
- long t_filters_schart_end = 0;
-
- long t_filters_smath_start = 0;
- long t_filters_smath_end = 0;
-
- long t_others_start = 0;
- long t_others_end = 0;
-
- while (true)
- {
- java.lang.String sLine = aBuffer.readLine();
- if (sLine == null)
- break;
-
- if (sLine.endsWith("| framework (as96863) ::FilterCache::FilterCache : { creation ConfigItem [file=standard, version=6, mode=3]"))
- t_cfg_start = new java.lang.Long(sLine.substring(0, 6)).longValue();
- else
- if (sLine.endsWith("| framework (as96863) ::FilterCache::FilterCache : } creation ConfigItem"))
- t_cfg_end = new java.lang.Long(sLine.substring(0, 6)).longValue();
- else
- if (sLine.endsWith("| framework (as96863) ::FilterCache::FilterCache : { reading TypeDetection.xml"))
- t_fwk_start = new java.lang.Long(sLine.substring(0, 6)).longValue();
- else
- if (sLine.endsWith("| framework (as96863) ::FilterCache::FilterCache : } reading TypeDetection.xml"))
- t_fwk_end = new java.lang.Long(sLine.substring(0, 6)).longValue();
- else
- if (sLine.endsWith("{ framework (as96863) ::FilterCFGAccess::impl_loadTypes"))
- t_types_start = new java.lang.Long(sLine.substring(0, 6)).longValue();
- else
- if (sLine.endsWith("} framework (as96863) ::FilterCFGAccess::impl_loadTypes"))
- t_types_end = new java.lang.Long(sLine.substring(0, 6)).longValue();
- else
- if (sLine.endsWith("{ framework (as96863) ::FilterCFGAccess::impl_loadFilters"))
- t_filters_start = new java.lang.Long(sLine.substring(0, 6)).longValue();
- else
- if (sLine.endsWith("} framework (as96863) ::FilterCFGAccess::impl_loadFilters"))
- t_filters_end = new java.lang.Long(sLine.substring(0, 6)).longValue();
- else
- if (sLine.endsWith("{ reading FilterGroup [swriter]"))
- t_filters_swriter_start = new java.lang.Long(sLine.substring(0, 6)).longValue();
- else
- if (sLine.endsWith("} reading FilterGroup [swriter]"))
- t_filters_swriter_end = new java.lang.Long(sLine.substring(0, 6)).longValue();
- else
- if (sLine.endsWith("{ reading FilterGroup [sweb]"))
- t_filters_sweb_start = new java.lang.Long(sLine.substring(0, 6)).longValue();
- else
- if (sLine.endsWith("} reading FilterGroup [sweb]"))
- t_filters_sweb_end = new java.lang.Long(sLine.substring(0, 6)).longValue();
- else
- if (sLine.endsWith("{ reading FilterGroup [sglobal]"))
- t_filters_sglobal_start = new java.lang.Long(sLine.substring(0, 6)).longValue();
- else
- if (sLine.endsWith("} reading FilterGroup [sglobal]"))
- t_filters_sglobal_end = new java.lang.Long(sLine.substring(0, 6)).longValue();
- else
- if (sLine.endsWith("{ reading FilterGroup [scalc]"))
- t_filters_scalc_start = new java.lang.Long(sLine.substring(0, 6)).longValue();
- else
- if (sLine.endsWith("} reading FilterGroup [scalc]"))
- t_filters_scalc_end = new java.lang.Long(sLine.substring(0, 6)).longValue();
- else
- if (sLine.endsWith("{ reading FilterGroup [sdraw]"))
- t_filters_sdraw_start = new java.lang.Long(sLine.substring(0, 6)).longValue();
- else
- if (sLine.endsWith("} reading FilterGroup [sdraw]"))
- t_filters_sdraw_end = new java.lang.Long(sLine.substring(0, 6)).longValue();
- else
- if (sLine.endsWith("{ reading FilterGroup [simpress]"))
- t_filters_simpress_start = new java.lang.Long(sLine.substring(0, 6)).longValue();
- else
- if (sLine.endsWith("} reading FilterGroup [simpress]"))
- t_filters_simpress_end = new java.lang.Long(sLine.substring(0, 6)).longValue();
- else
- if (sLine.endsWith("{ reading FilterGroup [schart]"))
- t_filters_schart_start = new java.lang.Long(sLine.substring(0, 6)).longValue();
- else
- if (sLine.endsWith("} reading FilterGroup [schart]"))
- t_filters_schart_end = new java.lang.Long(sLine.substring(0, 6)).longValue();
- else
- if (sLine.endsWith("{ reading FilterGroup [smath]"))
- t_filters_smath_start = new java.lang.Long(sLine.substring(0, 6)).longValue();
- else
- if (sLine.endsWith("} reading FilterGroup [smath]"))
- t_filters_smath_end = new java.lang.Long(sLine.substring(0, 6)).longValue();
- else
- if (sLine.endsWith("{ framework (as96863) ::FilterCFGAccess::impl_loadDetectors"))
- t_others_start = new java.lang.Long(sLine.substring(0, 6)).longValue();
- else
- if (sLine.endsWith("} framework (as96863) ::FilterCFGAccess::impl_loadContentHandlers"))
- t_others_end = new java.lang.Long(sLine.substring(0, 6)).longValue();
- else
- if (sLine.endsWith("} framework (as96863) ::FilterCache::FilterCache"))
- t_sfx_start = new java.lang.Long(sLine.substring(0, 6)).longValue();
- else
- if (sLine.endsWith("} desktop (lo119109) OfficeWrapper::OfficeWrapper"))
- t_sfx_end = new java.lang.Long(sLine.substring(0, 6)).longValue();
- }
-
- sOut.append(aLog.getName() );
- sOut.append(";" );
- sOut.append(t_cfg_start );
- sOut.append(";" );
- sOut.append(t_cfg_end );
- sOut.append(";" );
- sOut.append(t_fwk_start );
- sOut.append(";" );
- sOut.append(t_fwk_end );
- sOut.append(";" );
- sOut.append(t_sfx_start );
- sOut.append(";" );
- sOut.append(t_sfx_end );
- sOut.append(";" );
- sOut.append(t_types_start );
- sOut.append(";" );
- sOut.append(t_types_end );
- sOut.append(";" );
- sOut.append(t_filters_start );
- sOut.append(";" );
- sOut.append(t_filters_end );
- sOut.append(";" );
-
- sOut.append(t_filters_swriter_start );
- sOut.append(";" );
- sOut.append(t_filters_swriter_end );
- sOut.append(";" );
- sOut.append(t_filters_sweb_start );
- sOut.append(";" );
- sOut.append(t_filters_sweb_end );
- sOut.append(";" );
- sOut.append(t_filters_sglobal_start );
- sOut.append(";" );
- sOut.append(t_filters_sglobal_end );
- sOut.append(";" );
- sOut.append(t_filters_scalc_start );
- sOut.append(";" );
- sOut.append(t_filters_scalc_end );
- sOut.append(";" );
- sOut.append(t_filters_sdraw_start );
- sOut.append(";" );
- sOut.append(t_filters_sdraw_end );
- sOut.append(";" );
- sOut.append(t_filters_simpress_start );
- sOut.append(";" );
- sOut.append(t_filters_simpress_end );
- sOut.append(";" );
- sOut.append(t_filters_schart_start );
- sOut.append(";" );
- sOut.append(t_filters_schart_end );
- sOut.append(";" );
- sOut.append(t_filters_smath_start );
- sOut.append(";" );
- sOut.append(t_filters_smath_end );
- sOut.append(";" );
-
- sOut.append(t_others_start );
- sOut.append(";" );
- sOut.append(t_others_end );
- sOut.append(";" );
- sOut.append(t_cfg_end -t_cfg_start );
- sOut.append(";" );
- sOut.append(t_fwk_end -t_fwk_start );
- sOut.append(";" );
- sOut.append(t_sfx_end -t_sfx_start );
- sOut.append(";" );
- sOut.append(t_types_end -t_types_start );
- sOut.append(";" );
- sOut.append(t_filters_end-t_filters_start);
- sOut.append(";" );
- sOut.append(t_others_end -t_others_start );
- sOut.append(";" );
- sOut.append(t_others_end -t_cfg_start );
- sOut.append("\n" );
-
- aBuffer.close();
- }
-
- java.io.FileWriter aCSV = new java.io.FileWriter(sDataFile);
- java.lang.String sData = sOut.toString();
- aCSV.write(sData, 0, sData.length());
- aCSV.flush();
- aCSV.close();
- }
- catch(java.lang.Throwable exAny)
- {
- System.err.println(exAny.getMessage());
- exAny.printStackTrace();
- System.exit(--nExit);
- }
-
- System.exit(0);
- }
-}
diff --git a/filter/source/config/tools/utils/Cache.java b/filter/source/config/tools/utils/Cache.java
deleted file mode 100644
index fa87538a6565..000000000000
--- a/filter/source/config/tools/utils/Cache.java
+++ /dev/null
@@ -1,2444 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: Cache.java,v $
- * $Revision: 1.7 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org 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 version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-package com.sun.star.filter.config.tools.utils;
-
-
-//_______________________________________________
-
-/**
- * It implements a container for all possible entries which are part of the type
- * and filter mechanism of an office - means all items of the configuration file
- * "TypeDetection". How these entries will be readed or written can be switch
- * in different modes. That would make it possible to edit an xml directly or
- * to contact a running office instance.
- *
- *
- */
-public class Cache
-{
- //___________________________________________
- // public const
-
- /** identifies a file type item of this cache. */
- public static final int E_TYPE = 0;
-
- /** identifies a filter item of this cache. */
- public static final int E_FILTER = 1;
-
- /** identifies a detect service item of this cache. */
- public static final int E_DETECTSERVICE = 2;
-
- /** identifies a frame loader item of this cache. */
- public static final int E_FRAMELOADER = 3;
-
- /** identifies a content handler item of this cache. */
- public static final int E_CONTENTHANDLER = 4;
-
- /** indicates an unsupported xml format => error! */
- public static final int FORMAT_UNSUPPORTED = -1;
-
- /** identify the configuration format of an office 6.0.
- * The own formated data string is used. */
- public static final int FORMAT_60 = 0;
-
- /** identify the configuration format of an office 6.y.
- * Properties are realy xml tags again. */
- public static final int FORMAT_6Y = 1;
-
- /** identify the configuration format which is used inside
- * this tooling project. */
- public static final int FORMAT_INTERNAL = 2;
-
- /** right value for a command line parameter to define a 6.0 version. */
- public static final java.lang.String CMDVAL_FORMAT_60 = "6.0";
-
- /** right value for a command line parameter to define a 6.Y version. */
- public static final java.lang.String CMDVAL_FORMAT_6Y = "6.Y";
-
- /** right value for a command line parameter to define an internal xml version! */
- public static final java.lang.String CMDVAL_FORMAT_INTERNAL = "internal";
-
- // general
- public static final java.lang.String PROPNAME_DATA = "Data";
- public static final java.lang.String PROPNAME_NAME = "Name";
- public static final java.lang.String PROPNAME_UINAME = "UIName";
- public static final java.lang.String PROPNAME_UINAMES = "UINames";
-
- // type 6.0 ...
- public static final java.lang.String PROPNAME_MEDIATYPE = "MediaType";
- public static final java.lang.String PROPNAME_PREFERRED = "Preferred";
- public static final java.lang.String PROPNAME_CLIPBOARDFORMAT = "ClipboardFormat";
- public static final java.lang.String PROPNAME_DOCUMENTICONID = "DocumentIconID";
- public static final java.lang.String PROPNAME_URLPATTERN = "URLPattern";
- public static final java.lang.String PROPNAME_EXTENSIONS = "Extensions";
- // ... +6.y
- public static final java.lang.String PROPNAME_UIORDER = "UIOrder";
- public static final java.lang.String PROPNAME_PREFERREDFILTER = "PreferredFilter";
- public static final java.lang.String PROPNAME_DETECTSERVICE = "DetectService";
- public static final java.lang.String PROPNAME_FRAMELOADER = "FrameLoader";
- public static final java.lang.String PROPNAME_CONTENTHANDLER = "ContentHandler";
-
- // filter
- public static final java.lang.String PROPNAME_DOCUMENTSERVICE = "DocumentService";
- public static final java.lang.String PROPNAME_FILEFORMATVERSION = "FileFormatVersion";
- public static final java.lang.String PROPNAME_FILTERSERVICE = "FilterService";
- public static final java.lang.String PROPNAME_FLAGS = "Flags";
- public static final java.lang.String PROPNAME_ORDER = "Order"; // -6.y
- public static final java.lang.String PROPNAME_TEMPLATENAME = "TemplateName";
- public static final java.lang.String PROPNAME_TYPE = "Type";
- public static final java.lang.String PROPNAME_UICOMPONENT = "UIComponent";
- public static final java.lang.String PROPNAME_USERDATA = "UserData";
-
- // frame loader / detect services / content handler
- public static final java.lang.String PROPNAME_TYPES = "Types";
-
- //___________________________________________
- // private const
-
- private static final java.lang.String FILTERSERVICE_NATIVEWARPPER = "com.sun.star.filter.NativeFilterWrapper";
- private static final java.lang.String GENERIC_DETECTSERVICE = "com.sun.star.comp.office.FrameLoader";
-
- /** its the name of the cfg set, which contains all types. */
- private static final java.lang.String CFGNODE_TYPES = "Types";
-
- /** its the name of the cfg set, which contains all filters. */
- private static final java.lang.String CFGNODE_FILTERS = "Filters";
-
- /** its the name of the cfg set, which contains all detect services. */
- private static final java.lang.String CFGNODE_DETECTSERVICES = "DetectServices";
-
- /** its the name of the cfg set, which contains all frame loaders. */
- private static final java.lang.String CFGNODE_FRAMELOADERS = "FrameLoaders";
-
- /** its the name of the cfg set, which contains all content handlers. */
- private static final java.lang.String CFGNODE_CONTENTHANDLERS = "ContentHandlers";
-
- // names for filter flags
- private static final java.lang.String FLAGNAME_3RDPARTYFILTER = "3RDPARTYFILTER";
- private static final java.lang.String FLAGNAME_ALIEN = "ALIEN";
- private static final java.lang.String FLAGNAME_ASYNCHRON = "ASYNCHRON";
- private static final java.lang.String FLAGNAME_BROWSERPREFERRED = "BROWSERPREFERRED";
- private static final java.lang.String FLAGNAME_CONSULTSERVICE = "CONSULTSERVICE";
- private static final java.lang.String FLAGNAME_DEFAULT = "DEFAULT";
- private static final java.lang.String FLAGNAME_EXPORT = "EXPORT";
- private static final java.lang.String FLAGNAME_IMPORT = "IMPORT";
- private static final java.lang.String FLAGNAME_INTERNAL = "INTERNAL";
- private static final java.lang.String FLAGNAME_NOTINCHOOSER = "NOTINCHOOSER";
- private static final java.lang.String FLAGNAME_NOTINFILEDIALOG = "NOTINFILEDIALOG";
- private static final java.lang.String FLAGNAME_NOTINSTALLED = "NOTINSTALLED";
- private static final java.lang.String FLAGNAME_OWN = "OWN";
- private static final java.lang.String FLAGNAME_PACKED = "PACKED";
- private static final java.lang.String FLAGNAME_PREFERRED = "PREFERRED";
- private static final java.lang.String FLAGNAME_READONLY = "READONLY";
- private static final java.lang.String FLAGNAME_SILENTEXPORT = "SILENTEXPORT";
- private static final java.lang.String FLAGNAME_TEMPLATE = "TEMPLATE";
- private static final java.lang.String FLAGNAME_TEMPLATEPATH = "TEMPLATEPATH";
- private static final java.lang.String FLAGNAME_USESOPTIONS = "USESOPTIONS";
-
- private static final java.lang.String FLAGNAME_COMBINED = "COMBINED";
- private static final java.lang.String FLAGNAME_SUPPORTSSELECTION= "SUPPORTSSELECTION";
-
- // values for filter flags
- private static final int FLAGVAL_3RDPARTYFILTER = 0x00080000; // 524288
- private static final int FLAGVAL_ALIEN = 0x00000040; // 64
- private static final int FLAGVAL_ALL = 0xffffffff; // 4294967295
- private static final int FLAGVAL_ASYNCHRON = 0x00004000; // 16384
- private static final int FLAGVAL_BROWSERPREFERRED = 0x00400000; // 4194304
- private static final int FLAGVAL_CONSULTSERVICE = 0x00040000; // 262144
- private static final int FLAGVAL_DEFAULT = 0x00000100; // 256
- private static final int FLAGVAL_EXPORT = 0x00000002; // 2
- private static final int FLAGVAL_IMPORT = 0x00000001; // 1
- private static final int FLAGVAL_INTERNAL = 0x00000008; // 8
- private static final int FLAGVAL_NOTINCHOOSER = 0x00002000; // 8192
- private static final int FLAGVAL_NOTINFILEDIALOG = 0x00001000; // 4096
- private static final int FLAGVAL_NOTINSTALLED = 0x00020000; // 131072
- private static final int FLAGVAL_OWN = 0x00000020; // 32
- private static final int FLAGVAL_PACKED = 0x00100000; // 1048576
- private static final int FLAGVAL_PREFERRED = 0x10000000; // 268435456
- private static final int FLAGVAL_READONLY = 0x00010000; // 65536
- private static final int FLAGVAL_SILENTEXPORT = 0x00200000; // 2097152
- private static final int FLAGVAL_TEMPLATE = 0x00000004; // 4
- private static final int FLAGVAL_TEMPLATEPATH = 0x00000010; // 16
- private static final int FLAGVAL_USESOPTIONS = 0x00000080; // 128
-
- private static final int FLAGVAL_COMBINED = 0x00800000; // ...
- private static final int FLAGVAL_SUPPORTSSELECTION = 0x00000400; // 1024
-
- //___________________________________________
- // member
-
- /** list of all located types.
- * Format: [string,HashMap]
- */
- private java.util.HashMap m_lTypes;
-
- /** list of all located filters.
- * Format: [string,HashMap]
- */
- private java.util.HashMap m_lFilters;
-
- /** list of all located detect services.
- * Format: [string,HashMap]
- */
- private java.util.HashMap m_lDetectServices;
-
- /** list of all located frame loader.
- * Format: [string,HashMap]
- */
- private java.util.HashMap m_lFrameLoaders;
-
- /** list of all located content handler.
- * Format: [string,HashMap]
- */
- private java.util.HashMap m_lContentHandlers;
-
- /** contains all analyzed relations between
- * filters and types. The key is an internal
- * type name (can be used as reference into the
- * list m_lTypes) and the value is a Vector of all
- * internal filter names, which are registered for
- * this type.
- * Format: [string, Vector]
- */
- private java.util.HashMap m_lFilterToTypeRegistrations;
-
- private int m_nDoubleRegisteredFilters;
- private int m_nTypesForFilters;
- private int m_nTypesForDetectServices;
- private int m_nTypesForFrameLoaders;
- private int m_nTypesForContentHandlers;
-
- /** can be used to log different informations. */
- private Logger m_aDebug;
-
- //___________________________________________
- // interface
-
- /** standard ctor.
- *
- * Initialize an empty cache instance. You have to use
- * on of the fromXXX() methods to fill it from different
- * sources with content.
- */
- public Cache(Logger aDebug)
- {
- reset();
- m_aDebug = aDebug;
- }
-
- //___________________________________________
-
- /** free memory and set default values on all members.
- */
- public synchronized void reset()
- {
- m_lTypes = new java.util.HashMap();
- m_lFilters = new java.util.HashMap();
- m_lFrameLoaders = new java.util.HashMap();
- m_lDetectServices = new java.util.HashMap();
- m_lContentHandlers = new java.util.HashMap();
- m_lFilterToTypeRegistrations = new java.util.HashMap();
- m_aDebug = new Logger();
- m_nDoubleRegisteredFilters = 0;
- m_nTypesForFilters = 0;
- m_nTypesForDetectServices = 0;
- m_nTypesForFrameLoaders = 0;
- m_nTypesForContentHandlers = 0;
- }
-
- //___________________________________________
-
- /** converts a string representation of an xml format
- * to its int value, which must be used at some interface
- * methods of this cache.
- *
- * If the given string does not match to any well known format,
- * the return value will be FORMAT_UNSUPPORTED. The calli have to
- * check that. Otherwhise a called interface method at this cache
- * instance will be rejected by an exception!
- *
- * @param sFormat
- * the string representation
- * Must be one of our public const values from type CMDVAL_FORMAT_xxx.
- *
- * @return [int]
- * the int representation.
- * Will be one of our public const values from type FORMAT_xxx.
- */
- public static int mapFormatString2Format(java.lang.String sFormat)
- {
- int nFormat = FORMAT_UNSUPPORTED;
- if (sFormat.equalsIgnoreCase(CMDVAL_FORMAT_60))
- nFormat = FORMAT_60;
- else
- if (sFormat.equalsIgnoreCase(CMDVAL_FORMAT_6Y))
- nFormat = FORMAT_6Y;
- else
- if (sFormat.equalsIgnoreCase(CMDVAL_FORMAT_INTERNAL))
- nFormat = FORMAT_INTERNAL;
- return nFormat;
- }
-
- //___________________________________________
-
- /** return some statistic values.
- *
- * Such values can be: - count of container items,
- * - ...
- *
- * @return [java.lang.String]
- * a formated string, which contains al statistic data.
- */
- public synchronized java.lang.String getStatistics()
- {
- java.lang.StringBuffer sBuffer = new java.lang.StringBuffer(256);
-
- sBuffer.append("types = "+m_lTypes.size() +"\n");
- sBuffer.append("filters = "+m_lFilters.size() +"\n");
- sBuffer.append("detect services = "+m_lDetectServices.size() +"\n");
- sBuffer.append("frame loaders = "+m_lFrameLoaders.size() +"\n");
- sBuffer.append("content handler = "+m_lContentHandlers.size() +"\n");
- sBuffer.append("double registered filters = "+m_nDoubleRegisteredFilters+"\n");
- sBuffer.append("types used by filters = "+m_nTypesForFilters +"\n");
- sBuffer.append("types used by detect services = "+m_nTypesForDetectServices +"\n");
- sBuffer.append("types used by frame loaders = "+m_nTypesForFrameLoaders +"\n");
- sBuffer.append("types used by content handlers = "+m_nTypesForContentHandlers+"\n");
-
- return sBuffer.toString();
- }
-
- //___________________________________________
-
- /** reset this cache and fill it with new values using the given XML file.
- *
- * @param aXML
- * must be a system file of a suitable XML file, which
- * include all neccessary type/filter items.
- *
- * @param nFormat
- * identifies the format of the specified xml file,
- * which must be interpreted.
- */
- public synchronized void fromXML(java.io.File aXML ,
- int nFormat)
- throws java.lang.Exception
- {
- // clear this cache
- reset();
-
- // parse it
- javax.xml.parsers.DocumentBuilderFactory aFactory = javax.xml.parsers.DocumentBuilderFactory.newInstance();
- /* Attention:
- * This call is important. It force right handling of entities during parsing and(!)
- * writing. It let all possible signs for entities or it's quoted representations
- * untouched. So this class don't change the original signs of the original file.
- * Means:
- * <ul>
- * <li>(') => (')</li>
- * <li>(") => (")</li>
- * <li>(>) => (&gt;)</li>
- * <li>(<) => (&lt;)</li>
- * <li>(&gt;) => (&gt;)</li>
- * <li>(&amp;) => (&amp;)</li>
- * <li>...</li>
- * </ul>
- */
-
- System.out.println("TODO: must be adapted to java 1.3 :-(");
- System.exit(-1);
-//TODO_JAVA aFactory.setExpandEntityReferences(false);
-
- javax.xml.parsers.DocumentBuilder aBuilder = aFactory.newDocumentBuilder();
- org.w3c.dom.Document aDOM = aBuilder.parse(aXML);
- org.w3c.dom.Element aRoot = aDOM.getDocumentElement();
-
- // step over all sets
- java.util.Vector lSetNodes = XMLHelper.extractChildNodesByTagName(aRoot, XMLHelper.XMLTAG_NODE);
- java.util.Enumeration it1 = lSetNodes.elements();
- while (it1.hasMoreElements())
- {
- // try to find out, which set should be read
- org.w3c.dom.Node aSetNode = (org.w3c.dom.Node)it1.nextElement();
- java.lang.String sSetName = XMLHelper.extractNodeAttribByName(aSetNode, XMLHelper.XMLATTRIB_OOR_NAME);
- if (sSetName == null)
- throw new java.io.IOException("unsupported format: could not extract set name on node ...\n"+aSetNode);
-
- // map some generic interfaces to the right members!
- int eType = -1 ;
- java.util.HashMap rMap = null;
-
- if (sSetName.equals(CFGNODE_TYPES))
- {
- eType = E_TYPE;
- rMap = m_lTypes;
- }
- else
- if (sSetName.equals(CFGNODE_FILTERS))
- {
- eType = E_FILTER;
- rMap = m_lFilters;
- }
- else
- if (sSetName.equals(CFGNODE_FRAMELOADERS))
- {
- eType = E_FRAMELOADER;
- rMap = m_lFrameLoaders;
- }
- else
- if (sSetName.equals(CFGNODE_DETECTSERVICES))
- {
- eType = E_DETECTSERVICE;
- rMap = m_lDetectServices;
- }
- else
- if (sSetName.equals(CFGNODE_CONTENTHANDLERS))
- {
- eType = E_CONTENTHANDLER;
- rMap = m_lContentHandlers;
- }
- else
- throw new java.io.IOException("unsupported format: unknown set name [\""+sSetName+"\"] detected on node ...\n"+aSetNode);
-
- // load all set entries
- java.util.Vector lChildNodes = XMLHelper.extractChildNodesByTagName(aSetNode, XMLHelper.XMLTAG_NODE);
- java.util.Enumeration it2 = lChildNodes.elements();
- while (it2.hasMoreElements())
- {
- org.w3c.dom.Node aChildNode = (org.w3c.dom.Node)it2.nextElement();
- java.lang.String sChildName = XMLHelper.extractNodeAttribByName(aChildNode, XMLHelper.XMLATTRIB_OOR_NAME);
- if (sChildName == null)
- throw new java.io.IOException("unsupported format: could not extract child node name on node ...\n"+aChildNode);
- java.util.HashMap aPropSet = null;
-
- // Note: Our internal format is different from the source format!
- java.util.HashMap aTempSet = XMLHelper.convertNodeToPropSet(aChildNode);
- switch(eType)
- {
- case E_TYPE :
- {
- aPropSet = Cache.convertTypePropsToInternal(aTempSet, nFormat);
- m_aDebug.setDetailedInfo("type [\""+sChildName+"\"] converted to internal format");
- }
- break;
-
- case E_FILTER :
- {
- aPropSet = Cache.convertFilterPropsToInternal(aTempSet, nFormat);
- m_aDebug.setDetailedInfo("filter [\""+sChildName+"\"] converted to internal format");
- }
- break;
-
- case E_DETECTSERVICE :
- {
- aPropSet = Cache.convertDetectServicePropsToInternal(aTempSet, nFormat);
- m_aDebug.setDetailedInfo("detect service [\""+sChildName+"\"] converted to internal format");
- }
- break;
-
- case E_FRAMELOADER :
- {
- aPropSet = Cache.convertFrameLoaderPropsToInternal(aTempSet, nFormat);
- m_aDebug.setDetailedInfo("frame loader [\""+sChildName+"\"] converted to internal format");
- }
- break;
-
- case E_CONTENTHANDLER :
- {
- aPropSet = Cache.convertContentHandlerPropsToInternal(aTempSet, nFormat);
- m_aDebug.setDetailedInfo("content handler [\""+sChildName+"\"] converted to internal format");
- }
- break;
- }
- m_aDebug.setDetailedInfo("props = "+aTempSet);
- rMap.put(sChildName, aPropSet);
- }
- }
- }
-
- //___________________________________________
-
- /** create some hml views of the current content of this cache.
- *
- * The given directory is used to create different html files
- * there. Every of them show another aspect of this cache.
- * E.g.: - all type/filter properties
- * - relation ships between types/filters/loaders etc.
- *
- * @param aDirectory
- * points to a system directory, which
- * can be used completely(!) to generate
- * the results there.
- *
- * @param nFormat
- * specify in which context the cache items should be
- * interpreted.
- */
- public synchronized void toHTML(java.io.File aDirectory,
- int nFormat ,
- java.lang.String sEncoding )
- throws java.lang.Exception
- {
- if (nFormat != FORMAT_6Y)
- throw new java.lang.Exception("HTML views are supported for the new 6.y format only yet.");
-
- java.lang.StringBuffer sRelationView = new java.lang.StringBuffer(1000);
- sRelationView.append("<html><header><title>Relation View</title></header><body>");
- sRelationView.append("<table border=1>");
- sRelationView.append("<tr><td><b>type</b></td><td><b>detect service</b></td><td><b>preferred filter</b></td><td><b>frame loader</b></td><td><b>content handler</b></td></tr>");
-
- java.util.Iterator aIt = m_lTypes.keySet().iterator();
- while (aIt.hasNext())
- {
- java.lang.String sType = (java.lang.String)aIt.next();
- java.util.HashMap aType = (java.util.HashMap)m_lTypes.get(sType);
-
- sRelationView.append("<tr>");
- sRelationView.append("<td>"+sType+"</td>");
-
- java.lang.String sVal = (java.lang.String)aType.get(PROPNAME_DETECTSERVICE);
- if (sVal == null || sVal.length()<1)
- sRelationView.append("<td> - </td>");
- else
- sRelationView.append("<td>"+sVal+"</td>");
-
- sVal = (java.lang.String)aType.get(PROPNAME_PREFERREDFILTER);
- if (sVal == null || sVal.length()<1)
- sRelationView.append("<td> - </td>");
- else
- sRelationView.append("<td>"+sVal+"</td>");
-
- sVal = (java.lang.String)aType.get(PROPNAME_FRAMELOADER);
- if (sVal == null || sVal.length()<1)
- sRelationView.append("<td> - </td>");
- else
- sRelationView.append("<td>"+sVal+"</td>");
-
- sVal = (java.lang.String)aType.get(PROPNAME_CONTENTHANDLER);
- if (sVal == null || sVal.length()<1)
- sRelationView.append("<td> - </td>");
- else
- sRelationView.append("<td>"+sVal+"</td>");
-
- sRelationView.append("</tr>");
- }
-
- sRelationView.append("</table>");
- sRelationView.append("</body>");
-
- FileHelper.writeEncodedBufferToFile(new java.io.File(aDirectory, "relation_view.html"), sEncoding, false, sRelationView);
-
- java.util.HashMap lFilters2TypeRegistration = new java.util.HashMap();
- aIt = m_lFilters.keySet().iterator();
- while (aIt.hasNext())
- {
- java.lang.String sFilter = (java.lang.String)aIt.next();
- java.util.HashMap aFilter = (java.util.HashMap)m_lFilters.get(sFilter);
- java.lang.String sType = (java.lang.String)aFilter.get(PROPNAME_TYPE);
-
- java.util.Vector lFilters = (java.util.Vector)lFilters2TypeRegistration.get(sType);
- if (lFilters == null)
- lFilters = new java.util.Vector();
- lFilters.add(sFilter);
- lFilters2TypeRegistration.put(sType, lFilters);
- }
-
- java.lang.StringBuffer sType2FiltersView = new java.lang.StringBuffer(1000);
- sType2FiltersView.append("<html><header><title>Type2Filters View</title></header><body>");
- sType2FiltersView.append("<table border=1>");
- sType2FiltersView.append("<tr><td><b>type</b></td><td><b>filters</b></td></tr>");
-
- aIt = lFilters2TypeRegistration.keySet().iterator();
- while (aIt.hasNext())
- {
- java.lang.String sType = (java.lang.String)aIt.next();
- java.util.Vector lFilters = (java.util.Vector)lFilters2TypeRegistration.get(sType);
-
- sType2FiltersView.append("<tr><td>"+sType+"</td><td>");
- java.util.Enumeration aEn = lFilters.elements();
- while(aEn.hasMoreElements())
- sType2FiltersView.append(aEn.nextElement()+"<br>");
- sType2FiltersView.append("</td></tr>");
- }
-
- sType2FiltersView.append("</table>");
- sType2FiltersView.append("</body>");
-
- FileHelper.writeEncodedBufferToFile(new java.io.File(aDirectory, "type2filters_view.html"), sEncoding, false, sType2FiltersView);
- }
-
- //___________________________________________
-
- /** converts all items of this cache to its xml representation
- * and write it to the given file.
- *
- * @param aXML
- * the target file for output.
- *
- * @param nFormat
- * the requested xml format.
- * see const values FORMAT_xxx too.
- *
- * @param sEncoding
- * specify the file encoding for the generated xml file.
- *
- * @throws [java.lang.Exception]
- * if something fail during convertion.
- */
- public synchronized void toXML(java.io.File aXML ,
- int nFormat ,
- java.lang.String sEncoding)
- throws java.lang.Exception
- {
- java.lang.StringBuffer sXML = new java.lang.StringBuffer(500000);
-
- for (int i=0; i<5; ++i)
- {
- // define right sub container
- java.lang.String sSetName = null;
- java.util.HashMap rMap = null;
- int eType = -1;
-
- switch(i)
- {
- case 0 :
- {
- sSetName = CFGNODE_TYPES;
- rMap = m_lTypes;
- eType = E_TYPE;
- }
- break;
-
- case 1 :
- {
- sSetName = CFGNODE_FILTERS;
- rMap = m_lFilters;
- eType = E_FILTER;
- }
- break;
-
- case 2 :
- {
- sSetName = CFGNODE_DETECTSERVICES;
- rMap = m_lDetectServices;
- eType = E_DETECTSERVICE;
- }
- break;
-
- case 3 :
- {
- sSetName = CFGNODE_FRAMELOADERS;
- rMap = m_lFrameLoaders;
- eType = E_FRAMELOADER;
- }
- break;
-
- case 4 :
- {
- sSetName = CFGNODE_CONTENTHANDLERS;
- rMap = m_lContentHandlers;
- eType = E_CONTENTHANDLER;
- }
- break;
- }
-
- // generate set
- sXML.append("<node oor:name=\""+sSetName+"\" oor:op=\"replace\">\n");
- java.util.Iterator it = rMap.keySet().iterator();
- while(it.hasNext())
- {
- java.lang.String sItem = (java.lang.String)it.next();
- sXML.append("<node oor:name=\""+sItem+"\" oor:op=\"replace\">\n");
- sXML.append(getItemAsXML(eType, sItem, nFormat));
- sXML.append("</node>\n");
- }
- sXML.append("</node>\n");
- }
-
- java.io.FileOutputStream aStream = new java.io.FileOutputStream(aXML.getAbsolutePath(), false);
- java.io.OutputStreamWriter aWriter = new java.io.OutputStreamWriter(aStream, sEncoding);
- java.lang.String sOut = sXML.toString();
- aWriter.write(sOut, 0, sOut.length());
- aWriter.flush();
- aWriter.close();
- }
-
- //___________________________________________
-
- /** converts a type property set from internal format
- * to an external one.
- *
- * @param aMap
- * points to the item, which should be converted.
- *
- * @param nFormat
- * specify the requested output format.
- *
- * @return [java.util.HashMap]
- * contains the properties in the requested format.
- *
- * @throws [java.lang.Exception
- * if something fail during convertion.
- */
- private static java.util.HashMap convertTypePropsToExternal(java.util.HashMap aMap ,
- int nFormat)
- throws java.lang.Exception
- {
- java.util.HashMap aResultMap = new java.util.HashMap();
- // copy Name property ... if it exists!
- if (aMap.containsKey(PROPNAME_NAME))
- aResultMap.put(PROPNAME_NAME, aMap.get(PROPNAME_NAME));
- switch(nFormat)
- {
- //-----------------------------------
- case FORMAT_60 :
- {
- // copy UIName property unchanged
- aResultMap.put(PROPNAME_UINAME, aMap.get(PROPNAME_UINAME));
-
- // ignore properties "UIOrder", "PreferredFilter", "DetectService"
- // They are not supported for 6.0 types.
-
- // pack all other properties to one "Data" string value
- java.lang.StringBuffer sData = new java.lang.StringBuffer(256);
-
- sData.append(aMap.get(PROPNAME_PREFERRED));
- sData.append(",");
- sData.append(aMap.get(PROPNAME_MEDIATYPE));
- sData.append(",");
- sData.append(aMap.get(PROPNAME_CLIPBOARDFORMAT));
- sData.append(",");
-
- java.util.Vector lList = (java.util.Vector)aMap.get(PROPNAME_URLPATTERN);
- int c = lList.size();
- int i = 0;
- for (i=0; i<c; ++i)
- {
- sData.append(lList.elementAt(i));
- if (i<(c-1))
- sData.append(";");
- }
-
- lList = (java.util.Vector)aMap.get(PROPNAME_EXTENSIONS);
- c = lList.size();
- for (i=0; i<c; ++i)
- {
- sData.append(lList.elementAt(i));
- if (i<(c-1))
- sData.append(";");
- }
-
- sData.append(",");
- sData.append(aMap.get(PROPNAME_DOCUMENTICONID));
- sData.append(",");
-
- aResultMap.put(PROPNAME_DATA, sData.toString());
- }
- break;
-
- //-----------------------------------
- case FORMAT_6Y :
- {
- // copy all supported properties directly
- aResultMap.put(PROPNAME_PREFERRED , aMap.get(PROPNAME_PREFERRED ));
- aResultMap.put(PROPNAME_MEDIATYPE , aMap.get(PROPNAME_MEDIATYPE ));
- aResultMap.put(PROPNAME_URLPATTERN , aMap.get(PROPNAME_URLPATTERN ));
- aResultMap.put(PROPNAME_EXTENSIONS , aMap.get(PROPNAME_EXTENSIONS ));
- aResultMap.put(PROPNAME_UINAME , aMap.get(PROPNAME_UINAME ));
- aResultMap.put(PROPNAME_PREFERREDFILTER, aMap.get(PROPNAME_PREFERREDFILTER));
- aResultMap.put(PROPNAME_DETECTSERVICE , aMap.get(PROPNAME_DETECTSERVICE ));
- aResultMap.put(PROPNAME_CLIPBOARDFORMAT, aMap.get(PROPNAME_CLIPBOARDFORMAT));
- aResultMap.put(PROPNAME_UIORDER , aMap.get(PROPNAME_UIORDER ));
- /* REMOVED!
- aResultMap.put(PROPNAME_DOCUMENTICONID , aMap.get(PROPNAME_DOCUMENTICONID ));
- */
- }
- break;
-
- //-----------------------------------
- default :
- throw new java.lang.Exception("unknown format");
- }
-
- return aResultMap;
- }
-
- //___________________________________________
-
- /** converts a filter property set from internal format
- * to an external one.
- *
- * @param aMap
- * points to the item, which should be converted.
- *
- * @param nFormat
- * specify the requested output format.
- *
- * @return [java.util.HashMap]
- * contains the properties in the requested format.
- *
- * @throws [java.lang.Exception
- * if something fail during convertion.
- */
- private static java.util.HashMap convertFilterPropsToExternal(java.util.HashMap aMap ,
- int nFormat)
- throws java.lang.Exception
- {
- java.util.HashMap aResultMap = new java.util.HashMap();
- // copy Name property ... if it exists!
- if (aMap.containsKey(PROPNAME_NAME))
- aResultMap.put(PROPNAME_NAME, aMap.get(PROPNAME_NAME));
- switch(nFormat)
- {
- //-----------------------------------
- case FORMAT_60 :
- {
- // copy UIName property unchanged!
- aResultMap.put(PROPNAME_UINAME, aMap.get(PROPNAME_UINAME));
-
- // but pack all other properties
- java.lang.StringBuffer sData = new java.lang.StringBuffer(256);
-
- sData.append(aMap.get(PROPNAME_ORDER));
- sData.append(",");
- sData.append(aMap.get(PROPNAME_TYPE));
- sData.append(",");
- sData.append(aMap.get(PROPNAME_DOCUMENTSERVICE));
- sData.append(",");
- sData.append(aMap.get(PROPNAME_FILTERSERVICE));
- sData.append(",");
- sData.append(aMap.get(PROPNAME_FLAGS));
- sData.append(",");
- java.util.Vector lList = (java.util.Vector)aMap.get(PROPNAME_USERDATA);
- int c = lList.size();
- int i = 0;
- for (i=0; i<c; ++i)
- {
- sData.append(lList.elementAt(i));
- if (i<(c-1))
- sData.append(";");
- }
- sData.append(",");
- sData.append(aMap.get(PROPNAME_FILEFORMATVERSION));
- sData.append(",");
- sData.append(aMap.get(PROPNAME_TEMPLATENAME));
- sData.append(",");
- sData.append(aMap.get(PROPNAME_UICOMPONENT));
- sData.append(",");
-
- aResultMap.put(PROPNAME_DATA, sData.toString());
- }
- break;
-
- //-----------------------------------
- case FORMAT_6Y :
- {
- // supress "Order" property.
- // Will be moved to type entries in 6.y version!
-
- // supress "UIName" property.
- // Only type entries will be localized in 6.y version!
- /* TODO make it configurable :-) */
- aResultMap.put(PROPNAME_UINAME , aMap.get(PROPNAME_UINAME ));
-
- // copy all supported properties directly
- aResultMap.put(PROPNAME_TYPE , aMap.get(PROPNAME_TYPE ));
- aResultMap.put(PROPNAME_DOCUMENTSERVICE , aMap.get(PROPNAME_DOCUMENTSERVICE ));
- aResultMap.put(PROPNAME_FILTERSERVICE , aMap.get(PROPNAME_FILTERSERVICE ));
- aResultMap.put(PROPNAME_USERDATA , aMap.get(PROPNAME_USERDATA ));
- aResultMap.put(PROPNAME_FILEFORMATVERSION, aMap.get(PROPNAME_FILEFORMATVERSION));
- aResultMap.put(PROPNAME_TEMPLATENAME , aMap.get(PROPNAME_TEMPLATENAME ));
- aResultMap.put(PROPNAME_UICOMPONENT , aMap.get(PROPNAME_UICOMPONENT ));
-
- // "Flags" will be converted from internal format [int] to
- // the 6.y format [string-list]!
- java.lang.Integer nFlags = (java.lang.Integer)aMap.get(PROPNAME_FLAGS);
- java.util.Vector lFlags = Cache.convertFilterFlagValues2Names(nFlags);
- aResultMap.put(PROPNAME_FLAGS, lFlags);
- }
- break;
-
- //-----------------------------------
- default :
- throw new java.lang.Exception("unknown format");
- }
-
- return aResultMap;
- }
-
- //___________________________________________
-
- /** converts a detect service property set from internal format
- * to an external one.
- *
- * @param aMap
- * points to the item, which should be converted.
- *
- * @param nFormat
- * specify the requested output format.
- *
- * @return [java.util.HashMap]
- * contains the properties in the requested format.
- *
- * @throws [java.lang.Exception
- * if something fail during convertion.
- */
- private static java.util.HashMap convertDetectServicePropsToExternal(java.util.HashMap aMap ,
- int nFormat)
- throws java.lang.Exception
- {
- java.util.HashMap aResultMap = null;
-
- switch(nFormat)
- {
- //-----------------------------------
- case FORMAT_60 :
- {
- // no changes!
- aResultMap = aMap;
- }
- break;
-
- //-----------------------------------
- case FORMAT_6Y :
- {
- // remove localized name
- aResultMap = aMap;
- aResultMap.remove(PROPNAME_UINAME);
- }
- break;
-
- //-----------------------------------
- default :
- throw new java.lang.Exception("unknown format");
- }
-
- return aResultMap;
- }
-
- private static java.util.HashMap convertFrameLoaderPropsToExternal(java.util.HashMap aMap ,
- int nFormat)
- throws java.lang.Exception
- {
- java.util.HashMap aResultMap = null;
-
- switch(nFormat)
- {
- //-----------------------------------
- case FORMAT_60 :
- {
- // no changes!
- aResultMap = aMap;
- }
- break;
-
- //-----------------------------------
- case FORMAT_6Y :
- {
- // remove localized name
- aResultMap = aMap;
- aResultMap.remove(PROPNAME_UINAME);
- }
- break;
-
- //-----------------------------------
- default :
- throw new java.lang.Exception("unknown format");
- }
-
- return aResultMap;
- }
-
- private static java.util.HashMap convertContentHandlerPropsToExternal(java.util.HashMap aMap ,
- int nFormat)
- throws java.lang.Exception
- {
- java.util.HashMap aResultMap = null;
-
- switch(nFormat)
- {
- //-----------------------------------
- case FORMAT_60 :
- {
- // no changes!
- aResultMap = aMap;
- }
- break;
-
- //-----------------------------------
- case FORMAT_6Y :
- {
- // remove localized name
- aResultMap = aMap;
- aResultMap.remove(PROPNAME_UINAME);
- }
- break;
-
- //-----------------------------------
- default :
- throw new java.lang.Exception("unknown format");
- }
-
- return aResultMap;
- }
-
- //___________________________________________
-
- /** converts a type property set (using an external format) to
- * our internal cache format.
- *
- * Especialy the data format string will be expanded
- * to its real properties.
- *
- * Schema:
- * aMap["UIName"] => aExpandedMap["UIName"]
- * aMap["Data" ] => aExpandedMap["Preferred" ], aExpandedMap["MediaType"] etc. ...
- *
- * @param aMap
- * points to the item, which should be converted.
-
- * @param nFormat
- * specify the external format.
- *
- * @return [java.util.HashMap]
- * The new map in internal format.
- */
- private static java.util.HashMap convertTypePropsToInternal(java.util.HashMap aMap ,
- int nFormat)
- throws java.lang.Exception
- {
- java.util.HashMap aResultMap = new java.util.HashMap();
- // copy Name property ... if it exists!
- if (aMap.containsKey(PROPNAME_NAME))
- aResultMap.put(PROPNAME_NAME, aMap.get(PROPNAME_NAME));
- switch(nFormat)
- {
- //-----------------------------------
- case FORMAT_60 :
- {
- // copy UIName property unchanged!
- aResultMap.put(PROPNAME_UINAME, aMap.get(PROPNAME_UINAME));
-
- // generate new property "UIOrder"
- // Its the moved property "Order" of filters for versions >= 6.y!
- aResultMap.put(PROPNAME_UIORDER, new java.lang.Integer(0));
-
- // generate new property "PreferredFilter"
- // Its a the moved filter flag "Preferred" for versions >= 6.y!
- aResultMap.put(PROPNAME_PREFERREDFILTER, new java.lang.String());
-
- // generate new property "DetectService"
- // Every type know its detector diretcly from now. No search
- // will be neccessary any longer.
- aResultMap.put(PROPNAME_DETECTSERVICE, new java.lang.String());
-
- // analyze the Data property of the original map
- // and copy its results (means all expanded properties)
- // to the result map.
- java.lang.String sDataVal = (java.lang.String)aMap.get(PROPNAME_DATA);
- java.util.Vector lTokens = Cache.splitTokenString(sDataVal, ",");
-
- int t = 0;
- java.util.Enumeration it = lTokens.elements();
- while (it.hasMoreElements())
- {
- java.lang.String sToken = (java.lang.String)it.nextElement();
- switch(t)
- {
- case 0 :
- aResultMap.put(PROPNAME_PREFERRED, new java.lang.Boolean(sToken));
- break;
- case 1 :
- aResultMap.put(PROPNAME_MEDIATYPE, sToken);
- break;
- case 2 :
- {
- /*HACK ersetze %20 mit " " ...*/
- int ni = sToken.indexOf("%20");
- if (ni!=-1)
- {
- java.lang.String sPatch = sToken.substring(0,ni) + " " + sToken.substring(ni+3);
- sToken = sPatch;
- }
- aResultMap.put(PROPNAME_CLIPBOARDFORMAT, sToken);
- }
- break;
- case 3 :
- aResultMap.put(PROPNAME_URLPATTERN, Cache.splitTokenString(sToken, ";"));
- break;
- case 4 :
- aResultMap.put(PROPNAME_EXTENSIONS, Cache.splitTokenString(sToken, ";"));
- break;
- case 5 :
- aResultMap.put(PROPNAME_DOCUMENTICONID, new java.lang.Integer(sToken));
- break;
- default :
- throw new java.lang.Exception("unsupported format for data value of a type \""+aMap.get(PROPNAME_NAME)+"\" detected.");
- }
- ++t;
- }
- }
- break;
-
- //-----------------------------------
- case FORMAT_6Y :
- {
- // copy all supported properties directly
- aResultMap.put(PROPNAME_PREFERRED , aMap.get(PROPNAME_PREFERRED ));
- aResultMap.put(PROPNAME_MEDIATYPE , aMap.get(PROPNAME_MEDIATYPE ));
- aResultMap.put(PROPNAME_CLIPBOARDFORMAT, aMap.get(PROPNAME_CLIPBOARDFORMAT));
- aResultMap.put(PROPNAME_URLPATTERN , aMap.get(PROPNAME_URLPATTERN ));
- aResultMap.put(PROPNAME_EXTENSIONS , aMap.get(PROPNAME_EXTENSIONS ));
- aResultMap.put(PROPNAME_DOCUMENTICONID , aMap.get(PROPNAME_DOCUMENTICONID ));
- aResultMap.put(PROPNAME_UINAME , aMap.get(PROPNAME_UINAME ));
- aResultMap.put(PROPNAME_UIORDER , aMap.get(PROPNAME_UIORDER ));
- aResultMap.put(PROPNAME_PREFERREDFILTER, aMap.get(PROPNAME_PREFERREDFILTER));
- aResultMap.put(PROPNAME_DETECTSERVICE , aMap.get(PROPNAME_DETECTSERVICE ));
- }
- break;
-
- //-----------------------------------
- default :
- throw new java.lang.Exception("unknown format");
- }
-
- return aResultMap;
- }
-
- //___________________________________________
-
- /** converts a filter property set (using an external format) to
- * our internal cache format.
- *
- * Especialy the data format string will be expanded
- * to its real properties.
- *
- * Schema:
- * aMap["UIName"] => aExpandedMap["UIName"]
- * aMap["Data" ] => aExpandedMap["Order" ], aExpandedMap["Flags"] etc. ...
- *
- * @param aMap
- * points to the item, which should be converted.
- *
- * @param nFormat
- * specify the external format.
- *
- * @return [java.util.HashMap]
- * The new map in internal format.
- */
- private static java.util.HashMap convertFilterPropsToInternal(java.util.HashMap aMap ,
- int nFormat)
- throws java.lang.Exception
- {
- java.util.HashMap aResultMap = new java.util.HashMap();
- // copy Name property ... if it exists!
- if (aMap.containsKey(PROPNAME_NAME))
- aResultMap.put(PROPNAME_NAME, aMap.get(PROPNAME_NAME));
- switch(nFormat)
- {
- //-----------------------------------
- case FORMAT_60 :
- {
- // copy UIName property
- aResultMap.put(PROPNAME_UINAME, aMap.get(PROPNAME_UINAME));
-
- // analyze the Data property of the original map
- // and copy its results (means all expanded properties)
- // to the result map.
- java.lang.String sDataVal = (java.lang.String)aMap.get(PROPNAME_DATA);
- java.util.Vector lTokens = Cache.splitTokenString(sDataVal, ",");
-
- int t = 0;
- java.util.Enumeration it = lTokens.elements();
- while (it.hasMoreElements())
- {
- java.lang.String sToken = (java.lang.String)it.nextElement();
- switch(t)
- {
- case 0 :
- aResultMap.put(PROPNAME_ORDER, new java.lang.Integer(sToken));
- break;
- case 1 :
- aResultMap.put(PROPNAME_TYPE, sToken);
- break;
- case 2 :
- aResultMap.put(PROPNAME_DOCUMENTSERVICE, sToken);
- break;
- case 3 :
- aResultMap.put(PROPNAME_FILTERSERVICE, sToken);
- break;
- case 4 :
- aResultMap.put(PROPNAME_FLAGS, new java.lang.Integer(sToken));
- break;
- case 5 :
- aResultMap.put(PROPNAME_USERDATA, Cache.splitTokenString(sToken, ";"));
- break;
- case 6 :
- aResultMap.put(PROPNAME_FILEFORMATVERSION, new java.lang.Integer(sToken));
- break;
- case 7 :
- aResultMap.put(PROPNAME_TEMPLATENAME, sToken);
- break;
- case 8 :
- aResultMap.put(PROPNAME_UICOMPONENT, sToken);
- break;
- default :
- throw new java.lang.Exception("unsupported format for data value of a filter detected.");
- }
- ++t;
- }
-
- // its an optional property :-)
- if (!aResultMap.containsKey(PROPNAME_TEMPLATENAME))
- aResultMap.put(PROPNAME_TEMPLATENAME, new java.lang.String(""));
-
- // its an optional property :-)
- if (!aResultMap.containsKey(PROPNAME_UICOMPONENT))
- aResultMap.put(PROPNAME_UICOMPONENT, new java.lang.String(""));
- }
- break;
-
- //-----------------------------------
- case FORMAT_6Y :
- {
- // "Order" does not exist for 6.y versions! Use default.
- aResultMap.put(PROPNAME_ORDER, new java.lang.Integer(0));
-
- // "UIName" property does not exist for 6.y versions! use default.
- /* TODO make it configurable :-) */
- aResultMap.put(PROPNAME_UINAME, aMap.get(PROPNAME_UINAME));
- //aResultMap.put(PROPNAME_UINAME, new java.util.HashMap());
-
- // "Flags" must be converted from names to its values
- java.util.Vector lFlags = (java.util.Vector)aMap.get(PROPNAME_FLAGS);
- java.lang.Integer nFlags = Cache.convertFilterFlagNames2Values(lFlags);
- aResultMap.put(PROPNAME_FLAGS, nFlags);
-
- // copy all direct supported properties
- aResultMap.put(PROPNAME_TYPE , aMap.get(PROPNAME_TYPE ));
- aResultMap.put(PROPNAME_DOCUMENTSERVICE , aMap.get(PROPNAME_DOCUMENTSERVICE ));
- aResultMap.put(PROPNAME_FILTERSERVICE , aMap.get(PROPNAME_ORDER ));
- aResultMap.put(PROPNAME_USERDATA , aMap.get(PROPNAME_USERDATA ));
- aResultMap.put(PROPNAME_FILEFORMATVERSION, aMap.get(PROPNAME_FILEFORMATVERSION));
- aResultMap.put(PROPNAME_TEMPLATENAME , aMap.get(PROPNAME_TEMPLATENAME ));
- aResultMap.put(PROPNAME_UICOMPONENT , aMap.get(PROPNAME_UICOMPONENT ));
- }
- break;
-
- //-----------------------------------
- default :
- throw new java.lang.Exception("unknown format");
- }
-
- return aResultMap;
- }
-
- private static java.util.HashMap convertDetectServicePropsToInternal(java.util.HashMap aMap ,
- int nFormat)
- throws java.lang.Exception
- {
- /*FIXME*/
- java.util.HashMap aResultMap = aMap;
- return aResultMap;
- }
-
- private static java.util.HashMap convertFrameLoaderPropsToInternal(java.util.HashMap aMap ,
- int nFormat)
- throws java.lang.Exception
- {
- /*FIXME*/
- java.util.HashMap aResultMap = aMap;
- return aResultMap;
- }
-
- private static java.util.HashMap convertContentHandlerPropsToInternal(java.util.HashMap aMap ,
- int nFormat)
- throws java.lang.Exception
- {
- /*FIXME*/
- java.util.HashMap aResultMap = aMap;
- return aResultMap;
- }
-
- //___________________________________________
-
- /** converts filter flag names to its int representation.
- *
- * @param lFlags
- * a list of flag names.
- *
- * @return [java.lang.Integer]
- * an integer field of all set flags.
- *
- * @throws [java.lang.Exception]
- * for unsupported flags or empty flag fields!
- */
- private static java.lang.Integer convertFilterFlagNames2Values(java.util.Vector lFlags)
- throws java.lang.Exception
- {
- int nFlags = 0;
- java.util.Enumeration it = lFlags.elements();
- while(it.hasMoreElements())
- {
- java.lang.String sFlagName = (java.lang.String)it.nextElement();
-
- if (sFlagName.equals(FLAGNAME_3RDPARTYFILTER))
- nFlags |= FLAGVAL_3RDPARTYFILTER;
- else
- if (sFlagName.equals(FLAGNAME_ALIEN))
- nFlags |= FLAGVAL_ALIEN;
- else
- if (sFlagName.equals(FLAGNAME_ASYNCHRON))
- nFlags |= FLAGVAL_ASYNCHRON;
- else
- if (sFlagName.equals(FLAGNAME_BROWSERPREFERRED))
- nFlags |= FLAGVAL_BROWSERPREFERRED;
- else
- if (sFlagName.equals(FLAGNAME_CONSULTSERVICE))
- nFlags |= FLAGVAL_CONSULTSERVICE;
- else
- if (sFlagName.equals(FLAGNAME_DEFAULT))
- nFlags |= FLAGVAL_DEFAULT;
- else
- if (sFlagName.equals(FLAGNAME_EXPORT))
- nFlags |= FLAGVAL_EXPORT;
- else
- if (sFlagName.equals(FLAGNAME_IMPORT))
- nFlags |= FLAGVAL_IMPORT;
- else
- if (sFlagName.equals(FLAGNAME_INTERNAL))
- nFlags |= FLAGVAL_INTERNAL;
- else
- if (sFlagName.equals(FLAGNAME_NOTINCHOOSER))
- nFlags |= FLAGVAL_NOTINCHOOSER;
- else
- if (sFlagName.equals(FLAGNAME_NOTINFILEDIALOG))
- nFlags |= FLAGVAL_NOTINFILEDIALOG;
- else
- if (sFlagName.equals(FLAGNAME_NOTINSTALLED))
- nFlags |= FLAGVAL_NOTINSTALLED;
- else
- if (sFlagName.equals(FLAGNAME_OWN))
- nFlags |= FLAGVAL_OWN;
- else
- if (sFlagName.equals(FLAGNAME_PACKED))
- nFlags |= FLAGVAL_PACKED;
- else
- if (sFlagName.equals(FLAGNAME_PREFERRED))
- nFlags |= FLAGVAL_PREFERRED;
- else
- if (sFlagName.equals(FLAGNAME_READONLY))
- nFlags |= FLAGVAL_READONLY;
- else
- if (sFlagName.equals(FLAGNAME_SILENTEXPORT))
- nFlags |= FLAGVAL_SILENTEXPORT;
- else
- if (sFlagName.equals(FLAGNAME_TEMPLATE))
- nFlags |= FLAGVAL_TEMPLATE;
- else
- if (sFlagName.equals(FLAGNAME_TEMPLATEPATH))
- nFlags |= FLAGVAL_TEMPLATEPATH;
- else
- if (sFlagName.equals(FLAGNAME_USESOPTIONS))
- nFlags |= FLAGVAL_USESOPTIONS;
- else
- if (sFlagName.equals(FLAGNAME_COMBINED))
- nFlags |= FLAGVAL_COMBINED;
- else
- throw new java.lang.Exception("unsupported filter flag detected: \""+sFlagName+"\"");
- }
-
- if (nFlags == 0)
- throw new java.lang.Exception("no filter flags?");
-
- return new java.lang.Integer(nFlags);
- }
-
- //___________________________________________
-
- /** converts filter flag values to its string representation.
- *
- * @param nFlags
- * the flag field as int value.
- *
- * @return [java.util.Vector]
- * a list of flag names.
- *
- * @throws [java.lang.Exception]
- * for unsupported flags or empty flag fields!
- */
- private static java.util.Vector convertFilterFlagValues2Names(java.lang.Integer nFlags)
- throws java.lang.Exception
- {
- java.util.Vector lFlags = new java.util.Vector();
- int field = nFlags.intValue();
-
- if (field == 0)
- throw new java.lang.Exception("no filter flags?");
-
- if((field & FLAGVAL_IMPORT) == FLAGVAL_IMPORT)
- lFlags.add(FLAGNAME_IMPORT);
-
- if((field & FLAGVAL_EXPORT) == FLAGVAL_EXPORT)
- lFlags.add(FLAGNAME_EXPORT);
-
- if((field & FLAGVAL_TEMPLATE) == FLAGVAL_TEMPLATE)
- lFlags.add(FLAGNAME_TEMPLATE);
-
- if((field & FLAGVAL_INTERNAL) == FLAGVAL_INTERNAL)
- lFlags.add(FLAGNAME_INTERNAL);
-
- if((field & FLAGVAL_TEMPLATEPATH) == FLAGVAL_TEMPLATEPATH)
- lFlags.add(FLAGNAME_TEMPLATEPATH);
-
- if((field & FLAGVAL_OWN) == FLAGVAL_OWN)
- lFlags.add(FLAGNAME_OWN);
-
- if((field & FLAGVAL_ALIEN) == FLAGVAL_ALIEN)
- lFlags.add(FLAGNAME_ALIEN);
-
- if((field & FLAGVAL_USESOPTIONS) == FLAGVAL_USESOPTIONS)
- lFlags.add(FLAGNAME_USESOPTIONS);
-
- if((field & FLAGVAL_DEFAULT) == FLAGVAL_DEFAULT)
- lFlags.add(FLAGNAME_DEFAULT);
-
- if((field & FLAGVAL_NOTINFILEDIALOG) == FLAGVAL_NOTINFILEDIALOG)
- lFlags.add(FLAGNAME_NOTINFILEDIALOG);
-
- if((field & FLAGVAL_NOTINCHOOSER) == FLAGVAL_NOTINCHOOSER)
- lFlags.add(FLAGNAME_NOTINCHOOSER);
-
- if((field & FLAGVAL_ASYNCHRON) == FLAGVAL_ASYNCHRON)
- lFlags.add(FLAGNAME_ASYNCHRON);
-
- if((field & FLAGVAL_READONLY) == FLAGVAL_READONLY)
- lFlags.add(FLAGNAME_READONLY);
-
- if((field & FLAGVAL_NOTINSTALLED) == FLAGVAL_NOTINSTALLED)
- lFlags.add(FLAGNAME_NOTINSTALLED);
-
- if((field & FLAGVAL_CONSULTSERVICE) == FLAGVAL_CONSULTSERVICE)
- lFlags.add(FLAGNAME_CONSULTSERVICE);
-
- if((field & FLAGVAL_3RDPARTYFILTER) == FLAGVAL_3RDPARTYFILTER)
- lFlags.add(FLAGNAME_3RDPARTYFILTER);
-
- if((field & FLAGVAL_PACKED) == FLAGVAL_PACKED)
- lFlags.add(FLAGNAME_PACKED);
-
- if((field & FLAGVAL_SILENTEXPORT) == FLAGVAL_SILENTEXPORT)
- lFlags.add(FLAGNAME_SILENTEXPORT);
-
- if((field & FLAGVAL_BROWSERPREFERRED) == FLAGVAL_BROWSERPREFERRED)
- lFlags.add(FLAGNAME_BROWSERPREFERRED);
-
- if((field & FLAGVAL_PREFERRED) == FLAGVAL_PREFERRED)
- lFlags.add(FLAGNAME_PREFERRED);
-
- if((field & FLAGVAL_COMBINED) == FLAGVAL_COMBINED)
- lFlags.add(FLAGNAME_COMBINED);
-
- if((field & FLAGVAL_COMBINED) == FLAGVAL_SUPPORTSSELECTION)
- lFlags.add(FLAGNAME_SUPPORTSSELECTION);
-
- return lFlags;
- }
-
- //___________________________________________
-
- /** return a reference to one of our member
- * lists for types/filters etc ...
- *
- * @param eItemType
- * specify, which item map is required.
- *
- * @return [java.util.HashMap]
- * a reference(!) to the right member.
- *
- * @throws [java.lang.Exception]
- * if the specified map does not exist.
- */
- private java.util.HashMap getItemMap(int eItemType)
- throws java.lang.Exception
- {
- java.util.HashMap rMap = null;
- switch(eItemType)
- {
- case E_TYPE :
- rMap = m_lTypes;
- break;
-
- case E_FILTER :
- rMap = m_lFilters;
- break;
-
- case E_DETECTSERVICE :
- rMap = m_lDetectServices;
- break;
-
- case E_FRAMELOADER :
- rMap = m_lFrameLoaders;
- break;
-
- case E_CONTENTHANDLER :
- rMap = m_lContentHandlers;
- break;
-
- default:
- throw new java.lang.Exception("Invalid item map specified.");
- }
- return rMap;
- }
-
- //___________________________________________
-
- /** return the count of items inside a sub container
- * of this cache.
- *
- * @param eItemType
- * specify, which item map is required.
- *
- * @throws [java.lang.Exception]
- * if the specified map does not exist.
- */
- public synchronized int getItemCount(int eItemType)
- throws java.lang.Exception
- {
- java.util.HashMap rMap = getItemMap(eItemType);
- return rMap.size();
- }
-
- //___________________________________________
-
- /** get a list of all item names of the specified
- * sub container.
- *
- * @param eItemType
- * specify, which item map is required.
- *
- * @throws [java.lang.Exception]
- * if the specified map does not exist.
- */
- public synchronized java.util.Vector getItemNames(int eItemType)
- throws java.lang.Exception
- {
- java.util.Vector lNames = new java.util.Vector();
- java.util.HashMap rMap = getItemMap(eItemType);
- java.util.Iterator it = rMap.keySet().iterator();
- while(it.hasNext())
- lNames.add(it.next());
- return lNames;
- }
-
- //___________________________________________
-
- /** get a list of all item names of the specified
- * sub coontainer, where items match to given property set.
- *
- * Note: The given property set must exist at all
- * returned items as minimum and every checked property
- * value must be equals! Using of reg expressions or
- * similar mechanism will not be supported here.
- *
- * @param eItemType
- * specify, which item map is required.
- *
- * @param aPropSet
- * the set of properties, which must
- * exist at the returned item as minimum.
- *
- * @throws [java.lang.Exception]
- * if the specified map does not exist.
- */
- public synchronized java.util.Vector getMatchedItemNames(int eItemType,
- java.util.HashMap aPropSet )
- throws java.lang.Exception
- {
- java.util.Vector lNames = new java.util.Vector();
- java.util.HashMap rMap = getItemMap(eItemType);
- java.util.Iterator it = rMap.keySet().iterator();
- while(it.hasNext())
- {
- java.lang.String sItemName = (java.lang.String)it.next();
- java.util.HashMap rItemProps = (java.util.HashMap)rMap.get(sItemName);
-
- boolean bMatch = Cache.matchPropSet(rItemProps, aPropSet);
- if (bMatch)
- lNames.add(sItemName);
- else
- {
- java.lang.StringBuffer sBuffer = new java.lang.StringBuffer(1000);
- sBuffer.append("entry ["+eItemType+"] \""+sItemName+"\" does not match.\n");
- sBuffer.append("\torg items = {"+rItemProps+"}\n");
- sBuffer.append("\treq items = {"+aPropSet+"}\n");
-
- m_aDebug.setDetailedInfo(sBuffer.toString());
- }
- }
- return lNames;
- }
-
- //___________________________________________
-
- /** check if two property sets are equals in its
- * shared properties.
- *
- * Note: Only set properties of the match set will be searched
- * inside the original set. And its values must be equals.
- * Using of reg expressions or similar mechanism will not
- * be supported here.
- *
- * @param rOrgProps
- * the original property set, which should be checked.
- *
- * @param rMatchProps
- * contains the properties, which must be searched
- * inside rOrgProps.
- *
- * @return TRUE if all properties of rMatchProps could be located
- * inside rOrgProps.
- */
- private static boolean matchPropSet(java.util.HashMap rOrgProps ,
- java.util.HashMap rMatchProps)
- {
- java.util.Iterator it = rMatchProps.keySet().iterator();
- while(it.hasNext())
- {
- java.lang.String sMatchName = (java.lang.String)it.next();
- java.lang.Object aMatchValue = rMatchProps.get(sMatchName);
-
- if (
- (!rOrgProps.containsKey(sMatchName) ) ||
- (!rOrgProps.get(sMatchName).equals(aMatchValue))
- )
- {
- return false;
- }
- }
- return true;
- }
-
- //___________________________________________
-
- /** return a property set for the queried container item.
- *
- * @param eItemType
- * specify, which item map is required.
- *
- * @param sItemName
- * must be a valid item name of the specified item map.
- *
- * @return [java.util.HashMap]
- * the property set of the queried item.
- * Always different from null!
- *
- * @throws [java.lang.Exception]
- * if the specified item does not exists or
- * seems to be invalid in general (means null!).
- */
- public synchronized java.util.HashMap getItem(int eItemType,
- java.lang.String sItemName)
- throws java.lang.Exception
- {
- java.util.HashMap rMap = getItemMap(eItemType);
- java.util.HashMap rItem = (java.util.HashMap)rMap.get(sItemName);
- if (rItem == null)
- throw new java.lang.Exception("Queried item \""+sItemName+"\" does not exist inside this cache.");
- return rItem;
- }
-
- //___________________________________________
-
- /** return a requested item in XML format.
- *
- * @param eItemType
- * identify the right sub set of this cache
- * inside which the requested item should exist.
- * e.g. E_TYPE, E_FILTER, ...
- *
- * @param sItemName
- * the name of the request item
- *
- * @param nXMLFormat
- * means the format of the generated xml source.
- *
- * @return [java.lang.String]
- * a xml formated string, which contains all properties
- * for this container item.
- */
- public synchronized java.lang.String getItemAsXML(int eItemType ,
- java.lang.String sItemName ,
- int nXMLFormat)
- throws java.lang.Exception
- {
- // Note: Our internal format must be converted to the target format!
- java.util.HashMap rItem = getItem(eItemType, sItemName);
- java.util.HashMap rFormatedItem = null;
- switch(eItemType)
- {
- case E_TYPE :
- {
- rFormatedItem = Cache.convertTypePropsToExternal(rItem, nXMLFormat);
- m_aDebug.setGlobalInfo("type to external \""+sItemName+"\"");
- }
- break;
-
- case E_FILTER :
- {
- rFormatedItem = Cache.convertFilterPropsToExternal(rItem, nXMLFormat);
- m_aDebug.setGlobalInfo("filter to external \""+sItemName+"\"");
- }
- break;
-
- case E_DETECTSERVICE :
- {
- rFormatedItem = Cache.convertDetectServicePropsToExternal(rItem, nXMLFormat);
- m_aDebug.setGlobalInfo("detect service to external \""+sItemName+"\"");
- }
- break;
-
- case E_FRAMELOADER :
- {
- rFormatedItem = Cache.convertFrameLoaderPropsToExternal(rItem, nXMLFormat);
- m_aDebug.setGlobalInfo("frame loader to external \""+sItemName+"\"");
- }
- break;
-
- case E_CONTENTHANDLER :
- {
- rFormatedItem = Cache.convertContentHandlerPropsToExternal(rItem, nXMLFormat);
- m_aDebug.setGlobalInfo("content handler to external \""+sItemName+"\"");
- }
- break;
- }
-
- java.lang.StringBuffer sXML = new java.lang.StringBuffer(1000);
- int nPrettyTabs = 1;
- for (int t=0; t<nPrettyTabs; ++t)
- sXML.append("\t");
- sXML.append("<"+XMLHelper.XMLTAG_NODE+" "+XMLHelper.XMLATTRIB_OOR_NAME+"=\""+XMLHelper.encodeHTMLSigns(sItemName)+"\" "+XMLHelper.XMLATTRIB_OOR_OP+"=\""+XMLHelper.XMLATTRIB_OP_REPLACE+"\">\n");
- sXML.append(XMLHelper.convertPropSetToXML(rFormatedItem, nPrettyTabs+1));
- for (int t=0; t<nPrettyTabs; ++t)
- sXML.append("\t");
- sXML.append("</"+XMLHelper.XMLTAG_NODE+">\n");
-
- return sXML.toString();
- }
-
- //___________________________________________
-
- /** split the given string (using the specified delimiter)
- * and return alist of found string tokens.
- *
- * Note: Against the normal behaviour of the StringTokenizer class
- * this method returns empty tokens too.
- * E.g: "0,,1" will return "0" - "" - "1"
- *
- * @param sTokenString
- * the string value, which should be analyzed.
- *
- * @param sDelim
- * the delimiter, which will be used to differe between tokens.
- *
- * @return [java.util.Vector]
- * a list of string tokens. Can be empty - but not null!
- */
- private static java.util.Vector splitTokenString(java.lang.String sTokenString,
- java.lang.String sDelim )
- {
- java.util.Vector lTokens = new java.util.Vector();
- java.util.StringTokenizer aTokenizer = new java.util.StringTokenizer(sTokenString, sDelim, true);
- boolean bLastWasDelim = false;
-
- while (aTokenizer.hasMoreTokens())
- {
- java.lang.String sToken = aTokenizer.nextToken();
- if (sToken.equals(sDelim))
- {
- if (bLastWasDelim)
- {
- // last token was a delimiter - new one too
- // => an empty token must be placed between these
- // two delimiters! Add this empty value to the return list.
- lTokens.add("");
- }
- else
- {
- // last token was not a delimiter - new one is such delim
- // => ignore this delimiter - but save the information, that
- // it occured
- bLastWasDelim = true;
- }
- }
- else
- {
- // new token is no delim
- // => Add it to the return list.
- lTokens.add(sToken);
- // Dont forget to reset this information - so next loop
- // will do the right things!
- bLastWasDelim = false;
- }
- }
-
- return lTokens;
- }
-
- //___________________________________________
-
- /**
- */
- public synchronized void analyze()
- {
- m_nDoubleRegisteredFilters = 0;
- m_nTypesForFilters = 0;
- m_nTypesForDetectServices = 0;
- m_nTypesForFrameLoaders = 0;
- m_nTypesForContentHandlers = 0;
-
- // create table of types and all registered filters for such types
- // By the way: count all double registrations, where a filter
- // uses the same type then another filter.
- m_lFilterToTypeRegistrations = new java.util.HashMap();
- java.util.Iterator aIt1 = m_lFilters.keySet().iterator();
- while (aIt1.hasNext())
- {
- java.lang.String sFilter = (java.lang.String)aIt1.next();
- java.util.HashMap aFilter = (java.util.HashMap)m_lFilters.get(sFilter);
- java.lang.String sType = (java.lang.String)aFilter.get(PROPNAME_TYPE);
-
- java.util.Vector lFilters = (java.util.Vector)m_lFilterToTypeRegistrations.get(sType);
- if (lFilters == null)
- lFilters = new java.util.Vector();
- else
- ++m_nDoubleRegisteredFilters;
- lFilters.add(sFilter);
- m_lFilterToTypeRegistrations.put(sType, lFilters);
- }
-
- // count, how many types are used by filters, frame loaders or content handlers
- aIt1 = m_lTypes.keySet().iterator();
- while (aIt1.hasNext())
- {
- java.lang.String sType = (java.lang.String)aIt1.next();
-
- java.util.Iterator aIt2 = m_lFilters.keySet().iterator();
- while (aIt2.hasNext())
- {
- java.lang.String sItem = (java.lang.String)aIt2.next();
- java.util.HashMap aItem = (java.util.HashMap)m_lFilters.get(sItem);
- java.lang.String sTypeReg = (java.lang.String)aItem.get(PROPNAME_TYPE);
-
- if (sTypeReg.equals(sType))
- {
- ++m_nTypesForFilters;
- break;
- }
- }
-
- aIt2 = m_lDetectServices.keySet().iterator();
- while (aIt2.hasNext())
- {
- java.lang.String sItem = (java.lang.String)aIt2.next();
- java.util.HashMap aItem = (java.util.HashMap)m_lDetectServices.get(sItem);
- java.util.Vector lTypeReg = (java.util.Vector)aItem.get(PROPNAME_TYPES);
-
- if (lTypeReg.contains(sType))
- {
- ++m_nTypesForDetectServices;
- break;
- }
- }
-
- aIt2 = m_lFrameLoaders.keySet().iterator();
- while (aIt2.hasNext())
- {
- java.lang.String sItem = (java.lang.String)aIt2.next();
- java.util.HashMap aItem = (java.util.HashMap)m_lFrameLoaders.get(sItem);
- java.util.Vector lTypeReg = (java.util.Vector)aItem.get(PROPNAME_TYPES);
-
- if (lTypeReg.contains(sType))
- {
- ++m_nTypesForFrameLoaders;
- break;
- }
- }
-
- aIt2 = m_lContentHandlers.keySet().iterator();
- while (aIt2.hasNext())
- {
- java.lang.String sItem = (java.lang.String)aIt2.next();
- java.util.HashMap aItem = (java.util.HashMap)m_lContentHandlers.get(sItem);
- java.util.Vector lTypeReg = (java.util.Vector)aItem.get(PROPNAME_TYPES);
-
- if (lTypeReg.contains(sType))
- {
- ++m_nTypesForContentHandlers;
- break;
- }
- }
- }
- }
-
- //___________________________________________
-
- /** validate all cache entries.
- *
- * It checks if all made registrations are valid;
- * try to repair some simple problems;
- * create missing informations on demand ...
- *
- * @param nFormat
- * specify, which configuration format
- * must be checked.
- *
- * @throws [java.lang.Exception]
- * if an unrecoverable problem occure.
- */
- public synchronized void validate(int nFormat)
- throws java.lang.Exception
- {
- validateTypes(nFormat);
- validateFilters(nFormat);
- }
-
- //___________________________________________
-
- /** validate all type entries of this cache.
- *
- * @param nFormat
- * specify, which configuration format
- * must be checked.
- *
- * @throws [java.lang.Exception]
- * if an unrecoverable problem occure.
- */
- private void validateTypes(int nFormat)
- throws java.lang.Exception
- {
- java.util.Iterator aIt1 = m_lTypes.keySet().iterator();
- while(aIt1.hasNext())
- {
- java.lang.String sType = (java.lang.String)aIt1.next();
- java.util.HashMap aType = (java.util.HashMap)m_lTypes.get(sType);
- if (aType == null)
- throw new java.lang.Exception("type ["+sType+"] dos not exist realy?!");
-
- if (
- (!aType.containsKey(PROPNAME_MEDIATYPE )) ||
- (!aType.containsKey(PROPNAME_PREFERRED )) ||
- (!aType.containsKey(PROPNAME_CLIPBOARDFORMAT)) ||
- (!aType.containsKey(PROPNAME_DOCUMENTICONID )) ||
- (!aType.containsKey(PROPNAME_URLPATTERN )) ||
- (!aType.containsKey(PROPNAME_EXTENSIONS )) ||
- (!aType.containsKey(PROPNAME_UINAME ))
- )
- {
- throw new java.lang.Exception("Type \""+sType+"\" does not contain all neccessary properties for a 6.0/6.Y format.");
- }
-
- if (
- (((java.util.Vector)aType.get(PROPNAME_EXTENSIONS)).isEmpty()) &&
- (((java.util.Vector)aType.get(PROPNAME_URLPATTERN)).isEmpty())
- )
- {
- throw new java.lang.Exception("Type \""+sType+"\" does not contain any extension nor an url pattern.");
- }
-
- if (((java.util.HashMap)aType.get(PROPNAME_UINAME)).isEmpty())
- throw new java.lang.Exception("Type \""+sType+"\" is not localized.");
-
- if (nFormat == FORMAT_6Y)
- {
- if (
- (!aType.containsKey(PROPNAME_UIORDER )) ||
- (!aType.containsKey(PROPNAME_PREFERREDFILTER)) ||
- (!aType.containsKey(PROPNAME_DETECTSERVICE ))
- )
- {
- throw new java.lang.Exception("Type \""+sType+"\" does not contain all neccessary properties for a 6.Y format.");
- }
-
- if (((java.lang.Integer)aType.get(PROPNAME_UIORDER)).intValue() < 0)
- throw new java.lang.Exception("Type \""+sType+"\" has invalid value for prop UIOrder.");
-
- if (((java.lang.String)aType.get(PROPNAME_DETECTSERVICE)).length() < 1)
- m_aDebug.setWarning("Type \""+sType+"\" has no detect service registered.");
-
- java.lang.String sPreferredReg = (java.lang.String)aType.get(PROPNAME_PREFERREDFILTER);
- if (
- (sPreferredReg == null) ||
- (sPreferredReg.length() < 1 )
- )
- {
- m_aDebug.setWarning("Type \""+sType+"\" has no preferred filter ...");
- /*FIXME
- * OK - not every type has a filter registered .. but the
- * a frame loader MUST(!) exist! Check it.
- */
- }
- else
- {
- if (!m_lFilters.containsKey(sPreferredReg))
- throw new java.lang.Exception("Type \""+sType+"\" has no valid preferred filter registration [\""+sPreferredReg+"\"].");
- }
- }
- }
- }
-
- //___________________________________________
-
- /** validate all filter entries of this cache.
- *
- * @param nFormat
- * specify, which configuration format
- * must be checked.
- *
- * @throws [java.lang.Exception]
- * if an unrecoverable problem occure.
- */
- public synchronized void validateFilters(int nFormat)
- throws java.lang.Exception
- {
- java.util.Iterator aIt1 = m_lFilters.keySet().iterator();
- while(aIt1.hasNext())
- {
- java.lang.String sFilter = (java.lang.String)aIt1.next();
- java.util.HashMap aFilter = (java.util.HashMap)m_lFilters.get(sFilter);
- if (aFilter == null)
- throw new java.lang.Exception("filter ["+sFilter+"] dos not exist realy?!");
-
- if (
- (!aFilter.containsKey(PROPNAME_DOCUMENTSERVICE )) ||
- (!aFilter.containsKey(PROPNAME_FILEFORMATVERSION)) ||
- (!aFilter.containsKey(PROPNAME_FILTERSERVICE )) ||
- (!aFilter.containsKey(PROPNAME_FLAGS )) ||
- (!aFilter.containsKey(PROPNAME_TEMPLATENAME )) ||
- (!aFilter.containsKey(PROPNAME_TYPE )) ||
- (!aFilter.containsKey(PROPNAME_UICOMPONENT )) ||
- (!aFilter.containsKey(PROPNAME_USERDATA ))
- )
- {
- throw new java.lang.Exception("Filter \""+sFilter+"\" does not contain all neccessary properties for a 6.0/6.Y format.");
- }
-
- if (((java.lang.Integer)aFilter.get(PROPNAME_FLAGS)).intValue() < 1)
- throw new java.lang.Exception("Filter \""+sFilter+"\" does not have a valid flag field.");
-
- if (!m_lTypes.containsKey(aFilter.get(PROPNAME_TYPE)))
- throw new java.lang.Exception("Filter \""+sFilter+"\" is not registered for a well known type.");
-
- if (nFormat == FORMAT_60)
- {
- if (
- (!aFilter.containsKey(PROPNAME_ORDER )) ||
- (!aFilter.containsKey(PROPNAME_UINAME))
- )
- {
- throw new java.lang.Exception("Filter \""+sFilter+"\" does not contain all neccessary properties for a 6.0 format.");
- }
-
- if (((java.lang.Integer)aFilter.get(PROPNAME_ORDER)).intValue() < 0)
- throw new java.lang.Exception("Filter \""+sFilter+"\" does not have a valid Order value.");
-
- if (((java.util.HashMap)aFilter.get(PROPNAME_UINAME)).isEmpty())
- throw new java.lang.Exception("Filter \""+sFilter+"\" is not localized.");
- }
-/*TODO
- depends from the configuration item "remove_filter_flag_preferred" ...
-
- if (nFormat == FORMAT_6Y)
- {
- int flags = ((java.lang.Integer)aFilter.get(PROPNAME_FLAGS)).intValue();
- if ((flags & FLAGVAL_PREFERRED) == FLAGVAL_PREFERRED)
- throw new java.lang.Exception("Filter \""+sFilter+"\" has superflous Preferred flag set. Please remove this flag. ["+flags+"]");
- }
-*/
- }
- }
-
- /*TODO
- * - remove graphic filters!
- * - move detect services to types
- */
-
- public synchronized void transform60to6Y(boolean bCreateCombineFilterFlag ,
- boolean bRemoveFilterFlagBrowserPreferred,
- boolean bRemoveFilterFlagPreferred ,
- boolean bRemoveFilterFlag3rdparty ,
- boolean bRemoveFilterUINames ,
- boolean bRemoveGraphicFilters ,
- boolean bSetDefaultDetector )
- throws java.lang.Exception
- {
- // remove some superflous cache entries ...
- // everything related to "load macros"
- // Macros should be dispatched instead of loaded!
- if (m_lTypes.containsKey("macro"))
- {
- m_lTypes.remove("macro");
- m_aDebug.setDetailedInfo("superflous type \"macro\" was removed");
- }
- if (m_lFrameLoaders.containsKey("com.sun.star.comp.sfx2.SfxMacroLoader"))
- {
- m_lFrameLoaders.remove("com.sun.star.comp.sfx2.SfxMacroLoader");
- m_aDebug.setDetailedInfo("superflous frame loader \"com.sun.star.comp.sfx2.SfxMacroLoader\" was removed");
- }
-
- // step over all filters and check her properties and references
- java.util.Vector lPreferredFilters = new java.util.Vector();
- java.util.Vector lNoRealFilters = new java.util.Vector();
- java.util.Iterator aIt1 = m_lFilters.keySet().iterator();
- while(aIt1.hasNext())
- {
- java.lang.String sFilter = (java.lang.String)aIt1.next();
- java.util.HashMap aFilter = (java.util.HashMap)m_lFilters.get(sFilter);
-
- // remove the "graphic helper filters" used by draw and impress
- // They dont have any valid document service name set and cant be handled
- // by our generic FrameLoader!
- // They must be moved to her own configuration ...
-
- if (
- (bRemoveGraphicFilters ) &&
- (((java.lang.String)aFilter.get(PROPNAME_DOCUMENTSERVICE)).length() < 1)
- )
- {
- lNoRealFilters.add(sFilter);
- continue;
- }
-
- java.lang.String sTypeReg = (java.lang.String)aFilter.get(PROPNAME_TYPE);
- java.util.HashMap aType = (java.util.HashMap)m_lTypes.get(sTypeReg);
-
- // move UINames of filters to types
- java.util.HashMap lFilterUINames = (java.util.HashMap)aFilter.get(PROPNAME_UINAME);
- java.util.HashMap lTypeUINames = (java.util.HashMap)aType.get(PROPNAME_UINAME);
- java.util.HashMap lPatchUINames = new java.util.HashMap();
-
- java.util.Iterator pUINames = lTypeUINames.keySet().iterator();
- while(pUINames.hasNext())
- {
- java.lang.String sLocale = (java.lang.String)pUINames.next();
- java.lang.String sValue = (java.lang.String)lTypeUINames.get(sLocale);
- lPatchUINames.put(sLocale, sValue);
- }
-
- pUINames = lFilterUINames.keySet().iterator();
- while(pUINames.hasNext())
- {
- java.lang.String sLocale = (java.lang.String)pUINames.next();
- java.lang.String sValue = (java.lang.String)lFilterUINames.get(sLocale);
- lPatchUINames.put(sFilter+":"+sLocale, sValue);
- }
- aType.put(PROPNAME_UINAME, lPatchUINames);
-
- // set generic filter service wrapper for our own native filters!
- // By the way: The format types of such filters can be detected by our
- // generic detector too.
- if (
- (bSetDefaultDetector ) &&
- (((java.lang.String)aFilter.get(PROPNAME_FILTERSERVICE)).length() < 1)
- )
- {
- /*ME_THINKING aFilter.put(PROPNAME_FILTERSERVICE, FILTERSERVICE_NATIVEWARPPER);*/
- aType.put(PROPNAME_DETECTSERVICE, GENERIC_DETECTSERVICE);
- }
-
- // move the preferred filter information to any type
- // Set the filter name to the type for which the filter is registered.
- // If this type already have a set PreferredFilter value, check if the current filter
- // has the preferred flag set. If not ignore it - otherwhise overwrite the
- // current information at the type. But look for multiple preferred filter relations ...
- // means: look if more the one filter has set the preferred flag for the same type!
-
- /* Attention!
- *
- * Dont remove the preferred flag from any filter! ... not here.
- * Otherwhise next loop can't detect ambigous preferred registrations!
- * Add filter to a temp. list, which can be used later to remove the preferred
- * flag ...
- */
-
- int flags1 = ((java.lang.Integer)aFilter.get(PROPNAME_FLAGS)).intValue();
- java.lang.String sDocSrv = (java.lang.String)aFilter.get(PROPNAME_DOCUMENTSERVICE);
- if (sDocSrv.length()>0)// without a doc service its not a real filter - its a graphic filter!
- {
- boolean preferred1 = ((flags1 & FLAGVAL_PREFERRED) == FLAGVAL_PREFERRED);
- if (preferred1)
- lPreferredFilters.add(aFilter);
-
- java.lang.String sAlreadyRegisteredFilter = (java.lang.String)aType.get(PROPNAME_PREFERREDFILTER);
- // no registration => set this filter as "any possible one"!
- if (sAlreadyRegisteredFilter.length() < 1)
- aType.put(PROPNAME_PREFERREDFILTER, sFilter);
- else
- {
- java.util.HashMap aAlreadyRegisteredFilter = (java.util.HashMap)m_lFilters.get(sAlreadyRegisteredFilter);
- int flags2 = ((java.lang.Integer)aAlreadyRegisteredFilter.get(PROPNAME_FLAGS)).intValue();
- boolean preferred2 = ((flags2 & FLAGVAL_PREFERRED) == FLAGVAL_PREFERRED);
-
- // two preferred filters for the same type! => error
- if (preferred1 && preferred2)
- {
- java.lang.StringBuffer sMsg = new java.lang.StringBuffer(256);
- sMsg.append("More the one preferred filter detected for the same type.\n");
- sMsg.append("\ttype = \""+sTypeReg+"\"\n");
- sMsg.append("\tfilter[1] = \""+sAlreadyRegisteredFilter+"\"\n");
- sMsg.append("\tfilter[2] = \""+sFilter+"\"\n");
- throw new java.lang.Exception(sMsg.toString());
- }
- else
- // overwrite the "any possible" filter with a real preferred one
- if (preferred1 && !preferred2)
- aType.put(PROPNAME_PREFERREDFILTER, sFilter);
- }
- }
-
- // create the new combined filter flag if required
- if (bCreateCombineFilterFlag)
- {
- if (
- ((flags1 & FLAGVAL_IMPORT) == FLAGVAL_IMPORT) &&
- ((flags1 & FLAGVAL_EXPORT) == FLAGVAL_EXPORT)
- )
- {
- flags1 |= FLAGVAL_COMBINED;
- flags1 &= ~FLAGVAL_IMPORT ;
- flags1 &= ~FLAGVAL_EXPORT ;
- aFilter.put(PROPNAME_FLAGS, new java.lang.Integer(flags1));
- }
- }
-
- // remove some obsolete filter flags
- if (bRemoveFilterFlagBrowserPreferred)
- {
- flags1 &= ~FLAGVAL_BROWSERPREFERRED;
- aFilter.put(PROPNAME_FLAGS, new java.lang.Integer(flags1));
- }
-
- if (bRemoveFilterFlag3rdparty)
- {
- flags1 &= ~FLAGVAL_3RDPARTYFILTER;
- aFilter.put(PROPNAME_FLAGS, new java.lang.Integer(flags1));
- }
-
- // if its a filter with an UI order ...
- // move this information to the registered type.
- // Note: Because more then one filter can be registered for the same type.
- // Handle it as an error ... till we find a better transformation!
- java.lang.Integer nOrder = (java.lang.Integer)aFilter.get(PROPNAME_ORDER);
- java.lang.Integer nUIOrder = (java.lang.Integer)aType.get(PROPNAME_UIORDER);
- int order = nOrder.intValue();
- int uiorder = nUIOrder.intValue();
-
- if (order > 0)
- {
- if (
- (uiorder < 1 ) ||
- (uiorder > order)
- )
- {
- aType.put(PROPNAME_UIORDER, nOrder);
- m_aDebug.setDetailedInfo("moved order value "+nOrder+" from filter \""+sFilter+"\" to type \""+sTypeReg+"\"");
- }
- else
- m_aDebug.setDetailedInfo("ignore order value [order="+nOrder+",uiorder="+nUIOrder+"] for filter \""+sFilter+"\" and type \""+sTypeReg+"\"");
- }
- }
-
- // NOW ... remove the preferred flags from every filter, which it has set.
- java.util.Enumeration aIt2 = null;
- if (bRemoveFilterFlagPreferred)
- {
- aIt2 = lPreferredFilters.elements();
- while (aIt2.hasMoreElements())
- {
- java.util.HashMap aFilter = (java.util.HashMap)aIt2.nextElement();
- int flags = ((java.lang.Integer)aFilter.get(PROPNAME_FLAGS)).intValue();
- flags &= ~FLAGVAL_PREFERRED;
- aFilter.put(PROPNAME_FLAGS, new java.lang.Integer(flags));
- }
- }
-
- // NOW ... remove all "no real filters" like the graphich helper filters of
- // draw and impress!
- aIt2 = lNoRealFilters.elements();
- while (aIt2.hasMoreElements())
- m_lFilters.remove(aIt2.nextElement());
-
- // step over all detect services and move this information directly to
- // the corresponding types
- // Overwrite possibel default registrations with a real existing one!
- aIt1 = m_lDetectServices.keySet().iterator();
- while(aIt1.hasNext())
- {
- java.lang.String sDetector = (java.lang.String)aIt1.next();
- java.util.HashMap aDetector = (java.util.HashMap)m_lDetectServices.get(sDetector);
- java.util.Vector lTypeReg = (java.util.Vector)aDetector.get(PROPNAME_TYPES);
- aIt2 = lTypeReg.elements();
- while(aIt2.hasMoreElements())
- {
- java.lang.String sTypeReg = (java.lang.String)aIt2.nextElement();
- java.util.HashMap aType = (java.util.HashMap)m_lTypes.get(sTypeReg);
-
- if (aType == null)
- {
- m_aDebug.setWarning("Detector \""+sDetector+"\" seem to be registered for unknown type \""+sTypeReg+"\"");
- continue;
- }
-
- java.lang.Object aAlreadyRegisteredDetector = aType.get(PROPNAME_DETECTSERVICE);
- if (aAlreadyRegisteredDetector != null && ((java.lang.String)aAlreadyRegisteredDetector).length() > 0)
- {
- java.lang.StringBuffer sMsg = new java.lang.StringBuffer(256);
- sMsg.append("type \""+sTypeReg+"\" has ambigous registrations of a detect service\n");
- sMsg.append("\tdetect service[1] = \""+(java.lang.String)aAlreadyRegisteredDetector+"\"\n");
- sMsg.append("\tdetect service[2] = \""+sDetector+"\"\n");
- m_aDebug.setWarning(sMsg.toString());
- }
- aType.put(PROPNAME_DETECTSERVICE, sDetector);
- m_aDebug.setGlobalInfo("move detector \""+sDetector+"\" to type \""+sTypeReg+"\"");
- }
- }
-
- // because all detect service was registered as type properties directly ...
- // remove all detect service objects of this cache!
- m_lDetectServices.clear();
-
- // step over all frame loader and move this information directly to
- // the corresponding types
- // Overwrite possibel default registrations with a real existing one!
- aIt1 = m_lFrameLoaders.keySet().iterator();
- while(aIt1.hasNext())
- {
- java.lang.String sLoader = (java.lang.String)aIt1.next();
- java.util.HashMap aLoader = (java.util.HashMap)m_lFrameLoaders.get(sLoader);
- java.util.Vector lTypeReg = (java.util.Vector)aLoader.get(PROPNAME_TYPES);
- aIt2 = lTypeReg.elements();
- while(aIt2.hasMoreElements())
- {
- java.lang.String sTypeReg = (java.lang.String)aIt2.nextElement();
- java.util.HashMap aType = (java.util.HashMap)m_lTypes.get(sTypeReg);
- java.lang.String sAlreadyRegisteredLoader = (java.lang.String)aType.get(PROPNAME_FRAMELOADER);
- if (sAlreadyRegisteredLoader != null && sAlreadyRegisteredLoader.length() > 0)
- {
- java.lang.StringBuffer sMsg = new java.lang.StringBuffer(256);
- sMsg.append("type \""+sTypeReg+"\" has ambigous registrations of a frame loader\n");
- sMsg.append("\tframe loader[1] = \""+sAlreadyRegisteredLoader+"\"\n");
- sMsg.append("\tframe loader[2] = \""+sLoader+"\"\n");
- m_aDebug.setWarning(sMsg.toString());
- }
- aType.put(PROPNAME_FRAMELOADER, sLoader);
- System.out.println("move loader \""+sLoader+"\" to type \""+sTypeReg+"\"");
- }
- }
-
- m_lFrameLoaders.clear();
-
- // step over all content handler and move this information directly to
- // the corresponding types
- // Overwrite possibel default registrations with a real existing one!
- aIt1 = m_lContentHandlers.keySet().iterator();
- while(aIt1.hasNext())
- {
- java.lang.String sHandler = (java.lang.String)aIt1.next();
- java.util.HashMap aHandler = (java.util.HashMap)m_lContentHandlers.get(sHandler);
- java.util.Vector lTypeReg = (java.util.Vector)aHandler.get(PROPNAME_TYPES);
- aIt2 = lTypeReg.elements();
- while(aIt2.hasMoreElements())
- {
- java.lang.String sTypeReg = (java.lang.String)aIt2.nextElement();
- java.util.HashMap aType = (java.util.HashMap)m_lTypes.get(sTypeReg);
- java.lang.String sAlreadyRegisteredHandler = (java.lang.String)aType.get(PROPNAME_CONTENTHANDLER);
- if (sAlreadyRegisteredHandler != null && sAlreadyRegisteredHandler.length() > 0)
- {
- java.lang.StringBuffer sMsg = new java.lang.StringBuffer(256);
- sMsg.append("type \""+sTypeReg+"\" has ambigous registrations of a content handler\n");
- sMsg.append("\tcontent handler[1] = \""+sAlreadyRegisteredHandler+"\"\n");
- sMsg.append("\tcontent handler[2] = \""+sHandler+"\"\n");
- m_aDebug.setWarning(sMsg.toString());
- }
- aType.put(PROPNAME_CONTENTHANDLER, sHandler);
- System.out.println("move handler \""+sHandler+"\" to type \""+sTypeReg+"\"");
- }
- }
-
- m_lContentHandlers.clear();
-
-/*
- int c = m_lTypes.size();
- java.lang.String[] lT1 = new java.lang.String[c];
- java.lang.String[] lT2 = new java.lang.String[c];
- long nUPS = 0;
-
- int i = 0;
- aIt1 = m_lTypes.keySet().iterator();
- while(aIt1.hasNext())
- {
- lT1[i] = (java.lang.String)aIt1.next();
- lT2[i] = lT1[i];
- ++i;
- }
-
- for (int i1=0; i1<c; ++i1)
- {
- java.lang.String sT1 = lT1[i1];
- java.util.HashMap aT1 = (java.util.HashMap)m_lTypes.get(sT1);
-
- for (int i2=i1; i2<c; ++i2)
- {
- java.lang.String sT2 = lT1[i2];
- java.util.HashMap aT2 = (java.util.HashMap)m_lTypes.get(sT2);
-
- if (!sT1.equals(sT2))
- {
- if (
- aT1.get(PROPNAME_MEDIATYPE).equals(aT2.get(PROPNAME_MEDIATYPE)) &&
- aT1.get(PROPNAME_CLIPBOARDFORMAT).equals(aT2.get(PROPNAME_CLIPBOARDFORMAT)) &&
- aT1.get(PROPNAME_URLPATTERN).equals(aT2.get(PROPNAME_URLPATTERN)) &&
- aT1.get(PROPNAME_EXTENSIONS).equals(aT2.get(PROPNAME_EXTENSIONS))
- )
- {
- System.err.println("UUPPSS----------------------------------------------------------------------------");
- System.err.println("[1]\""+sT1+"\" equals [2]\""+sT2+"\"");
- System.err.println("\tprops 1: "+aT1);
- System.err.println("\tprops 2: "+aT2);
- System.err.println("----------------------------------------------------------------------------------\n");
- ++nUPS;
-// throw new java.lang.Exception("UUPPS :-)");
- }
- }
- }
- }
- System.err.println("count of UPS = "+nUPS);
-*/
- }
-}
diff --git a/filter/source/config/tools/utils/ConfigHelper.java b/filter/source/config/tools/utils/ConfigHelper.java
deleted file mode 100644
index 18518dc6df39..000000000000
--- a/filter/source/config/tools/utils/ConfigHelper.java
+++ /dev/null
@@ -1,297 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: ConfigHelper.java,v $
- * $Revision: 1.7 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org 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 version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- **********************************************************************_*/
-
-package com.sun.star.filter.config.tools.utils;
-
-
-//_______________________________________________
-// definition
-
-/** can be used to analyze command line parameters
- * and merge it together with might existing config
- * files. That provides the possibility to overwrite
- * config values via command line parameter.
- *
- *
- */
-public class ConfigHelper extends java.util.Properties
-{
- //___________________________________________
- // member
-
- /** indicates an empty command line. */
- private boolean m_bEmpty = true;
-
- //___________________________________________
- // ctor
-
- //-------------------------------------------
- /** initialize a new helper with the list of
- * command line parameters and bind this new instance
- * to a property file on disk.
- *
- * @param sPropFile
- * name of the property file.
- * If its set to null or an empty value
- * it will be ignored.
- *
- * @param lCommandLineArgs
- * the list of original command line arguments.
- *
- * @throws [Exception]
- * in case the command line contains an unknown
- * schema for specifiying parameters or the
- * specified property file does not exists
- * or seem to be corrupted.
- */
- public ConfigHelper(java.lang.String sPropFile ,
- java.lang.String[] lCommandLineArgs)
- throws java.lang.Exception
- {
- // first load prop file, so its values can be overwritten
- // by command line args later
- // Do it only, if a valid file name was given.
- // But in case this file name is wrong, throw an exception.
- // So the outside code can react!
- if (
- (sPropFile != null) &&
- (sPropFile.length() > 0 )
- )
- {
- java.lang.ClassLoader aLoader = getClass().getClassLoader();
- java.io.InputStream aStream = aLoader.getResourceAsStream(sPropFile);
- if (aStream == null)
- aStream = new java.io.FileInputStream(sPropFile);
- load(aStream);
- }
-
- int count = 0;
- if (lCommandLineArgs != null)
- count = lCommandLineArgs.length;
- m_bEmpty = (count < 1);
-
- for (int arg=0; arg<count; ++arg)
- {
- // is it a named-value argument?
- // Note: We ignores double "=" signs! => search from left to right
- int len = lCommandLineArgs[arg].length();
- int pos = lCommandLineArgs[arg].indexOf('=');
- if (pos != -1)
- {
- java.lang.String sArg = lCommandLineArgs[arg].substring(0,pos);
- java.lang.String sValue = lCommandLineArgs[arg].substring(pos+1);
- setProperty(sArg, sValue);
- continue;
- }
-
- // is it a boolean argument?
- // Note: Because "--" and "-" will be interpreted as the same
- // we search from right to left!
- pos = lCommandLineArgs[arg].lastIndexOf('-');
- if (pos == -1)
- pos = lCommandLineArgs[arg].lastIndexOf('/');
- if (pos != -1)
- {
- java.lang.String sArg = lCommandLineArgs[arg].substring(pos+1);
- setProperty(sArg, java.lang.String.valueOf(true));
- continue;
- }
-
- // There is an unknown format used by this argument ...
- throw new MalformedCommandLineException("Invalid command line detected. The argument \""+lCommandLineArgs[arg]+"\" use an unsupported format.");
- }
- }
-
- //-------------------------------------------
- /** indicates if the given command line includes
- * a help request.
- *
- * @return True if there was an explicit help request.
- */
- public synchronized boolean isHelp()
- {
- return (
- (containsKey("help")) ||
- (containsKey("?") ) ||
- (containsKey("h") )
- );
- }
-
- //-------------------------------------------
- /** indicates if the gioven command line was empty.
- *
- * @return True if there was an empty command line.
- */
- public synchronized boolean isEmpty()
- {
- return m_bEmpty;
- }
-
- //-------------------------------------------
- /** returns the value of sProp as boolean value.
- *
- * @param sProp
- * the name of the parameter.
- *
- * @return The boolean value of the requested property.
- *
- * @throw [NoSuchElementException]
- * if the requested property does not exists.
- */
- public synchronized boolean getBoolean(java.lang.String sProp)
- throws java.util.NoSuchElementException
- {
- java.lang.String sValue = getProperty(sProp);
- if (sValue == null)
- throw new java.util.NoSuchElementException("The requested config value \""+sProp+"\" does not exists!");
- return new java.lang.Boolean(sValue).booleanValue();
- }
-
- public synchronized boolean getBoolean(java.lang.String sProp ,
- boolean bDefault)
- {
- java.lang.String sDefault = java.lang.String.valueOf(bDefault);
- java.lang.String sValue = getProperty(sProp, sDefault);
- return new java.lang.Boolean(sValue).booleanValue();
- }
-
- //-------------------------------------------
- /** returns the value of sProp as int value.
- *
- * @param sProp
- * the name of the parameter.
- *
- * @return The int value of the requested property.
- *
- * @throw [NoSuchElementException]
- * if the requested property does not exists.
- */
- public synchronized int getInt(java.lang.String sProp)
- throws java.util.NoSuchElementException
- {
- java.lang.String sValue = getProperty(sProp);
- if (sValue == null)
- throw new java.util.NoSuchElementException("The requested config value \""+sProp+"\" does not exists!");
- return new java.lang.Integer(sValue).intValue();
- }
-
- public synchronized int getInt(java.lang.String sProp ,
- int nDefault)
- {
- java.lang.String sDefault = java.lang.String.valueOf(nDefault);
- java.lang.String sValue = getProperty(sProp, sDefault);
- return new java.lang.Integer(sValue).intValue();
- }
-
- //-------------------------------------------
- /** returns the value of sProp as string value.
- *
- * @param sProp
- * the name of the parameter.
- *
- * @return The string value of the requested property.
- *
- * @throw [NoSuchElementException]
- * if the requested property does not exists.
- */
- public synchronized java.lang.String getString(java.lang.String sProp)
- throws java.util.NoSuchElementException
- {
- java.lang.String sValue = getProperty(sProp);
- if (sValue == null)
- throw new java.util.NoSuchElementException("The requested config value \""+sProp+"\" does not exists!");
- return sValue;
- }
-
- //-------------------------------------------
- /** returns the value of sProp as string list value!
- *
- * @descr The delimiter must be well known and
- * it must be clear if trailing/leading
- * whitespaces must be ignored or not.
- *
- * @param sProp
- * the name of the parameter.
- *
- * @param sDelim
- * the delimiter, which must be used to split
- * the config string value into an array.
- *
- * @param bTrim
- * if its set to true, trailing and leading whitespace
- * characters will be ommited.
- *
- * @param bDecode
- * if its set to TRUE all liste items will be
- * interpreted as "<xxx>" and converted to <xxx>!
- *
- * @return The string list value of the requested property.
- *
- * @throw [NoSuchElementException]
- * if the requested property does not exists.
- */
- public synchronized java.util.Vector getStringList(java.lang.String sProp ,
- java.lang.String sDelimiter,
- boolean bTrim ,
- boolean bDecode )
- throws java.util.NoSuchElementException
- {
- java.lang.String sValue = getProperty(sProp);
- if (sValue == null)
- throw new java.util.NoSuchElementException("The requested config value \""+sProp+"\" does not exists!");
-
- java.util.Vector lValue = new java.util.Vector();
- try
- {
- java.util.StringTokenizer lTokens = new java.util.StringTokenizer(sValue, sDelimiter);
- while(lTokens.hasMoreTokens())
- {
- java.lang.String sToken = lTokens.nextToken();
- // remove trailing/leading whitespaces
- if (bTrim)
- sToken = sToken.trim();
- // remove ""
- if (
- (bDecode ) &&
- (sToken.indexOf("\"") == 0 ) &&
- (sToken.lastIndexOf("\"") == sToken.length()-1)
- )
- {
- sToken = sToken.substring(1, sToken.length()-1);
- }
- lValue.add(sToken);
- }
- }
- catch(java.lang.Throwable ex)
- { lValue.clear(); }
-
- return lValue;
- }
-}
diff --git a/filter/source/config/tools/utils/FileHelper.java b/filter/source/config/tools/utils/FileHelper.java
deleted file mode 100644
index 1086876f5d4e..000000000000
--- a/filter/source/config/tools/utils/FileHelper.java
+++ /dev/null
@@ -1,760 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: FileHelper.java,v $
- * $Revision: 1.13 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org 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 version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-package com.sun.star.filter.config.tools.utils;
-
-
-// __________ Implementation __________
-
-/**
- * It collects some static helper functons to handle file system specific problems.
- * Sometimes it's neccessary to convert URL from/to system pathes;
- * or from string notation to structural versions (e.g. com.sun.star.util.URL).
- * And sometimes java had another notation then the office it has.
- * Further it provides functionality to work easiear with the java.io.File class of java.
- *
- *
- */
-public class FileHelper
-{
- // ____________________
-
- /**
- * Because the office need URLs for loading/saving documents
- * we must convert used system pathes.
- * And java use another notation for file URLs ... correct it.
- *
- * @param aSystemPath
- * represent the file in system notation
- *
- * @return [String]
- * a file url which represent the given system path
- */
- public static java.lang.String getFileURLFromSystemPath(java.io.File aSystemPath)
- {
- System.out.println("TODO: must be adapted to java 1.3 :-(");
- System.exit(-1);
-/*TODO_JAVA
- try
- {
- sFileURL = aSystemPath.toURI().toURL().toString();
- }
- catch( MalformedURLException exWrong )
- {
- sFileURL = null;
- }
-*/
- java.lang.String sFileURL = null;
-
- // problem of java: file URL's are coded with 1 slash instead of 2 or 3 ones!
- // => correct this problem first, otherwise office can't use these URL's
- if(
- (sFileURL != null ) &&
- (sFileURL.startsWith("file:/") == true ) &&
- (sFileURL.startsWith("file://") == false)
- )
- {
- java.lang.StringBuffer sWorkBuffer = new java.lang.StringBuffer(sFileURL);
- sWorkBuffer.insert(6,"//");
- sFileURL = sWorkBuffer.toString();
- }
-
- return sFileURL;
- }
-
- // ____________________
-
- /**
- * The same as getFileURLFromSystemPath() before but uses string parameter instead
- * of a java.io.File type. It exist to supress converting of neccessary parameters in the
- * outside code. But of course getFileURLFromSystemPath(File) will be a little bit faster
- * then this method ...
- *
- * @param sSystemPath
- * represent the file in system notation
- *
- * @return [String]
- * a file url which represent the given system path
- */
- public static java.lang.String getFileURLFromSystemPath(java.lang.String sSystemPath)
- {
- return getFileURLFromSystemPath(new java.io.File(sSystemPath));
- }
-
- // ____________________
-
- /**
- * Does the same as getFileURLFromSystemPath() before ... but uses
- * the given protocol string (e.g."http://") insted of "file:///".
- *
- * @param aSystemPath
- * represent the file in system notation
- *
- * @param aBasePath
- * define the base path of the aSystemPath value,
- * which must be replaced with the value of "sServerPath".
- *
- * @param sServerURL
- * Will be used to replace sBasePath.
- *
- * @example
- * System Path = "d:\test\file.txt"
- * Base Path = "d:\test"
- * Server Path = "http://alaska:8000"
- * => "http://alaska:8000/file.txt"
- *
- * @return [String]
- * an url which represent the given system path
- * and uses the given protocol
- */
- public static java.lang.String getURLWithProtocolFromSystemPath(java.io.File aSystemPath,
- java.io.File aBasePath ,
- java.lang.String sServerURL )
- {
- System.out.println("TODO: must be adapted to java 1.3 :-(");
- System.exit(-1);
-
- java.lang.String sFileURL = FileHelper.getFileURLFromSystemPath(aSystemPath);
- java.lang.String sBaseURL = FileHelper.getFileURLFromSystemPath(aBasePath );
-
- // cut last '/'!
- if (sBaseURL.lastIndexOf('/')==(sBaseURL.length()-1))
- sBaseURL = sBaseURL.substring(0,sBaseURL.length()-1);
-
- // cut last '/'!
- if (sServerURL.lastIndexOf('/')==(sServerURL.length()-1))
- sServerURL = sServerURL.substring(0,sServerURL.length()-1);
-
-//TODO_JAVA java.lang.String sURL = sFileURL.replaceFirst(sBaseURL,sServerURL);
- java.lang.String sURL = null;
- return sURL;
- }
-
- // ____________________
-
- /**
- * The same as getURLWithProtocolFromSystemPath() before but uses string parameter instead
- * of a java.io.File types. It exist to supress converting of neccessary parameters in the
- * outside code. But of course getURLWithProtocolFromSystemPath(File,File,String) will be
- * a little bit faster then this method ...
- *
- * @param sSystemPath
- * represent the file in system notation
- *
- * @param sBasePath
- * define the base path of the aSystemPath value,
- * which must be replaced with the value of "sServerPath".
- *
- * @param sServerPath
- * Will be used to replace sBasePath.
- *
- * @example
- * System Path = "d:\test\file.txt"
- * Base Path = "d:\test"
- * Server Path = "http://alaska:8000"
- * => "http://alaska:8000/file.txt"
- *
- * @return [String]
- * an url which represent the given system path
- * and uses the given protocol
- */
- public static java.lang.String getURLWithProtocolFromSystemPath(java.lang.String sSystemPath,
- java.lang.String sBasePath ,
- java.lang.String sServerPath)
- {
- return getURLWithProtocolFromSystemPath(new java.io.File(sSystemPath), new java.io.File(sBasePath), sServerPath);
- }
-
- //_________________________________
-
- /**
- * Return a list of all available files of a directory.
- * We filter sub directories. All other files
- * are returned. So they can be used for further purposes.
- * One parameter define the start directory,
- * another one enable/disable recursive search into sub directories.
- *
- * @param aRoot
- * the start directory, which should be analyzed.
- *
- * @param bRecursive
- * enable/disable search in sub directories.
- *
- * @return [Vector]
- * a filtered list of java java.io.File objects of all available files
- * of the start dir (and may of its sub directories).
- */
- public static java.util.Vector getSystemFilesFromDir(java.io.File aRoot ,
- boolean bRecursive)
- {
- java.io.File[] lAllFiles = aRoot.listFiles();
- if (lAllFiles == null)
- return null;
-
- int c = lAllFiles.length;
- java.util.Vector lFilteredFiles = new java.util.Vector(c);
- for (int i=0; i<c; ++i)
- {
- // simple files!
- if (lAllFiles[i].isFile())
- lFilteredFiles.add(lAllFiles[i]);
- else
- // recursion?
- if (bRecursive && lAllFiles[i].isDirectory())
- {
- java.util.Vector lSubFiles = FileHelper.getSystemFilesFromDir(lAllFiles[i],bRecursive);
- if (lSubFiles != null)
- {
- java.util.Enumeration aSnapshot = lSubFiles.elements();
- while (aSnapshot.hasMoreElements())
- lFilteredFiles.add(aSnapshot.nextElement());
- }
- }
- }
-
- return lFilteredFiles;
- }
-
- //_________________________________
- /** it converts the given name (e.g. an internal type name) to
- * an usable system file name.
- *
- * Do so some special characters (e.g. "/") must be replaced with other ones.
- *
- * @param sName
- * the name, which should be analyzed and converted.
- *
- * @return A valid system file name, which should be similar to the
- * given name, but does not contain special characters any longer.
- */
- public static java.lang.String convertName2FileName(String sName)
- {
- int i = 0;
- int nLength = sName.length();
- char[] lBuffer = sName.toCharArray();
-
- java.lang.StringBuffer sNewName = new java.lang.StringBuffer(nLength);
- for (i=0; i<nLength; ++i)
- {
- char c = lBuffer[i];
- if (
- c>=48 && c<=57 // 0-9
- &&
- c>=97 && c<=122 // a-z
- &&
- c>=65 && c<=90 // A-Z
- )
- {
- sNewName.append(c);
- }
- else
- {
- sNewName.append("_");
- }
- }
-
- return sNewName.toString();
- }
-
- //___________________________________________
-
- /** it removes all child nodes of a file system directory.
- *
- * @param aDirectory
- * points to the directory, which should be made empty.
- *
- * @param bFilesOnly
- * force deletion of files only. If its set to TRUE,
- * no subdirectory will be removed.
- *
- * @throw [java.io.IOException]
- * if some of the child nodes couldn't be removed.
- */
- public static void makeDirectoryEmpty(java.io.File aDirectory,
- boolean bFilesOnly)
- throws java.io.IOException
- {
- if (!aDirectory.isDirectory())
- throw new java.io.FileNotFoundException("\""+aDirectory.toString()+"\" is not a directory.");
-
- java.io.File[] lChilds = aDirectory.listFiles();
- for (int f=0; f<lChilds.length; ++f)
- {
- if (lChilds[f].isDirectory())
- {
- FileHelper.makeDirectoryEmpty(lChilds[f], bFilesOnly);
- if (!bFilesOnly)
- {
- if (!lChilds[f].delete())
- throw new java.io.IOException("\""+lChilds[f].toString()+"\" could not be deleted.");
- }
- }
- else
- {
- if (!lChilds[f].delete())
- throw new java.io.IOException("\""+lChilds[f].toString()+"\" could not be deleted.");
- }
- }
- }
-
- //___________________________________________
-
- /** it try to generate a new file with a unique ID
- * inside given directory.
- *
- * Call this method with a directory and a base name for
- * a file. It will be used to generate a new files inside
- * the directory. Existing files will be checked and new file
- * name will be tested till a non existing file name would be found.
- *
- * @param aBaseDir
- * must be a system path
- * e.g.: "c:\temp"
- *
- * @param sBaseName
- * must be a system file name without extensions.
- * e.g.: "myfile_"
- *
- * @param sExtension
- * the whished extension.
- * e.g.: "dat"
- *
- * @return A valid file object, if an unique file could be created -
- * Null otherwhise.
- * e.g.: "c:\temp\myfile_1.dat"
- */
- public static java.io.File createUniqueFile(java.io.File aBaseDir ,
- java.lang.String sBaseName ,
- java.lang.String sExtension)
- {
- java.io.File aBaseFile = new java.io.File(aBaseDir, sBaseName);
- java.io.File aFile = null;
- long nr = 0;
- while (aFile == null && nr < java.lang.Long.MAX_VALUE)
- {
- java.lang.String sFileName = aBaseFile.getPath() + java.lang.String.valueOf(nr) + "." + sExtension;
- aFile = new java.io.File(sFileName);
- if (aFile.exists())
- aFile=null;
- ++nr;
- }
- return aFile;
- }
-
- //___________________________________________
-
- /** reads the complete file, using the right encoding,
- * into the given string buffer.
- *
- * @param aFile
- * must point to a system file, which must exist.
- * e.g.: "c:\temp\test.txt"
- * "/tmp/test.txt"
- *
- * @param sEncoding
- * will be used to encode the string content
- * inside the file.
- * e.g.: "UTF8"
- *
- * @param sBuffer
- * used to return the file content.
- *
- * @throw [IOException]
- * - if the file couldnt be opened
- * - if the file does not use the right encoding
- */
- public static void readEncodedBufferFromFile(java.io.File aFile ,
- java.lang.String sEncoding,
- java.lang.StringBuffer sBuffer )
- throws java.io.IOException
- {
- if (sEncoding.equals("UTF-8Special"))
- {
- FileHelper.readAndCheckUTF8File(aFile,sBuffer);
- return;
- }
-
- java.io.FileInputStream aByteStream = new java.io.FileInputStream(aFile.getAbsolutePath());
- java.io.InputStreamReader aEncodedReader = new java.io.InputStreamReader(aByteStream, sEncoding);
- char[] aEncodedBuffer = new char[4096];
- int nReadCount = 0;
-
- while((nReadCount=aEncodedReader.read(aEncodedBuffer))>0)
- sBuffer.append(aEncodedBuffer, 0, nReadCount);
-
- aEncodedReader.close();
- }
-
- //___________________________________________
- private static void logEncodingData(java.lang.StringBuffer sLog ,
- int nUTF8 ,
- int nByteOrg1 ,
- int nByteOrg2 ,
- int nByteOrg3 ,
- int nByteOrg4 ,
- int nByte1 ,
- int nByte2 ,
- int nByte3 ,
- int nByte4 ,
- int nEncodingType)
- {
- sLog.append("["+nEncodingType+"]\t");
- sLog.append((int)nUTF8+"\t=");
- sLog.append("\t"+nByteOrg1+"/"+nByte1);
- sLog.append("\t"+nByteOrg2+"/"+nByte2);
- sLog.append("\t"+nByteOrg3+"/"+nByte3);
- sLog.append("\t"+nByteOrg4+"/"+nByte4);
- sLog.append("\n");
- }
-
- //___________________________________________
- private static char impl_convertBytesToChar(int nByte1, int nByte2, int nByte3, int nByte4)
- {
- return (char)((nByte1*0x40000)+(nByte2*0x1000)+(nByte3*0x40)+nByte4);
- }
-
- //___________________________________________
- private static int impl_readAndCheckNextByte(byte[] aBuffer ,
- int nBufPos ,
- int nBufLength ,
- int nMinRange ,
- int nMaxRange )
- throws java.lang.Exception
- {
- if (nBufPos>=nBufLength)
- throw new java.lang.Exception("impl_readAndCheckNextByte()\nEnd of buffer reached.");
-
- int nByte = aBuffer[nBufPos] & 0xFF;
- if (
- (nByte < nMinRange) ||
- (nByte > nMaxRange)
- )
- {
- throw new java.lang.Exception("impl_readAndCheckNextByte()\nByte does not fit the specified range.");
- }
-
- return nByte;
- }
-
- //___________________________________________
- public static void readAndCheckUTF8File(java.io.File aFile ,
- java.lang.StringBuffer sBuffer)
- throws java.io.IOException
- {
- java.io.FileInputStream aByteStream = new java.io.FileInputStream(aFile.getAbsolutePath());
- byte[] aBuffer = new byte[4096];
- int nReadCount = 0;
- int nByteOrg_1 = 0;
- int nByteOrg_2 = 0;
- int nByteOrg_3 = 0;
- int nByteOrg_4 = 0;
- int nByte_1 = 0;
- int nByte_2 = 0;
- int nByte_3 = 0;
- int nByte_4 = 0;
- char nUTF8 = 0;
- int i = 0;
- int nEncodingType = 0;
- java.lang.StringBuffer sLog = new java.lang.StringBuffer();
-
- try
- {
-
- while((nReadCount=aByteStream.read(aBuffer))>0)
- {
- i=0;
- while (i<nReadCount)
- {
- nByteOrg_1 = 0;
- nByteOrg_2 = 0;
- nByteOrg_3 = 0;
- nByteOrg_4 = 0;
- nByte_1 = 0;
- nByte_2 = 0;
- nByte_3 = 0;
- nByte_4 = 0;
- nUTF8 = 0;
- nEncodingType = 0;
-
- nByteOrg_1 = aBuffer[i++] & 0xFF;
- nByte_1 = nByteOrg_1;
- /*
- Table 3-6. Well-Formed UTF-8 Byte Sequences
-
- ============================================================================
- Nr. Code Points 1st Byte 2nd Byte 3rd Byte 4th Byte
- ============================================================================
- 01 U+ 0..U+ 7F 00..7F
- 02 U+ 80..U+ 7FF C2..DF 80..BF
- 03 U+ 800..U+ FFF E0 A0..BF 80..BF
- 04 U+ 1000..U+ CFFF E1..EC 80..BF 80..BF
- 05 U+ D000..U+ D7FF ED 80..9F 80..BF
- 06 U+ E000..U+ FFFF EE..EF 80..BF 80..BF
- 07 U+ 10000..U+ 3FFFF F0 90..BF 80..BF 80..BF
- 08 U+ 40000..U+ FFFFF F1..F3 80..BF 80..BF 80..BF
- 09 U+100000..U+10FFFF F4 80..8F 80..BF 80..BF
- */
- // ------------------------------------------------------------
- // 01
- // 1 byte: 0xxxxxxx
- // ------------------------------------------------------------
- if (
- (nByteOrg_1 >= 0x00) &&
- (nByteOrg_1 <= 0x7F)
- )
- {
- nEncodingType = 1;
- nUTF8 = (char)nByte_1;
- }
- // ------------------------------------------------------------
- // 02
- // 1 byte: 110xxxxx
- // 2 byte: 101xxxxx
- // ------------------------------------------------------------
- else
- if (
- (nByteOrg_1 >= 0xC2) &&
- (nByteOrg_1 <= 0xDF)
- )
- {
- nEncodingType = 2;
- nByteOrg_2 = FileHelper.impl_readAndCheckNextByte(aBuffer, i++, nReadCount, 0x80, 0xBF);
- nByte_1 = nByteOrg_1-0xC2;
- nByte_2 = nByteOrg_2-0x80;
- nUTF8 = FileHelper.impl_convertBytesToChar(0,0,nByte_1, nByte_2);
- }
- // ------------------------------------------------------------
- // 03
- // 1 byte: 11100000
- // 2 byte: 101xxxxx
- // 3 byte: 10xxxxxx
- // ------------------------------------------------------------
- else
- if (nByteOrg_1 == 0xE0)
- {
- nEncodingType = 3;
- nByteOrg_2 = FileHelper.impl_readAndCheckNextByte(aBuffer, i++, nReadCount, 0xA0, 0xBF);
- nByteOrg_3 = FileHelper.impl_readAndCheckNextByte(aBuffer, i++, nReadCount, 0x80, 0xBF);
- nByte_2 = nByteOrg_2-0xA0;
- nByte_3 = nByteOrg_3-0x80;
- nUTF8 = FileHelper.impl_convertBytesToChar(0,0,nByte_2, nByte_3);
- }
- // ------------------------------------------------------------
- // 04
- // 1 byte: 111xxxxx
- // 2 byte: 10xxxxxx
- // 3 byte: 10xxxxxx
- // ------------------------------------------------------------
- else
- if (
- (nByteOrg_1 >= 0xE1) &&
- (nByteOrg_1 <= 0xEC)
- )
- {
- nEncodingType = 4;
- nByteOrg_2 = FileHelper.impl_readAndCheckNextByte(aBuffer, i++, nReadCount, 0x80, 0xBF);
- nByteOrg_3 = FileHelper.impl_readAndCheckNextByte(aBuffer, i++, nReadCount, 0x80, 0xBF);
- nByte_1 = nByteOrg_1-0xE1;
- nByte_2 = nByteOrg_2-0x80;
- nByte_3 = nByteOrg_3-0x80;
- nUTF8 = FileHelper.impl_convertBytesToChar(0,nByte_1, nByte_2, nByte_3);
- }
- // ------------------------------------------------------------
- // 05
- // 1 byte: 11101101
- // 2 byte: 10xxxxxx
- // 3 byte: 10xxxxxx
- // ------------------------------------------------------------
- else
- if (nByteOrg_1 == 0xED)
- {
- nEncodingType = 5;
- nByteOrg_2 = FileHelper.impl_readAndCheckNextByte(aBuffer, i++, nReadCount, 0x80, 0x9F);
- nByteOrg_3 = FileHelper.impl_readAndCheckNextByte(aBuffer, i++, nReadCount, 0x80, 0xBF);
- nByte_2 = nByteOrg_2-0x80;
- nByte_3 = nByteOrg_3-0x80;
- nUTF8 = FileHelper.impl_convertBytesToChar(0,0, nByte_2, nByte_3);
- }
- // ------------------------------------------------------------
- // 06
- // 1 byte: 1110111x
- // 2 byte: 10xxxxxx
- // 3 byte: 10xxxxxx
- // ------------------------------------------------------------
- else
- if (
- (nByteOrg_1 >= 0xEE) &&
- (nByteOrg_1 <= 0xEF)
- )
- {
- nEncodingType = 6;
- nByteOrg_2 = FileHelper.impl_readAndCheckNextByte(aBuffer, i++, nReadCount, 0x80, 0xBF);
- nByteOrg_3 = FileHelper.impl_readAndCheckNextByte(aBuffer, i++, nReadCount, 0x80, 0xBF);
- nByte_1 = nByteOrg_1-0xEE;
- nByte_2 = nByteOrg_2-0x80;
- nByte_3 = nByteOrg_3-0x80;
- nUTF8 = FileHelper.impl_convertBytesToChar(0,nByte_1, nByte_2, nByte_3);
- }
- // ------------------------------------------------------------
- // 07
- // 1 byte: 11110000
- // 2 byte: 1001xxxx
- // 3 byte: 10xxxxxx
- // 4 byte: 10xxxxxx
- // ------------------------------------------------------------
- else
- if (nByteOrg_1 == 0xF0)
- {
- nEncodingType = 7;
- nByteOrg_2 = FileHelper.impl_readAndCheckNextByte(aBuffer, i++, nReadCount, 0x90, 0xBF);
- nByteOrg_3 = FileHelper.impl_readAndCheckNextByte(aBuffer, i++, nReadCount, 0x80, 0xBF);
- nByteOrg_4 = FileHelper.impl_readAndCheckNextByte(aBuffer, i++, nReadCount, 0x80, 0xBF);
- nByte_2 = nByteOrg_2-0x90;
- nByte_3 = nByteOrg_3-0x80;
- nByte_4 = nByteOrg_4-0x80;
- nUTF8 = FileHelper.impl_convertBytesToChar(0, nByte_2, nByte_3, nByte_4);
- }
- // ------------------------------------------------------------
- // 08
- // 1 byte: 111100xx
- // 2 byte: 10xxxxxx
- // 3 byte: 10xxxxxx
- // 3 byte: 10xxxxxx
- // ------------------------------------------------------------
- else
- if (
- (nByteOrg_1 >= 0xF1) &&
- (nByteOrg_1 <= 0xF3)
- )
- {
- nEncodingType = 8;
- nByteOrg_2 = FileHelper.impl_readAndCheckNextByte(aBuffer, i++, nReadCount, 0x80, 0xBF);
- nByteOrg_3 = FileHelper.impl_readAndCheckNextByte(aBuffer, i++, nReadCount, 0x80, 0xBF);
- nByteOrg_4 = FileHelper.impl_readAndCheckNextByte(aBuffer, i++, nReadCount, 0x80, 0xBF);
- nByte_1 = nByteOrg_1-0xF1;
- nByte_2 = nByteOrg_2-0x80;
- nByte_3 = nByteOrg_3-0x80;
- nByte_4 = nByteOrg_4-0x80;
- nUTF8 = FileHelper.impl_convertBytesToChar(nByte_1, nByte_2, nByte_3, nByte_4);
- }
- // ------------------------------------------------------------
- // 09
- // 1 byte: 11110100
- // 2 byte: 10xxxxxx
- // 3 byte: 10xxxxxx
- // 4 byte: 10xxxxxx
- // ------------------------------------------------------------
- else
- if (nByteOrg_1 == 0xF0)
- {
- nEncodingType = 9;
- nByteOrg_2 = FileHelper.impl_readAndCheckNextByte(aBuffer, i++, nReadCount, 0x80, 0xBF);
- nByteOrg_3 = FileHelper.impl_readAndCheckNextByte(aBuffer, i++, nReadCount, 0x80, 0xBF);
- nByteOrg_4 = FileHelper.impl_readAndCheckNextByte(aBuffer, i++, nReadCount, 0x80, 0xBF);
- nByte_2 = nByteOrg_2-0x80;
- nByte_3 = nByteOrg_3-0x80;
- nByte_4 = nByteOrg_4-0x80;
- nUTF8 = FileHelper.impl_convertBytesToChar(0, nByte_2, nByte_3, nByte_4);
- }
- // wrong encoding ?
- else
- {
- throw new java.lang.Exception("Non well formed UTF-8 encoding.");
- }
-
- sBuffer.append(nUTF8);
- // -> DEBUG !
- FileHelper.logEncodingData(sLog, nUTF8, nByteOrg_1, nByteOrg_2, nByteOrg_3, nByteOrg_4, nByte_1, nByte_2, nByte_3, nByte_4, nEncodingType);
- // <- DEBUG !
- }
- }
-
- }
- catch(java.lang.Throwable ex)
- {
- // -> DEBUG !
- FileHelper.logEncodingData(sLog, nUTF8, nByteOrg_1, nByteOrg_2, nByteOrg_3, nByteOrg_4, nByte_1, nByte_2, nByte_3, nByte_4, nEncodingType);
-
- java.io.File aDir = new java.io.File(aFile.getParent());
- java.lang.String sDump = aFile.getName();
- java.io.File aDump = FileHelper.createUniqueFile(aDir, sDump, "dump");
- FileHelper.writeEncodedBufferToFile(aDump, "UTF-8", false, sLog);
- // <- DEBUG !
-
- java.lang.String sMsg = "File '"+aFile.getPath()+"' is not encoded right as UTF-8.";
- throw new java.io.IOException(sMsg);
- }
-
- aByteStream.close();
- }
-
- //___________________________________________
-
- /** writes the given string buffer into the specified file
- * using the specified encoding.
- *
- * Further it can be set, if the file should be expanded
- * or replaced by this new string buffer.
- *
- * @param aFile
- * must point to a system file. It can already exist!
- * e.g.: "c:\temp\test.txt"
- * "/tmp/test.txt"
- *
- * @param sEncoding
- * will be used to encode the string content inside the file.
- * e.g.: "UTF8"
- *
- * @param bAppend
- * specify if an already existing file will be
- * expanded or replaced.
- *
- * @param sBuffer
- * the new string content for this file.
- */
- public static void writeEncodedBufferToFile(java.io.File aFile ,
- java.lang.String sEncoding,
- boolean bAppend ,
- java.lang.StringBuffer sBuffer )
- throws java.io.IOException
- {
- java.io.FileOutputStream aByteStream = new java.io.FileOutputStream(aFile.getAbsolutePath(), bAppend);
- java.io.OutputStreamWriter aEncodedWriter = new java.io.OutputStreamWriter(aByteStream, sEncoding);
-
- java.lang.String sTemp = sBuffer.toString();
- aEncodedWriter.write(sTemp, 0, sTemp.length());
-
- aEncodedWriter.flush();
- aEncodedWriter.close();
-
- if (!aFile.exists())
- throw new java.io.IOException("File \""+aFile.getAbsolutePath()+"\" not written correctly.");
- }
-}
diff --git a/filter/source/config/tools/utils/Logger.java b/filter/source/config/tools/utils/Logger.java
deleted file mode 100644
index 699bbfcd443d..000000000000
--- a/filter/source/config/tools/utils/Logger.java
+++ /dev/null
@@ -1,172 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: Logger.java,v $
- * $Revision: 1.8 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org 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 version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-package com.sun.star.filter.config.tools.utils;
-
-
-//_______________________________________________
-// definition
-
-/** can be used to print out some debug messages
- * and group it into warnings/errors or info statements.
- *
- *
- */
-public class Logger
-{
- //___________________________________________
- // const
-
- /** only error message will be shown. */
- public static final int LEVEL_ERRORS = 1;
-
- /** only errors and warnings will be shown. */
- public static final int LEVEL_WARNINGS = 2;
-
- /** enable errors/warnings and some global info
- * message. */
- public static final int LEVEL_GLOBALINFOS = 3;
-
- /** enable anything! */
- public static final int LEVEL_DETAILEDINFOS = 4;
-
- //___________________________________________
- // member
-
- /** enable/disable different output level.
- * e.g. warnings/errors/infos */
- private int m_nLevel;
-
- //___________________________________________
- // ctor
-
- /** initialize new debug object with the specified
- * debug level.
- *
- * @param nLevel
- * the new debug level.
- * See const values LEVEL_xxx too.
- */
- public Logger(int nLevel)
- {
- m_nLevel = nLevel;
- }
-
- //___________________________________________
- // interface
-
- /** initialize new debug object with a default
- * debug level.
- */
- public Logger()
- {
- m_nLevel = LEVEL_DETAILEDINFOS;
- }
-
- //___________________________________________
- // interface
-
- /** prints out an exception ... if the right level is set.
- *
- * @param ex
- * the exception object
- */
- public synchronized void setException(java.lang.Throwable ex)
- {
- if (m_nLevel >= LEVEL_ERRORS)
- {
- System.err.println("Exception:\n");
- ex.printStackTrace();
- }
- }
-
- //___________________________________________
- // interface
-
- /** prints out an error ... if the right level is set.
- *
- * @param sError
- * the error message.
- */
- public synchronized void setError(java.lang.String sError)
- {
- if (m_nLevel >= LEVEL_ERRORS)
- System.err.println("Error :\t\""+sError+"\"");
- }
-
- //___________________________________________
- // interface
-
- /** prints out a warning ... if the right level is set.
- *
- * @param sWarning
- * the warning message.
- */
- public synchronized void setWarning(java.lang.String sWarning)
- {
- if (m_nLevel >= LEVEL_WARNINGS)
- System.err.println("Warning :\t\""+sWarning+"\"");
- }
-
- //___________________________________________
- // interface
-
- /** prints out a global info message ... if the right level is set.
- *
- * Global infos should be used to describe a complex operation.
- * E.g.: loading of a document.
- * But not for every sub operation like e.g. analyzing lines
- * during loading the document!
- *
- * @param sInfo
- * the info message.
- */
- public synchronized void setGlobalInfo(java.lang.String sInfo)
- {
- if (m_nLevel >= LEVEL_GLOBALINFOS)
- System.out.println("Info :\t\""+sInfo+"\"");
- }
-
- //___________________________________________
- // interface
-
- /** prints out a mode detailed info message ... if the right level is set.
- *
- * Such detailed message are e.g. "analyze line [n] of file ...".
- *
- * @param sInfo
- * the info message.
- */
- public synchronized void setDetailedInfo(java.lang.String sInfo)
- {
- if (m_nLevel >= LEVEL_DETAILEDINFOS)
- System.out.println("Detail :\t\""+sInfo+"\"");
- }
-}
diff --git a/filter/source/config/tools/utils/MalformedCommandLineException.java b/filter/source/config/tools/utils/MalformedCommandLineException.java
deleted file mode 100644
index f6f33246a1f3..000000000000
--- a/filter/source/config/tools/utils/MalformedCommandLineException.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*_***********************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: MalformedCommandLineException.java,v $
- * $Revision: 1.4 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org 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 version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- **********************************************************************_*/
-
-package com.sun.star.filter.config.tools.utils;
-
-
-//___________________________________________
-// types
-
-/** indicates a malformed command line.
- *
- * E.g. it must be thrown if the command line contains one item more then once,
- * or use unsupported format.
- */
-public class MalformedCommandLineException extends java.lang.Exception
-{
- public MalformedCommandLineException() {}
- public MalformedCommandLineException(java.lang.String sMsg) { super(sMsg); }
-}
diff --git a/filter/source/config/tools/utils/XMLHelper.java b/filter/source/config/tools/utils/XMLHelper.java
deleted file mode 100644
index fecb4c4348d3..000000000000
--- a/filter/source/config/tools/utils/XMLHelper.java
+++ /dev/null
@@ -1,820 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: XMLHelper.java,v $
- * $Revision: 1.7 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org 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 version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-package com.sun.star.filter.config.tools.utils;
-
-
-//_______________________________________________
-
-/**
- * It provides some constant values and some static helper routines
- * which are neccessary to work with a xml file - especialy
- * the filter configuration.
- *
- *
- */
-public class XMLHelper
-{
- //___________________________________________
- // public const
-
- /** its a possible value of the xml attribute "oor:type" and identify an integer type. */
- public static final java.lang.String XMLTYPE_INTEGER = "xs:int";
-
- /** its a possible value of the xml attribute "oor:type" and identify an boolean type. */
- public static final java.lang.String XMLTYPE_BOOLEAN = "xs:boolean";
-
- /** its a possible value of the xml attribute "oor:type" and identify an string type. */
- public static final java.lang.String XMLTYPE_STRING = "xs:string";
-
- /** its a possible value of the xml attribute "oor:type" and identify an string list type. */
- public static final java.lang.String XMLTYPE_STRINGLIST = "oor:string-list";
-
- /** its a xml attribute, which specify a property name. */
- public static final java.lang.String XMLATTRIB_OOR_NAME = "oor:name";
-
- /** its a xml attribute, which specify a property type. */
- public static final java.lang.String XMLATTRIB_OOR_TYPE = "oor:type";
-
- /** its a xml attribute, which specify a list separator. */
- public static final java.lang.String XMLATTRIB_OOR_SEPARATOR = "oor:separator";
-
- /** its a xml attribute, which specify a localized value. */
- public static final java.lang.String XMLATTRIB_OOR_LOCALIZED = "oor:localized";
-
- /** its a xml attribute, which specify a merge operation for cfg layering. */
- public static final java.lang.String XMLATTRIB_OOR_OP = "oor:op";
-
- /** can be used as value for XMLATTRIB_OOR_OP. */
- public static final java.lang.String XMLATTRIB_OP_REPLACE = "replace";
-
- /** its a xml attribute, which specify a locale value. */
- public static final java.lang.String XMLATTRIB_XML_LANG = "xml:lang";
-
- /** its the tag name of a <value ...> entry. */
- public static final java.lang.String XMLTAG_VALUE = "value";
-
- /** its the tag name of a <prop ...> entry. */
- public static final java.lang.String XMLTAG_PROP = "prop";
-
- /** its the tag name of a <node ...> entry. */
- public static final java.lang.String XMLTAG_NODE = "node";
-
- //___________________________________________
- // private const
-
- /** a static list of all possible separators, which can be used for configuration type string-list. */
- private static final java.lang.String[] DELIMS = {" ", ",", ";", ".", ":", "-", "_", "#", "'", "+", "*", "~", "=", "?"};
-
- /** index of the default separator inside list DELIMS.
- * Its neccessary to know such default separator; because it can
- * be supressed as xml attribute of the corresponding value tag. */
- private static final int DEFAULT_SEPARATOR = 0;
-
- //___________________________________________
-
- /** analyze the structures of the given XML node and
- * return a property set of all found sub nodes.
- *
- * Such properties are organized as [name, value] pairs.
- * The type of a xml node will be detected automaticly.
- * Following types are supported:
- * xs:int => java.lang.Integer
- * xs:bool => java.lang.Boolean
- * xs:string => java.lang.String
- * oor:string-list => java.util.LinkedList[java.lang.String]
- * oor:set => java.util.Vector[java.lang.Object]
- * oor:localized => java.util.HashMap[java.lang.Object]
- *
- * @param aNode
- * points directly to the xml node, where we should analyze
- * the children nodes.
- *
- * @return [java.util.HashMap]
- * contains every node name as key and its string(!) as value.
- */
- public static java.util.HashMap convertNodeToPropSet(org.w3c.dom.Node aNode)
- throws java.lang.Exception
- {
- java.util.HashMap aPropSet = new java.util.HashMap();
-
- // get all child nodes, which seems to be properties
- java.util.Vector lChildNodes = XMLHelper.extractChildNodesByTagName(aNode, XMLTAG_PROP);
- java.util.Enumeration en1 = lChildNodes.elements();
- while(en1.hasMoreElements())
- {
- org.w3c.dom.Node aChildNode = (org.w3c.dom.Node)en1.nextElement();
-
- // read its name
- java.lang.String sChildName = XMLHelper.extractNodeAttribByName(aChildNode, XMLATTRIB_OOR_NAME);
- if (sChildName == null)
- throw new java.io.IOException("unsupported format: could not extract child node name");
-
- // read its type info
- java.lang.String sChildType = XMLHelper.extractNodeAttribByName(aChildNode, XMLATTRIB_OOR_TYPE);
- if (sChildType == null)
- {
- /** Special patch:
- * If an xml tag has no type information set ... we can restore it
- * by analyzing the already readed tag name :-)
- * Not very nice - but it can help to read stripped xml files too. */
- sChildType = XMLHelper.getTypeForTag(sChildName);
- if (sChildType == null)
- throw new java.io.IOException("unsupported format: could not extract child node type");
- }
-
- // read its value(s?)
- java.util.Vector lChildValues = XMLHelper.extractChildNodesByTagName(aChildNode, XMLTAG_VALUE);
- java.util.Enumeration en2 = lChildValues.elements();
- int nValue = 0;
- java.lang.Object aValue = null;
- while(en2.hasMoreElements())
- {
- org.w3c.dom.Node aValueNode = (org.w3c.dom.Node)en2.nextElement();
- java.lang.String sChildLocale = XMLHelper.extractNodeAttribByName(aValueNode, XMLATTRIB_XML_LANG);
- boolean bLocalized = (sChildLocale != null);
-
- ++nValue;
-
- if (sChildType.equals(XMLTYPE_INTEGER))
- {
- if (!bLocalized && nValue > 1)
- throw new java.io.IOException("unsupported format: more then one value for non localized but atomic type detected");
- java.lang.String sData = ((org.w3c.dom.CharacterData)aValueNode.getFirstChild()).getData();
- aValue = new java.lang.Integer(sData);
- }
- else
- if (sChildType.equals(XMLTYPE_BOOLEAN))
- {
- if (!bLocalized && nValue > 1)
- throw new java.io.IOException("unsupported format: more then one value for non localized but atomic type detected");
- java.lang.String sData = ((org.w3c.dom.CharacterData)aValueNode.getFirstChild()).getData();
- aValue = new java.lang.Boolean(sData);
- }
- else
- if (sChildType.equals(XMLTYPE_STRING))
- {
- if (!bLocalized && nValue > 1)
- throw new java.io.IOException("unsupported format: more then one value for non localized but atomic type detected");
-
- java.lang.String sData = ((org.w3c.dom.CharacterData)aValueNode.getFirstChild()).getData();
-
- java.util.HashMap lLocalized = null;
- if (bLocalized)
- {
- if (aValue == null)
- aValue = new java.util.HashMap();
- lLocalized = (java.util.HashMap)aValue;
- lLocalized.put(sChildLocale, sData);
- }
- else
- aValue = sData;
- }
- else
- if (sChildType.equals(XMLTYPE_STRINGLIST))
- {
- if (!bLocalized && nValue > 1)
- throw new java.io.IOException("unsupported format: more then one value for non localized but atomic type detected");
-
- java.lang.String sSeparator = XMLHelper.extractNodeAttribByName(aChildNode, XMLATTRIB_OOR_SEPARATOR);
- if (sSeparator == null)
- sSeparator = " ";
-
- java.lang.String sData = ((org.w3c.dom.CharacterData)aValueNode.getFirstChild()).getData();
- sData = sData.replace('\t', ' ');
- sData = sData.replace('\n', ' ');
- java.util.StringTokenizer aTokenizer = new java.util.StringTokenizer(sData, sSeparator);
- java.util.Vector lList = new java.util.Vector();
- while(aTokenizer.hasMoreTokens())
- {
- java.lang.String sToken = (java.lang.String)aTokenizer.nextToken();
- sToken.trim();
- if (sToken.length() < 1)
- continue;
- lList.add(sToken);
- }
- aValue = lList;
- }
-
- aPropSet.put(sChildName, aValue);
- }
- }
-
- return aPropSet;
- }
-
- //___________________________________________
-
- private static java.lang.String getTypeForTag(java.lang.String sTag)
- {
- java.lang.String sType = null;
-
- if (
- (sTag.equals(Cache.PROPNAME_DATA )) ||
- (sTag.equals(Cache.PROPNAME_NAME )) ||
- (sTag.equals(Cache.PROPNAME_UINAME )) ||
- (sTag.equals(Cache.PROPNAME_MEDIATYPE )) ||
- (sTag.equals(Cache.PROPNAME_CLIPBOARDFORMAT )) ||
- (sTag.equals(Cache.PROPNAME_PREFERREDFILTER )) ||
- (sTag.equals(Cache.PROPNAME_DETECTSERVICE )) ||
- (sTag.equals(Cache.PROPNAME_FRAMELOADER )) ||
- (sTag.equals(Cache.PROPNAME_CONTENTHANDLER )) ||
- (sTag.equals(Cache.PROPNAME_DOCUMENTSERVICE )) ||
- (sTag.equals(Cache.PROPNAME_FILTERSERVICE )) ||
- (sTag.equals(Cache.PROPNAME_TEMPLATENAME )) ||
- (sTag.equals(Cache.PROPNAME_TYPE )) ||
- (sTag.equals(Cache.PROPNAME_UICOMPONENT ))
- )
- sType = XMLTYPE_STRING;
- else
- if (
- (sTag.equals(Cache.PROPNAME_PREFERRED )) ||
- (sTag.equals("Installed" ))
- )
- sType = XMLTYPE_BOOLEAN;
- else
- if (
- (sTag.equals(Cache.PROPNAME_UIORDER )) ||
- (sTag.equals(Cache.PROPNAME_DOCUMENTICONID )) ||
- (sTag.equals(Cache.PROPNAME_FILEFORMATVERSION))
- )
- sType = XMLTYPE_INTEGER;
- else
- if (
- (sTag.equals(Cache.PROPNAME_URLPATTERN )) ||
- (sTag.equals(Cache.PROPNAME_EXTENSIONS )) ||
- (sTag.equals(Cache.PROPNAME_USERDATA )) ||
- (sTag.equals(Cache.PROPNAME_FLAGS )) ||
- (sTag.equals(Cache.PROPNAME_TYPES ))
- )
- sType = XMLTYPE_STRINGLIST;
-
- if (sType == null)
- System.err.println("getTypeForTag("+sTag+") = "+sType);
-
- return sType;
- }
-
- //___________________________________________
-
- /** return a xml representation of the given property set.
- *
- * @param aPropSet
- * a set of <name,value> pairs, which should be translated to xml
- *
- * @return [java.lang.String]
- * the xml string representation.
- *
- * @throws [java.lang.Exception]
- * if anything during convertion fill fail.
- */
- public static java.lang.String convertPropSetToXML(java.util.HashMap aPropSet ,
- int nPrettyTabs)
- throws java.lang.Exception
- {
- java.lang.StringBuffer sXML = new java.lang.StringBuffer(256);
-
- java.util.Iterator it1 = aPropSet.keySet().iterator();
- while(it1.hasNext())
- {
- java.lang.String sProp = (java.lang.String)it1.next();
- java.lang.Object aVal = aPropSet.get(sProp);
-
- sProp = encodeHTMLSigns(sProp);
-
- // is it a simple type?
- if (
- (aVal instanceof java.lang.Integer) ||
- (aVal instanceof java.lang.Boolean) ||
- (aVal instanceof java.lang.String )
- )
- {
- sXML.append(XMLHelper.convertSimpleObjectToXML(sProp, aVal, nPrettyTabs));
- continue;
- }
-
- // no!
- // is it a list value?
- if (aVal instanceof java.util.Vector)
- {
- java.util.Vector lVal = (java.util.Vector)aVal;
- sXML.append(XMLHelper.convertListToXML(sProp, lVal, nPrettyTabs));
- continue;
- }
-
- // its a localized value?
- if (aVal instanceof java.util.HashMap)
- {
- java.util.HashMap lVal = (java.util.HashMap)aVal;
- sXML.append(XMLHelper.convertLocalizedValueToXML(sProp, lVal, nPrettyTabs));
- continue;
- }
-
- // unknown type!
- java.lang.StringBuffer sMsg = new java.lang.StringBuffer(256);
- sMsg.append("unsupported object type detected.");
- sMsg.append("\ttype ? : \""+sProp+"\" = "+aVal);
- sMsg.append("\tprop set: \""+aPropSet );
- throw new java.lang.Exception(sMsg.toString());
- }
-
- return sXML.toString();
- }
-
- public static java.lang.String encodeHTMLSigns(java.lang.String sValue)
- {
- java.lang.StringBuffer sSource = new java.lang.StringBuffer(sValue);
- java.lang.StringBuffer sDestination = new java.lang.StringBuffer(1000 );
-
- for (int i=0; i<sSource.length(); ++i)
- {
- char c = sSource.charAt(i);
- if (c == '&')
- sDestination.append("&amp;");
- else
- sDestination.append(c);
- }
-
- java.lang.String sReturn = sDestination.toString();
- if (!sReturn.equals(sValue))
- System.out.println("encode \""+sValue+"\" => \""+sReturn+"\"");
-
- return sReturn;
- }
-
- //___________________________________________
-
- /** return a xml representation of an atomic property.
- *
- * Atomic property types are e.g. Integer, Boolean, String.
- *
- * @param sName
- * the name of the property.
-
- * @param aValue
- * the value of the property.
- *
- * @param nPrettyTabs
- * count of tab signs for pretty format the xml code :-)
- *
- * @return [java.lang.String]
- * the xml string representation.
- *
- * @throws [java.lang.Exception]
- * if anything during convertion fill fail.
- */
- private static java.lang.String convertSimpleObjectToXML(java.lang.String sName ,
- java.lang.Object aValue ,
- int nPrettyTabs)
- throws java.lang.Exception
- {
- java.lang.StringBuffer sXML = new java.lang.StringBuffer(256);
- for (int t=0; t<nPrettyTabs; ++t)
- sXML.append("\t");
-
- if (aValue instanceof java.lang.Integer)
- {
- sXML.append("<prop "+XMLATTRIB_OOR_NAME+"=\""+sName+"\">");
- sXML.append("<value>"+aValue.toString()+"</value>");
- sXML.append("</prop>\n");
- }
- else
- if (aValue instanceof java.lang.Boolean)
- {
- sXML.append("<prop "+XMLATTRIB_OOR_NAME+"=\""+sName+"\">");
- sXML.append("<value>"+aValue.toString()+"</value>");
- sXML.append("</prop>\n");
- }
- else
- if (aValue instanceof java.lang.String)
- {
- sXML.append("<prop "+XMLATTRIB_OOR_NAME+"=\""+sName+"\"");
- java.lang.String sValue = (java.lang.String)aValue;
-
- sValue = encodeHTMLSigns(sValue);
-
- if (sValue.length() < 1)
- sXML.append("/>\n");
- else
- {
- sXML.append("><value>"+sValue+"</value>");
- sXML.append("</prop>\n");
- }
- }
- else
- {
- System.err.println("name = "+sName);
- System.err.println("value = "+aValue);
- // ! can be used outside to detect - that it was not a simple type :-)
- throw new java.lang.Exception("not an atomic type.");
- }
-
- return sXML.toString();
- }
-
- //___________________________________________
-
- /** return a xml representation of a string-list property.
- *
- * @param sName
- * the name of the property.
-
- * @param aValue
- * the value of the property.
- *
- * @param nPrettyTabs
- * count of tab signs for pretty format the xml code :-)
- *
- * @return [java.lang.String]
- * the xml string representation.
- *
- * @throws [java.lang.Exception]
- * if anything during convertion fill fail.
- */
- private static java.lang.String convertListToXML(java.lang.String sName ,
- java.util.Vector aValue ,
- int nPrettyTabs)
- throws java.lang.Exception
- {
- java.lang.StringBuffer sXML = new java.lang.StringBuffer(256);
-
- for (int t=0; t<nPrettyTabs; ++t)
- sXML.append("\t");
-
- int c = aValue.size();
- if (c < 1)
- {
- sXML.append("<prop "+XMLATTRIB_OOR_NAME+"=\""+sName+"\"/>\n");
- return sXML.toString();
- }
-
- // step over all list items and add it to a string buffer
- // Every item will be separated by a default separator "\n" first.
- // Because "\n" is not a valid separator at all and can`t occure inside
- // our list items. During we step over all items, we check if our current separator
- // (we use a list of possible ones!) clash with an item.
- // If it clash - we step to the next possible separator.
- // If our list of possible separator values runs out of range we throw
- // an exception :-) Its better then generating of wrong values
- // If we found a valid seperator - we use it to replace our "\n" place holder
- // at the end of the following loop ...
-
- int d = 0;
- java.lang.StringBuffer sValBuff = new java.lang.StringBuffer(256);
- for (int i=0; i<c; ++i)
- {
- // get the next list item
- java.lang.Object aItem = aValue.get(i);
- if (!(aItem instanceof java.lang.String))
- throw new java.lang.Exception("Current implementation supports string-list only!");
-
- java.lang.String sValue = (java.lang.String)aItem;
-
- sValue = encodeHTMLSigns(sValue);
-
- // append item with default separator, which isn a valid separator at all
- // But supress adding of the separator if last element is reached.
- sValBuff.append(sValue);
- if (i<(c-1))
- sValBuff.append("\n");
-
- // check for delim clash
- // Attention: An empty (means default) element forbid using
- // of a whitespace character as separator!
- while(true)
- {
- if (d >= DELIMS.length)
- throw new java.lang.Exception("No valid separator found for a string list item.");
- if (sValue.length() < 1 && DELIMS[d].equals(" "))
- {
- ++d;
- continue;
- }
- if (sValue.indexOf(DELIMS[d]) != -1)
- {
- ++d;
- continue;
- }
- break;
- }
- }
-
- // replace default separator with right one
- System.out.println("TODO: must be adapted to java 1.3 :-(");
- System.exit(-1);
-//TODO_JAVA java.lang.String sListVal = sValBuff.toString().replaceAll("\n", DELIMS[d]);
- java.lang.String sListVal = null;
-
- sXML.append("<prop "+XMLATTRIB_OOR_NAME+"=\""+sName+"\">");
- if (d == DEFAULT_SEPARATOR)
- sXML.append("<value>");
- else
- sXML.append("<value "+XMLATTRIB_OOR_SEPARATOR+"=\""+DELIMS[d]+"\">");
- sXML.append(sListVal);
- sXML.append("</value>");
- sXML.append("</prop>\n");
-
- return sXML.toString();
- }
-
- //___________________________________________
-
- /** return a xml representation of a localized property.
- *
- * @param sName
- * the name of the property.
-
- * @param aValue
- * the value of the property.
- *
- * @param nPrettyTabs
- * count of tab signs for pretty format the xml code :-)
- *
- * @return [java.lang.String]
- * the xml string representation.
- *
- * @throws [java.lang.Exception]
- * if anything during convertion fill fail.
- */
- private static java.lang.String convertLocalizedValueToXML(java.lang.String sName ,
- java.util.HashMap aValue ,
- int nPrettyTabs)
- throws java.lang.Exception
- {
- java.lang.StringBuffer sXML = new java.lang.StringBuffer(256);
-
- int c = aValue.size();
- if (c < 1)
- throw new java.lang.Exception("Cant detect type of localized values. Because the given list is empty.");
-
- for (int t=0; t<nPrettyTabs; ++t)
- sXML.append("\t");
- // !Our localized values must be formated at a deeper coloum
- // then its property name!
- ++nPrettyTabs;
-
- sXML.append("<prop "+XMLATTRIB_OOR_NAME+"=\""+sName+"\">\n");
- java.util.Iterator it = aValue.keySet().iterator();
-// boolean bTypeKnown = false;
- while(it.hasNext())
- {
- java.lang.String sLocale = (java.lang.String)it.next();
- java.lang.Object aLocalizedValue = aValue.get(sLocale);
-/*
- if (!bTypeKnown)
- {
- bTypeKnown = true;
- if (aLocalizedValue instanceof java.lang.Integer)
- sXML.append(" "+XMLATTRIB_OOR_TYPE+"=\""+XMLTYPE_INTEGER+"\">\n");
- else
- if (aLocalizedValue instanceof java.lang.Boolean)
- sXML.append(" "+XMLATTRIB_OOR_TYPE+"=\""+XMLTYPE_BOOLEAN+"\">\n");
- else
- if (aLocalizedValue instanceof java.lang.String)
- sXML.append(" "+XMLATTRIB_OOR_TYPE+"=\""+XMLTYPE_STRING+"\">\n");
- else
- throw new java.lang.Exception("Unsupported type for localized value detected.");
- }
-*/
- java.lang.String sLocValue = aLocalizedValue.toString();
- java.lang.String sValue = encodeHTMLSigns(sLocValue);
-
- for (int t=0; t<nPrettyTabs; ++t)
- sXML.append("\t");
- sXML.append("<value "+XMLATTRIB_XML_LANG+"=\""+sLocale+"\">"+sValue+"</value>\n");
- }
- --nPrettyTabs;
- for (int t=0; t<nPrettyTabs; ++t)
- sXML.append("\t");
- sXML.append("</prop>\n");
-
- return sXML.toString();
- }
-
- //___________________________________________
-
- /** returns the value of an attribute of the given node.
- *
- * If the given node represent an lement node, may it supports some attributes.
- * Then this method search for an attribute with the specified name and return it's value.
- * If nothing could be found ... or the given node isn't a suitable node ... it returns null.
- *
- * @param aNode
- * the node, which should be analyzed.
- *
- * @param sAttrib
- * name of the attribute, which should be searched.
- *
- * @return The value of the specified attribute if it could be found at the given node.
- * Can be null if node doesn't support attributes or the searched one does not exist there.
- */
- public static java.lang.String extractNodeAttribByName(org.w3c.dom.Node aNode ,
- java.lang.String sAttrib)
- throws java.lang.Exception
- {
- // We can get valid attributes for element nodes only!
- if (aNode.getNodeType() != org.w3c.dom.Node.ELEMENT_NODE)
- {
-// System.err.println("not an element node");
- return null;
- }
-
- // may it supports attributes in general ... but doesn't have anyone realy.
- org.w3c.dom.NamedNodeMap lAttribs = aNode.getAttributes();
- if (lAttribs==null)
- {
-// System.err.println("no attributes at all");
- return null;
- }
-
- // step over the attribute list and search for the requested one
- for (int i=0; i<lAttribs.getLength(); ++i)
- {
- org.w3c.dom.Attr aAttrib = (org.w3c.dom.Attr)lAttribs.item(i);
- if (aAttrib.getName().equals(sAttrib))
- {
- java.lang.String sValue = aAttrib.getValue();
- return sValue;
- }
- }
-
- // the searched attribute was not found!
-// System.err.println("required attribute \""+sAttrib+"\" does not exist for node ["+aNode.toString()+"]");
- return null;
- }
-
- //___________________________________________
-
- /** returns a list of childs, which are ELEMENT_NODES and have the right tag name.
- *
- * It analyze the list of all possible child nodes. Only ELEMENT_NODES are candidates.
- * All other ones will be ignored. Further these element nodes are compared by it's tag
- * names. If it match with the specified value it's added to the return list.
- * So the return list includes references to the DOM tree nodes only, which are child
- * element nodes with the right tag name.
- *
- * @param aNode
- * provides access to the child nodes, which should be analyzed
- *
- * @param sTag
- * the searched tag name.
- *
- * @return A list of child nodes, which are element nodes and have the right tag name.
- */
- public static java.util.Vector extractChildNodesByTagName(org.w3c.dom.Node aNode,
- java.lang.String sTag )
- {
- // extract first all ELEMENT_NODES of he given parent
- // Such nodes only provide tag names.
- java.util.Vector lChilds = XMLHelper.extractChildNodesByType(aNode,org.w3c.dom.Node.ELEMENT_NODE);
- java.util.Vector lExtractedChilds = new java.util.Vector(lChilds.size());
-
- // step over the list and search for the right tags using the specified name
- java.util.Enumeration en = lChilds.elements();
- while (en.hasMoreElements())
- {
- org.w3c.dom.Node aChild = (org.w3c.dom.Node)en.nextElement();
- if (aChild.getNodeName().equals(sTag))
- lExtractedChilds.add(aChild);
- }
-
- // pack(!) and return the list
- lExtractedChilds.trimToSize();
- return lExtractedChilds;
- }
-
- //___________________________________________
-
- /** returns a list of childs, which supports the right node type.
- *
- * It analyze the list of all possible child nodes. If a node represent the right node type
- * it is added to the return list. Otherwhise it will be ignored.
- *
- * @param aNode
- * provides access to the list of possible children nodes.
- *
- * @param nType
- * represent the searched node type.
- * Possible values are constant fields of a org.w3c.dom.Node - e.g. org.w3c.dom.Node.ELEMENT_NODE.
- *
- * @return A list of child nodes, which provides the right node type.
- */
- public static java.util.Vector extractChildNodesByType(org.w3c.dom.Node aNode,
- short nType)
- {
- // get list of all possibe childs and reserve enough space for our return list
- // Attention: A null pointer is not allowed for return! (means lExtractedChilds)
- org.w3c.dom.NodeList lChilds = aNode.getChildNodes();
- int c = lChilds.getLength();
- java.util.Vector lExtractedChilds = new java.util.Vector(c);
-
- // step of these childs and select only needed ones
- for (int i=0; i<c; ++i)
- {
- org.w3c.dom.Node aChild = lChilds.item(i);
- if (aChild.getNodeType() == nType)
- lExtractedChilds.add(aChild);
- }
-
- // pack(!) and return the list
- lExtractedChilds.trimToSize();
- return lExtractedChilds;
- }
-
- //___________________________________________
-
- /** generates an xml header, using parameters.
- *
- * @param sVersion
- * number of the xml version.
- *
- * @param sEncoding
- * used file encoding.
- *
- * @param sPath
- * name of the configuration root.
- *
- * @param sPackage
- * name of the configuration package.
- *
- * @param bLanguagepack
- * force creation of a special header,
- * which is needed for language packs only.
- *
- * @return [java.lang.String]
- * the generated xml header.
-
-*/
- public static java.lang.String generateHeader(java.lang.String sVersion ,
- java.lang.String sEncoding ,
- java.lang.String sPath ,
- java.lang.String sPackage ,
- boolean bLanguagePack)
- {
- java.lang.StringBuffer sHeader = new java.lang.StringBuffer(256);
-
- if (bLanguagePack)
- {
- sHeader.append("<?xml version=\"");
- sHeader.append(sVersion);
- sHeader.append("\" encoding=\"");
- sHeader.append(sEncoding);
- sHeader.append("\"?>\n");
- sHeader.append("<oor:component-data oor:package=\"");
- sHeader.append(sPath);
- sHeader.append("\" oor:name=\"");
- sHeader.append(sPackage);
- sHeader.append("\" xmlns:install=\"http://openoffice.org/2004/installation\"");
- sHeader.append(" xmlns:oor=\"http://openoffice.org/2001/registry\"");
- sHeader.append(" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\"");
- sHeader.append(" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\n");
- }
- else
- {
- sHeader.append("<?xml version=\"");
- sHeader.append(sVersion);
- sHeader.append("\" encoding=\"");
- sHeader.append(sEncoding);
- sHeader.append("\"?>\n<!DOCTYPE oor:component-data SYSTEM \"../../../../component-update.dtd\">\n");
- sHeader.append("<oor:component-data xmlns:oor=\"http://openoffice.org/2001/registry\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" oor:package=\"");
- sHeader.append(sPath);
- sHeader.append("\" oor:name=\"");
- sHeader.append(sPackage);
- sHeader.append("\">\n");
- }
-
- return sHeader.toString();
- }
-
- public static java.lang.String generateFooter()
- {
- return "</oor:component-data>\n";
- }
-}
diff --git a/filter/source/config/tools/utils/makefile.mk b/filter/source/config/tools/utils/makefile.mk
deleted file mode 100644
index 0b2b89efeb7a..000000000000
--- a/filter/source/config/tools/utils/makefile.mk
+++ /dev/null
@@ -1,63 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2008 by Sun Microsystems, Inc.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# $RCSfile: makefile.mk,v $
-#
-# $Revision: 1.9.98.2 $
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org 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 version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ = ..$/..$/..$/..
-TARGET = FCFGUtils
-PRJNAME = filter
-PACKAGE = com$/sun$/star$/filter$/config$/tools$/utils
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE: settings.mk
-
-#----- compile .java files -----------------------------------------
-
-JARFILES = \
- ridl.jar \
- unoil.jar \
- jurt.jar \
- juh.jar \
- java_uno.jar
-
-JAVACLASSFILES = \
- $(CLASSDIR)$/$(PACKAGE)$/AnalyzeStartupLog.class \
- $(CLASSDIR)$/$(PACKAGE)$/ConfigHelper.class \
- $(CLASSDIR)$/$(PACKAGE)$/Logger.class \
- $(CLASSDIR)$/$(PACKAGE)$/FileHelper.class \
- $(CLASSDIR)$/$(PACKAGE)$/MalformedCommandLineException.class \
- $(CLASSDIR)$/$(PACKAGE)$/Cache.class \
- $(CLASSDIR)$/$(PACKAGE)$/XMLHelper.class
-
-MAXLINELENGTH = 100000
-
-# --- targets -----------------------------------------------------
-
-.INCLUDE : target.mk
diff --git a/oox/util/makefile.mk b/oox/util/makefile.mk
index 93669d2d40b1..bf12b1addf1b 100644
--- a/oox/util/makefile.mk
+++ b/oox/util/makefile.mk
@@ -39,7 +39,7 @@ ENABLE_EXCEPTIONS=TRUE
# --- Settings -----------------------------------------------------
.INCLUDE : settings.mk
-
+.IF "$(L10N_framework)"==""
# --- Allgemein ----------------------------------------------------
LIB1TARGET= $(SLB)$/$(TARGET).lib
@@ -94,5 +94,6 @@ DEF1NAME =$(SHL1TARGET)
DEFLIB1NAME =$(TARGET)
# --- Targets ----------------------------------------------------------
+.ENDIF # L10N_framework
.INCLUDE : target.mk
diff --git a/unoxml/source/rdf/makefile.mk b/unoxml/source/rdf/makefile.mk
index 4ff9e4fdfeab..298c1dcdae25 100644
--- a/unoxml/source/rdf/makefile.mk
+++ b/unoxml/source/rdf/makefile.mk
@@ -46,6 +46,7 @@ CFLAGS+=-DSYSTEM_REDLAND $(REDLAND_CFLAGS)
.ENDIF
# --- Files --------------------------------------------------------
+.IF "$(L10N_framework)"==""
SLOFILES = \
$(SLO)$/CBlankNode.obj \
@@ -71,6 +72,7 @@ SHL1STDLIBS= \
$(CPPULIB) \
$(SALLIB) \
+.ENDIF
# --- Targets ------------------------------------------------------
diff --git a/xmerge/source/aportisdoc/makefile.mk b/xmerge/source/aportisdoc/makefile.mk
index ff417c0800ef..67d763faa344 100644
--- a/xmerge/source/aportisdoc/makefile.mk
+++ b/xmerge/source/aportisdoc/makefile.mk
@@ -34,4 +34,6 @@ PRJ=../..
PRJNAME=xmerge
.INCLUDE : ant.mk
+.IF "$(L10N_framework)"==""
ALLTAR: ANTBUILD
+.ENDIF
diff --git a/xmerge/source/bridge/makefile.mk b/xmerge/source/bridge/makefile.mk
index e5d84bcd5683..b0dc37169a4b 100644
--- a/xmerge/source/bridge/makefile.mk
+++ b/xmerge/source/bridge/makefile.mk
@@ -34,4 +34,6 @@ PRJ=../..
PRJNAME=xmerge
.INCLUDE : ant.mk
+.IF "$(L10N_framework)"==""
ALLTAR: ANTBUILD
+.ENDIF
diff --git a/xmerge/source/htmlsoff/makefile.mk b/xmerge/source/htmlsoff/makefile.mk
index c98aa939c8c6..d164ccdf78c2 100644
--- a/xmerge/source/htmlsoff/makefile.mk
+++ b/xmerge/source/htmlsoff/makefile.mk
@@ -34,4 +34,6 @@ PRJ=../..
PRJNAME=xmerge
.INCLUDE : ant.mk
+.IF "$(L10N_framework)"==""
ALLTAR: ANTBUILD
+.ENDIF
diff --git a/xmerge/source/pexcel/makefile.mk b/xmerge/source/pexcel/makefile.mk
index 08767f848978..c0fdb53a676c 100644
--- a/xmerge/source/pexcel/makefile.mk
+++ b/xmerge/source/pexcel/makefile.mk
@@ -34,4 +34,6 @@ PRJ=../..
PRJNAME=xmerge
.INCLUDE : ant.mk
+.IF "$(L10N_framework)"==""
ALLTAR: ANTBUILD
+.ENDIF
diff --git a/xmerge/source/pocketword/makefile.mk b/xmerge/source/pocketword/makefile.mk
index 51385e8a4afb..24f6e45cfd24 100644
--- a/xmerge/source/pocketword/makefile.mk
+++ b/xmerge/source/pocketword/makefile.mk
@@ -34,4 +34,6 @@ PRJ=../..
PRJNAME=xmerge
.INCLUDE : ant.mk
+.IF "$(L10N_framework)"==""
ALLTAR: ANTBUILD
+.ENDIF
diff --git a/xmerge/source/xmerge/makefile.mk b/xmerge/source/xmerge/makefile.mk
index f1ca30f5d0a8..7420f886ed38 100644
--- a/xmerge/source/xmerge/makefile.mk
+++ b/xmerge/source/xmerge/makefile.mk
@@ -33,4 +33,6 @@ TARGET=xmerge
PRJ=../..
.INCLUDE : ant.mk
+.IF "$(L10N_framework)"==""
ALLTAR: ANTBUILD
+.ENDIF
diff --git a/xmerge/util/makefile.mk b/xmerge/util/makefile.mk
index cbb13db595a9..61ee7d712eb5 100644
--- a/xmerge/util/makefile.mk
+++ b/xmerge/util/makefile.mk
@@ -33,4 +33,6 @@ TARGET=xmrg_util
PRJ=..
.INCLUDE : ant.mk
+.IF "$(L10N_framework)"==""
ALLTAR: ANTBUILD
+.ENDIF