themeinstaller/source/src/com/nokia/tools/themeinstaller/localisation/DTDReader.java
branchRCL_3
changeset 17 fe49e33862e2
parent 16 b685c59de105
child 18 04b7640f6fb5
--- a/themeinstaller/source/src/com/nokia/tools/themeinstaller/localisation/DTDReader.java	Thu Aug 19 09:43:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,178 +0,0 @@
-/*
-* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Read entities from dtd files
- *
-*/
-
-
-package com.nokia.tools.themeinstaller.localisation;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.util.Vector;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import com.nokia.tools.themeinstaller.logger.LogWriter;
-import com.nokia.tools.themeinstaller.odtconverter.ConverterProperties;
-
-/**
- * Reads entities from dtd files.
- */
-public class DTDReader
-    {
-
-    /** The Regular expression for entity. */
-    private static final String ENTITY_REGEX = "<!ENTITY(\\s*)%s(.*)>";
-
-    /** The Regular expression for entity's value. */
-    private static final String VALUE_REGEX = "(\")(.*)(\")";
-
-    /** Line separator */
-    private static final String LINE_SEPARATOR =
-            System.getProperty( "line.separator" );
-
-    /** Property key for character encoding of DTD files */
-    private static final String ENCODING_KEY = "dtd_encoding";
-
-    /**
-     * Read DTD Entities. Reads a set of DTD files and searches
-     * for localised string defined in a entity named aLocString.
-     * If there are more than one instances found, the one that
-     * is found first is returned.
-     *
-     * @param aDtdFiles DTD files containing entities
-     * @param aLocString Entity's localisation string
-     *
-     * @return Localised string
-     *
-     * @throws IOException Signals that an I/O exception has occurred.
-     */
-    public static String readFiles( Vector aDtdFiles, String aLocString )
-            throws IOException
-        {
-        String tempResult = null;
-        Vector results = new Vector();
-        for ( int i = 0; i < aDtdFiles.size(); i++ )
-            {
-            tempResult = readEntity( ( File ) aDtdFiles.get( i ), aLocString );
-
-            if ( tempResult != null )
-                {
-                results.add( tempResult );
-                }
-            }
-        if ( results.isEmpty() )
-            {
-            return null;
-            }
-        else
-            {
-            return ( String ) results.firstElement();
-            }
-
-        }
-
-    /**
-     * Read localized entity from the dtd.
-     *
-     * @param aDTD DTD file containing the localization
-     * @param aLocString Localization string
-     * @return Localized entity
-     * @throws IOException if FileInputStream can not be opened
-     */
-    public static String readEntity( File aDTD, String aLocString )
-            throws IOException
-        {
-        StringBuffer strbuf = new StringBuffer();
-
-        // Read the assumed character encoding of DTD files
-        String encoding =
-                ConverterProperties.getInstance().getProperty( ENCODING_KEY );
-
-        BufferedReader rdr = null;
-        if( encoding != null )
-            {
-            // Use specified encoding
-            rdr = new BufferedReader( new InputStreamReader(
-                    new FileInputStream( aDTD ), encoding ) );
-            }
-        else
-            {
-            // Use default encoding
-            LogWriter.getInstance().logWarning( "DTDReader: Character " +
-            		"encoding of DTD files is not specified in the " +
-            		"properties file, using system default encoding." );
-
-            rdr = new BufferedReader( new InputStreamReader(
-                    new FileInputStream( aDTD ) ) );
-            }
-
-        // Add all lines from the DTD file to the buffer
-        for ( String line = rdr.readLine(); line != null; line = rdr.readLine() )
-            {
-            strbuf.append( line + LINE_SEPARATOR );
-            }
-
-        String[] formatArguments = { aLocString };
-        String regex = String.format( ENTITY_REGEX, formatArguments );
-
-        // Search for an entity containing the aLocString
-        String result = findString( regex, strbuf.toString() );
-
-        if ( result != null )
-            {
-            // Search for the entity's value
-            result = findString( VALUE_REGEX, result );
-
-            // Remove "-marks from the value
-            result = result.replaceAll( "\"", "" );
-            }
-
-        return result;
-        }
-
-    /**
-     * Find a substring. Also verifies that exactly one match is found.
-     *
-     * @param aRegex Regular expression for matching
-     * @param aSearchString String for searching
-     * @return Found string
-     */
-    private static String findString( String aRegex, String aSearchString )
-        {
-        String result = null;
-        Pattern pattern = Pattern.compile( aRegex );
-        Matcher matcher = pattern.matcher( aSearchString );
-        int count = 0;
-        while ( matcher.find() )
-            {
-            result = matcher.group();
-            count++;
-            }
-
-        if ( count > 1 )
-            {
-            throw new IllegalArgumentException( "DTD parsing: "
-                    + "found more than one localized value for the "
-                    + "entity" );
-            }
-
-        return result;
-        }
-
-    }