diff -r ca8a1b6995f6 -r 52e343bb8f80 tracefw/tracecompiler/src/com.nokia.tracecompiler/src/com/nokia/tracecompiler/engine/propertyfile/PropertyFileEngine.java --- a/tracefw/tracecompiler/src/com.nokia.tracecompiler/src/com/nokia/tracecompiler/engine/propertyfile/PropertyFileEngine.java Tue Aug 31 16:45:49 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,192 +0,0 @@ -/* -* Copyright (c) 2008 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: -* -* Property file management engine -* -*/ -package com.nokia.tracecompiler.engine.propertyfile; - -import java.io.File; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.ParserConfigurationException; - -import com.nokia.tracecompiler.engine.TraceCompilerEngineBase; -import com.nokia.tracecompiler.engine.TraceCompilerEngineGlobals; -import com.nokia.tracecompiler.engine.project.ProjectEngine; -import com.nokia.tracecompiler.file.FileUtils; -import com.nokia.tracecompiler.model.TraceCompilerException; -import com.nokia.tracecompiler.model.TraceModel; -import com.nokia.tracecompiler.project.ProjectUtils; -import com.nokia.tracecompiler.source.SourceConstants; - -/** - * Property file management engine - * - */ -public final class PropertyFileEngine extends TraceCompilerEngineBase { - - /** - * Trace model - */ - private TraceModel model; - - /** - * Constructor - * - * @param model - * the trace model - */ - public PropertyFileEngine(TraceModel model) { - this.model = model; - } - - /* - * (non-Javadoc) - * - * @see com.nokia.tracecompiler.engine.TraceCompilerEngine#projectOpened() - */ - @Override - public void projectOpened() throws TraceCompilerException { - TracePropertyFile propertyFile = model - .getExtension(TracePropertyFile.class); - if (propertyFile == null) { - String fileName = null; - try { - fileName = ProjectUtils.getLocationForFile(model, - ProjectEngine.traceFolderName, - PropertyFileConstants.PROPERTY_FILE_NAME, false); - } catch (TraceCompilerException e) { - // Model should always be open when traceProjectOpened is - // called - } - if (fileName != null) { - propertyFile = parsePropertyFile(fileName); - } - } - if (propertyFile == null) { - String msg = Messages - .getString("PropertyFileEngine.FailedToAttachFile"); //$NON-NLS-1$ - TraceCompilerEngineGlobals.getEvents().postErrorMessage(msg, null, true); - } - } - - /* - * (non-Javadoc) - * - * @see com.nokia.tracecompiler.engine.TraceCompilerEngine#projectClosing() - */ - @Override - public void projectClosed() { - model.removeExtensions(TracePropertyFile.class); - } - - /* - * (non-Javadoc) - * - * @see com.nokia.tracecompiler.engine.TraceCompilerEngine#exportProject() - */ - @Override - public void exportProject() { - } - - /** - * Parses the property file - * - * @param fileName - * the file path - * @return the property file - */ - private TracePropertyFile parsePropertyFile(String fileName) { - DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); - factory.setValidating(false); - DocumentBuilder builder; - TracePropertyFile propertyFile = null; - try { - builder = factory.newDocumentBuilder(); - File file = new File(fileName); - if (file.exists()) { - try { - PropertyFileParser parser = new PropertyFileParser(model, - fileName, builder); - parser.parse(); - propertyFile = new TracePropertyFile(file.getParent(), - parser.getDocument()); - } catch (TraceCompilerException e) { - // Problem parsing document -> Backup and create new - TraceCompilerEngineGlobals.getEvents().postError(e); - createBackup(fileName); - } - } - if (propertyFile == null) { - propertyFile = new TracePropertyFile(file.getParent(), builder - .newDocument()); - } - model.addExtension(propertyFile); - } catch (ParserConfigurationException e) { - } - return propertyFile; - } - - /** - * Creates a backup of the property file - * - * @param path - * the file to be backed up - */ - private void createBackup(String path) { - boolean backup = false; - File file = new File(path); - if (file.exists()) { - boolean allexist = true; - // Checks the existing backup files and renames the old file to - // largest available number starting from 0 - File f = null; - for (int i = 0; i < PropertyFileConstants.BACKUP_COUNT && allexist; i++) { - f = new File(path + i + PropertyFileConstants.BACKUP_EXTENSION); - if (!f.exists()) { - backup = FileUtils.copyFile(file, f); - allexist = false; - } - } - if (allexist) { - // If all backups from 0 to 9 exist, the old ones are moved - // back 1 step. The new file is renamed to *9.h - for (int i = 0; i < PropertyFileConstants.BACKUP_COUNT; i++) { - f = new File(path + i - + PropertyFileConstants.BACKUP_EXTENSION); - if (i == 0) { - f.delete(); - } else { - f.renameTo(new File(path + (i - 1) - + PropertyFileConstants.BACKUP_EXTENSION)); - } - } - f = new File(path + PropertyFileConstants.LAST_BACKUP); - backup = FileUtils.copyFile(file, f); - } - if (f != null && backup) { - String msg = Messages - .getString("PropertyFileEngine.PropertyFileBackUpPrefix") //$NON-NLS-1$ - + FileUtils.convertSeparators( - SourceConstants.FORWARD_SLASH_CHAR, f - .getAbsolutePath(), false); - TraceCompilerEngineGlobals.getEvents().postInfoMessage(msg, null); - } - } - } - -}