/* * $Id$ * IzPack - Copyright 2001-2008 Julien Ponge, All Rights Reserved. * * http://izpack.org/ * http://izpack.codehaus.org/ * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.izforge.izpack; import java.io.Serializable; import java.util.ArrayList; /** * Contains some informations for an installer, as defined in the <info> section of the XML files. * * @author Julien Ponge */ public class Info implements Serializable { static final long serialVersionUID = 13288410782044775L; /** * The application name and version */ private String appName = ""; private String appVersion = ""; /** * The installation subpath */ private String installationSubPath = null; /** * The application authors */ private ArrayList<Author> authors = new ArrayList<Author>(); /** * The application URL */ private String appURL = null; /** * The required Java version (min) */ private String javaVersion = "1.4"; /** * Is a JDK required? */ private boolean jdkRequired = false; /** * The name of the installer file (name without jar suffix) */ private String installerBase = null; /** * The application Web Directory URL */ private String webDirURL = null; /** * The uninstaller name */ private String uninstallerName = "uninstaller.jar"; /** * The uninstaller path */ private String uninstallerPath = "$INSTALL_PATH/Uninstaller"; /** * condition for writing the uninstaller */ private String uninstallerCondition = null; /** * The path of the summary log file */ private String summaryLogFilePath = "$INSTALL_PATH/Uninstaller/InstallSummary.htm"; /** * The full qualified name of the class which should be * used for decoding the packs. */ private String packDecoderClassName = null; private String unpackerClassName = null; private boolean writeInstallationInformation = true; private boolean pack200Compression; private boolean requirePrivilegedExecution = false; private String privilegedExecutionConditionID = null; public boolean isPrivilegedExecutionRequired() { return requirePrivilegedExecution; } public void setRequirePrivilegedExecution(boolean requirePrivilegedExecution) { this.requirePrivilegedExecution = requirePrivilegedExecution; } public String getPrivilegedExecutionConditionID() { return privilegedExecutionConditionID; } public void setPrivilegedExecutionConditionID(String privilegedExecutionConditionID) { this.privilegedExecutionConditionID = privilegedExecutionConditionID; } /** * The constructor, deliberatly void. */ public Info() { } /** * Sets the application name. * * @param appName The new application name. */ public void setAppName(String appName) { this.appName = appName; } /** * Gets the application name. * * @return The application name. */ public String getAppName() { return appName; } /** * Sets the version. * * @param appVersion The application version. */ public void setAppVersion(String appVersion) { this.appVersion = appVersion; } /** * Gets the version. * * @return The application version. */ public String getAppVersion() { return appVersion; } /** * Adds an author to the authors list. * * @param author The author to add. */ public void addAuthor(Author author) { authors.add(author); } /** * Gets the authors list. * * @return The authors list. */ public ArrayList<Author> getAuthors() { return authors; } /** * Sets the application URL. * * @param appURL The application URL. */ public void setAppURL(String appURL) { this.appURL = appURL; } /** * Gets the application URL. * * @return The application URL. */ public String getAppURL() { return appURL; } /** * Sets the minimum Java version required. * * @param javaVersion The Java version. */ public void setJavaVersion(String javaVersion) { this.javaVersion = javaVersion; } /** * Gets the Java version required. * * @return The Java version. */ public String getJavaVersion() { return javaVersion; } /** * Sets the installer name. * * @param installerBase The new installer name. */ public void setInstallerBase(String installerBase) { this.installerBase = installerBase; } /** * Gets the installer name. * * @return The name of the installer file, without the jar suffix. */ public String getInstallerBase() { return installerBase; } /** * Sets the webDir URL. * * @param url The application URL. */ public void setWebDirURL(String url) { this.webDirURL = url; } /** * Gets the webDir URL if it has been specified * * @return The webDir URL from which the installer is retrieved, or <tt>null</tt> if non has * been set. */ public String getWebDirURL() { return webDirURL; } /** * Sets the name of the uninstaller. * * @param name the name of the uninstaller. */ public void setUninstallerName(String name) { this.uninstallerName = name; } /** * Returns the name of the uninstaller. * * @return the name of the uninstaller. */ public String getUninstallerName() { return this.uninstallerName; } /** * Sets the path to the uninstaller * * @param path the path to the uninstaller */ public void setUninstallerPath(String path) { this.uninstallerPath = path; } /** * Returns the path to the uninstaller * * @return the path to the uninstaller */ public String getUninstallerPath() { return this.uninstallerPath; } public boolean isJdkRequired() { return jdkRequired; } public void setJdkRequired(boolean jdkRequired) { this.jdkRequired = jdkRequired; } public void setPack200Compression(boolean pack200Support) { this.pack200Compression = pack200Support; } public boolean isPack200Compression() { return pack200Compression; } /** * This class represents an author. * * @author Julien Ponge */ public static class Author implements Serializable { static final long serialVersionUID = -3090178155004960243L; /** * The author name */ private String name; /** * The author email */ private String email; /** * Gets the author name. * * @return The author name. */ public String getName() { return name; } /** * Gets the author email. * * @return The author email. */ public String getEmail() { return email; } /** * The constructor. * * @param name The author name. * @param email The author email. */ public Author(String name, String email) { this.name = name; this.email = email; } /** * Gets a String representation of the author. * * @return The String representation of the author, in the form : name <email> . */ public String toString() { return name + " <" + email + ">"; } } /** * Gets the installation subpath. * * @return the installation subpath */ public String getInstallationSubPath() { return installationSubPath; } /** * Sets the installation subpath. * * @param string subpath to be set */ public void setInstallationSubPath(String string) { installationSubPath = string; } /** * Returns the summary log file path. * * @return the summary log file path */ public String getSummaryLogFilePath() { return summaryLogFilePath; } /** * Sets the summary log file path. * * @param summaryLogFilePath the summary log file path to set */ public void setSummaryLogFilePath(String summaryLogFilePath) { this.summaryLogFilePath = summaryLogFilePath; } /** * Returns the full qualified class name of the class which * should be used for decoding the packs. * * @return Returns the packDecoderClassName. */ public String getPackDecoderClassName() { return packDecoderClassName; } /** * Sets the full qualified class name of the class which * should be used for decoding the packs. * * @param packDecoderClassName The packDecoderClassName to set. */ public void setPackDecoderClassName(String packDecoderClassName) { this.packDecoderClassName = packDecoderClassName; } public String getUnpackerClassName() { return unpackerClassName; } public void setUnpackerClassName(String unpackerClassName) { this.unpackerClassName = unpackerClassName; } public boolean isWriteInstallationInformation() { return writeInstallationInformation; } public void setWriteInstallationInformation(boolean writeInstallationInformation) { this.writeInstallationInformation = writeInstallationInformation; } public String getUninstallerCondition() { return uninstallerCondition; } public void setUninstallerCondition(String uninstallerCondition) { this.uninstallerCondition = uninstallerCondition; } }