themeinstaller/source/src/com/nokia/tools/themeinstaller/localisation/Localisation.java
--- a/themeinstaller/source/src/com/nokia/tools/themeinstaller/localisation/Localisation.java Thu Aug 19 09:43:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,180 +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: This class is responsible for providing the enhanced
- * localisation services.
- *
-*/
-
-package com.nokia.tools.themeinstaller.localisation;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Enumeration;
-import java.util.Hashtable;
-import java.util.Observable;
-import java.util.Observer;
-import java.util.Vector;
-
-import com.nokia.tools.themeinstaller.defrep.DefinitionRepository;
-import com.nokia.tools.themeinstaller.defrep.operations.FileOperationEvent;
-import com.nokia.tools.themeinstaller.installationmanager.Lock;
-
-/**
- * This class is responsible for providing the enhanced localisation services.
- */
-public class Localisation implements ILocalisation
- {
-
- // The filename for temporary dtd file.
- private static String COMPOSED_DTD_FILE = "composed";
-
- // The extension for dtd file's filename.
- private static String DTD_FILE_EXTENSION = ".dtd";
-
- // Localisation settings of the theme
- private Settings iSettings;
-
- // File operation observer for copy operations
- private Observer iCopyObserver;
-
- // Lock for waiting the copy operation completion
- private Lock iCopyLock;
-
- // Stored file operation event
- private FileOperationEvent iCopyEvent;
-
- // Definition Repository
- private DefinitionRepository iDefRep;
-
- /**
- * Constructor.
- * @param aSettings Localisation settings of a theme
- */
- public Localisation( Settings aSettings )
- {
- iSettings = aSettings;
- iDefRep = DefinitionRepository.getInstance();
- iCopyLock = new Lock();
- iCopyObserver = new Observer()
- {
- public void update( Observable aFileOperation, Object aEvent )
- {
- // Store the event
- iCopyEvent = ( FileOperationEvent ) aEvent;
- // Open the lock
- iCopyLock.unLock();
- }
- };
- }
-
- /* (non-Javadoc)
- * @see com.nokia.tools.themeinstaller.localisation.ILocalisation#getSettings()
- */
- public Settings getSettings()
- {
- return iSettings;
- }
-
- /* (non-Javadoc)
- * @see com.nokia.tools.themeinstaller.localisation.ILocalisation#findDTD()
- */
- public File composeDTD( String aFileName, int aLanguage ) throws IOException
- {
- // Create a temp dtd file
- File composed = File.createTempFile(
- COMPOSED_DTD_FILE, DTD_FILE_EXTENSION );
- composed.deleteOnExit();
-
- // Copy the main dtd contents to the temp dtd
- copyDTDContents( findDTD( aFileName ), composed, false );
-
- // Loc settings: include settings
- Enumeration includes = iSettings.getIncludes().elements();
- IncludeSetting incl = null;
- Enumeration inclEntities = null;
- File inclFile = null;
-
- // Variables for localisation reading/writing
- String entity = null;
- String locString = null;
- String filename = null;
- Hashtable entities = new Hashtable();
- Integer[] formatArgs = { new Integer( aLanguage ) };
-
- // Process all include element
- while( includes.hasMoreElements() )
- {
- incl = ( IncludeSetting )includes.nextElement();
-
- filename = String.format( incl.getFile(), formatArgs );
-
- // Find the DTD to include from
- inclFile = FileSearch.findFile( incl.getSearchTree(), filename, true );
-
- // Include entities to the composed dtd file
- if( incl.isIncludeAll() )
- {
- // Append the whole dtd to include to the composed one
- copyDTDContents( inclFile, composed, true );
- }
- else
- {
- // Read the entities to include
- inclEntities = incl.getEntities().elements();
- while( inclEntities.hasMoreElements() )
- {
- entity = ( String )inclEntities.nextElement();
- locString = DTDReader.readEntity( inclFile, entity );
- entities.put( entity, locString );
- }
- }
- }
-
- // Create and return a temporary DTD file being composed
- return DTDComposer.writeEntitiesToDtd( composed, entities, true );
- }
-
- /* (non-Javadoc)
- * @see com.nokia.tools.themeinstaller.localisation.ILocalisation#findDTD(java.lang.String)
- */
- public File findDTD( String aFileName ) throws IOException
- {
- // Use the file search to find the dtd file
- Vector searchTree = iSettings.getSearchTree();
- return FileSearch.findFile( searchTree, aFileName, true );
- }
-
- /**
- * Uses Definition Repository to copy DTD file contents to another DTD file.
- * The method is synchronous and waits for the operation completion.
- * @param aSource Source file
- * @param aDestination Destination file
- * @param aAppend Append to the destination file if it already exists
- * @throws IOException if reading/writing from/to a DTD file fails
- */
- private void copyDTDContents( File aSource, File aDestination, boolean aAppend )
- throws IOException
- {
- iDefRep.copy( aSource, aDestination, aAppend, iCopyObserver );
- iCopyLock.lock();
-
- if( iCopyEvent.getErrorCode() != FileOperationEvent.OPERATION_SUCCESSFUL )
- {
- throw new IOException( "Localisation: DTD contents copy failed: " +
- iCopyEvent.getErrorCode() + ", File: " +
- iCopyEvent.getFile().getPath() );
- }
- }
-
- }