Class PackageRenamer

java.lang.Object
org.eclipse.persistence.tools.PackageRenamer

public class PackageRenamer extends Object
This class performs package renaming. It demonstrates the following: a) Reading the properties file to be a reference for changing the package name from your source code. b) Traverse source root directory for creating a corresponding output directory and finding the java source file(s) to be changing the package name. c) Search and replace the old TopLink package name(s) with new one(s) according to the reference. You will be able to see the logging message at the command line window where the PackageRenamer is running.
  • Field Details

  • Constructor Details

    • PackageRenamer

      public PackageRenamer()
      The constructor of a PackageRenamer class.
    • PackageRenamer

      public PackageRenamer(String propertiesFileName)
    • PackageRenamer

      public PackageRenamer(String[] args)
  • Method Details

    • bannerText

      protected String bannerText()
    • binaryCopy

      public void binaryCopy(File inFile, File outFile) throws FileNotFoundException, IOException
      Do a binary copy of the file byte buffer by byte buffer.
      Parameters:
      inFile - The file to copy
      outFile - The destination file
      Throws:
      FileNotFoundException - if either of the two files does not exist
      IOException - if any other IO related error occurs
    • bufferContainsNullChar

      protected boolean bufferContainsNullChar(byte[] buffer, int bufferLength)
    • buildAndCheckDestinationFile

      public File buildAndCheckDestinationFile(String aDirString)
      INTERNAL Creates a destination directory File object under the path passed, verifying correctness.
      Parameters:
      aDirString - The path to the directory File object to create
      Returns:
      The destination directory File object
    • buildAndCheckExistingDirFile

      public File buildAndCheckExistingDirFile(String aDirString)
    • buildAndCheckLogWriter

      public PrintWriter buildAndCheckLogWriter(String logFileString)
    • cleanup

      protected void cleanup()
    • createDestinationDirectory

      public void createDestinationDirectory(File aDirectory)
      This method creates an output directory for post-rename file(s).
      Parameters:
      aDirectory - The output directory to create
    • directoryIsSubdirectory

      public static boolean directoryIsSubdirectory(File directory1, File directory2)
      Return true if directory2 is contained within directory1. Both directories must be absolute.
      Parameters:
      directory1 - The higher level directory
      directory2 - The lower level directory
      Returns:
      TRUE if directory2 is a subdirectory of directory1
    • existingDirectoryFromPrompt

      public File existingDirectoryFromPrompt()
    • getDefaultPropertiesFileName

      public static String getDefaultPropertiesFileName()
    • getReader

      public BufferedReader getReader()
    • isExtensionSupported

      public boolean isExtensionSupported(String extension)
      Return true if the PackageRenamer should work on the given file extension.
      Parameters:
      extension - The file extension to check for being supported
      Returns:
      TRUE if the extension is supported
    • logln

      public void logln(String str)
      Parameters:
      str - The String to log
    • main

      public static void main(String[] args)
      Main method to run the PackageRenamer
      Parameters:
      args - Command line arguments
    • parseFileExtension

      public String parseFileExtension(File aFile)
      Returns the extension of the given file.
      Parameters:
      aFile - The file of which to retrieve the extension
      Returns:
      The file extension or an empty string if none was found.
    • promptForDestinationDirectory

      protected File promptForDestinationDirectory()
      INTERNAL Prompt from System.in for an empty or non-existent directory to use as the destination directory.
      Returns:
      The destination directory File object
    • readChangesFile

      public Properties readChangesFile(String filename)
      This readChangesFile() method reads the given properties file to be a reference for renaming TopLink package name.
      Parameters:
      filename - The input file to use for the renaming
      Returns:
      The Properties object containing the renaming information
    • run

      public void run()
      This run() method performs, reading the properties file into properties variable to be a reference for changing package name. creating an destination-root-direetory. and, calling traverseSourceDirectory() method.
    • streamForNonExistentFilePrompt

      protected PrintWriter streamForNonExistentFilePrompt()
    • runSearchAndReplacePackageName

      public void runSearchAndReplacePackageName(File sourceFile)
      This runSearchAndReplacePackageName() reads a pre-rename source file all into string variable and replacing the old package names with the new ones according to the properties file.
      Parameters:
      sourceFile - The source file to process
    • replace

      public static String replace(String str, String oldChars, String newChars)
      Do a search and replace in a string.
      Parameters:
      str - The original String
      oldChars - The character pattern to replace
      newChars - The character pattern to replace the existing with
      Returns:
      the modified String
    • returnNewFileNameIfRequired

      public String returnNewFileNameIfRequired(String aSourceFileNameWithoutRoot)
      Renames a file based on the properties passed.
      Parameters:
      aSourceFileNameWithoutRoot - The original filename
      Returns:
      The new filename, regardless of whether is has been changed
    • traverseSourceDirectory

      public void traverseSourceDirectory(File aDirectoryString)
      This traverseSourceDirectory() traverse source-root-directory, creating an corresponding output directory, and calling another method for replacing old TopLink package name.
      Parameters:
      aDirectoryString - The source root directory to traverse
    • usage

      public static void usage()