/************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * * 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 * * for a copy of the LGPLv3 License. * ************************************************************************/ package util.compare; import convwatch.GraphicalDifferenceCheck; import convwatch.GraphicalTestArguments; import convwatch.DirectoryHelper; import convwatch.FileHelper; import lib.TestParameters; import java.io.File; import java.io.FileFilter; import java.io.IOException; import util.compare.DocComparator; import convwatch.ConvWatchException; // ----------------------------------------------------------------------------- class GraphicalComparator implements DocComparator { GraphicalTestArguments m_aArguments; protected GraphicalComparator(TestParameters aParams) { m_aArguments = new GraphicalTestArguments(aParams); } /** * @return an instance of this object, but only it's interface */ static DocComparator getInstance(TestParameters aParams) { // setting the default test parameter // TEST aParams GraphicalComparator a = new GraphicalComparator(aParams); return a; } /** * return a (FileFilter) function, which returns true, if the filename is a '*.prn' file */ FileFilter getTrueIfPRNFile_FileFilter() { FileFilter aFileFilter = new FileFilter() { public boolean accept( File pathname ) { if (pathname.getName().endsWith(".prn")) { return true; } return false; } }; return aFileFilter; } /** * build a new file from _sEntry by * replacing the path equals to _sInputPath with _sReferencePath and replace it's suffix by _sNewSuffix. * If _sInputPath is empty, replace the whole path by _sReferencePath. */ protected String createSpecialFile(String _sEntry, String _sInputPath, String _sReferencePath, String _sNewSuffix) { String fs = System.getProperty("file.separator"); String sNewSubDir = ""; if (_sInputPath.length() > 0) { sNewSubDir = FileHelper.removeFirstDirectorysAndBasenameFrom(_sEntry, _sInputPath); } String sNameNoSuffix = FileHelper.getNameNoSuffix(FileHelper.getBasename(_sEntry)); // add the sub path to the difference path String sNewReferencePath; if (sNewSubDir.length() > 0) { sNewReferencePath = _sReferencePath + fs + sNewSubDir; } else { sNewReferencePath = _sReferencePath; } // add the difference name sNewReferencePath += fs + sNameNoSuffix + _sNewSuffix; return sNewReferencePath; } boolean isReferenceOrDiffExistent(String _sNewSuffix) { boolean isExistent = false; // LLA? What if sReferencePath is a directory, but directory is empty? is the result then true or false; // wir muessen durch den InputPath durch und dann fuer jedes Dokument prufen, ob im angegebenen ReferencePath eine Reference existiert. String sInputPath = m_aArguments.getInputPath(); if (FileHelper.isDir(sInputPath)) { Object[] aList = DirectoryHelper.traverse(sInputPath, FileHelper.getFileFilter(), m_aArguments.includeSubDirectories()); for (int i=0;i