blob: ad8fd49172b903142bb86e0ac9b93d69971a8796 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2007, 2008 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.equinox.internal.provisional.frameworkadmin;
import java.io.File;
import java.util.*;
/**
* This object is instantiated by {@link Manipulator#getLauncherData()};
* The class that keeps some parameters of the {@link Manipulator}
* created this object. The manipulating of the parameters will affect
* the {@link Manipulator}.
*
*
* @see Manipulator
*/
public class LauncherData {
//private static final String[] NULL_STRINGS = new String[0];
private File fwPersistentDataLocation = null;
private File jvm = null;
private List jvmArgs = new LinkedList();
private List programArgs = new LinkedList();
private boolean clean;
private File fwConfigLocation;
private File home = null;
private File fwJar = null;
private File launcher = null;
private File launcherConfigLocation = null;
private String fwName;
private String fwVersion;
private String launcherName;
private String launcherVersion;
public LauncherData(String fwName, String fwVersion, String launcherName, String launcherVersion) {
this.fwName = fwName;
this.fwVersion = fwVersion;
this.launcherName = launcherName;
this.launcherVersion = launcherVersion;
this.initialize();
}
public void addJvmArg(String arg) {
if (arg == null)
return;
jvmArgs.add(arg);
}
public void addProgramArg(String arg) {
if (arg == null)
return;
programArgs.add(arg);
}
public File getFwConfigLocation() {
return fwConfigLocation;
}
public File getFwJar() {
return fwJar;
}
public String getFwName() {
return fwName;
}
public File getFwPersistentDataLocation() {
return fwPersistentDataLocation;
}
public String getFwVersion() {
return fwVersion;
}
public File getHome() {
return home;
}
public File getJvm() {
return jvm;
}
public String[] getJvmArgs() {
String[] args = new String[jvmArgs.size()];
jvmArgs.toArray(args);
return args;
}
public File getLauncher() {
return launcher;
}
public File getLauncherConfigLocation() {
return launcherConfigLocation;
}
public String getLauncherName() {
return launcherName;
}
public String getLauncherVersion() {
return launcherVersion;
}
public String[] getProgramArgs() {
String[] args = new String[programArgs.size()];
programArgs.toArray(args);
return args;
}
public void initialize() {
fwPersistentDataLocation = null;
jvm = null;
jvmArgs.clear();
programArgs.clear();
clean = false;
fwConfigLocation = null;
fwJar = null;
launcher = null;
}
public boolean isClean() {
return clean;
}
public void removeJvmArg(String arg) {
jvmArgs.remove(arg);
}
public void removeProgramArg(String arg) {
programArgs.remove(arg);
}
public void setFwConfigLocation(File fwConfigLocation) {
this.fwConfigLocation = fwConfigLocation;
}
public void setFwJar(File fwJar) {
this.fwJar = fwJar;
}
public void setFwPersistentDataLocation(File fwPersistentDataLocation, boolean clean) {
this.fwPersistentDataLocation = fwPersistentDataLocation;
this.clean = clean;
}
public void setHome(File home) {
this.home = home;
}
public void setJvm(File file) {
this.jvm = file;
}
public void setJvmArgs(String[] args) {
if (args == null || args.length == 0) {
jvmArgs.clear();
return;
}
for (int i = 0; i < args.length; i++)
this.addJvmArg(args[i]);
}
public void setLauncher(File launcherFile) {
launcher = launcherFile;
}
public void setLauncherConfigLocation(File launcherConfigLocation) {
this.launcherConfigLocation = launcherConfigLocation;
}
public void setProgramArgs(String[] args) {
if (args == null || args.length == 0) {
programArgs.clear();
return;
}
for (int i = 0; i < args.length; i++)
this.addProgramArg(args[i]);
}
public String toString() {
StringBuffer sb = new StringBuffer();
sb.append("Class:" + this.getClass().getName() + "\n");
sb.append("fwName=" + this.fwName + "\n");
sb.append("fwVersion=" + this.fwVersion + "\n");
sb.append("launcherName=" + this.launcherName + "\n");
sb.append("launcherVersion=" + this.launcherVersion + "\n");
sb.append("jvm=" + this.jvm + "\n");
if (this.jvmArgs.size() == 0)
sb.append("jvmArgs = null\n");
else {
sb.append("jvmArgs=\n");
int i = 0;
for (Iterator iterator = jvmArgs.iterator(); iterator.hasNext(); iterator.next())
sb.append("\tjvmArgs[" + i++ + "]=" + iterator + "\n");
}
if (this.programArgs.size() == 0)
sb.append("programArgs = null\n");
else {
sb.append("programArgs=\n");
int i = 0;
for (Iterator iterator = programArgs.iterator(); iterator.hasNext(); iterator.next())
sb.append("\tprogramArgs[" + i++ + "]=" + iterator + "\n");
}
sb.append("fwConfigLocation=" + this.fwConfigLocation + "\n");
sb.append("fwJar=" + this.fwJar + "\n");
sb.append("fwPersistentDataLocation=" + this.fwPersistentDataLocation + "\n");
sb.append("home=" + this.home + "\n");
sb.append("launcher=" + this.launcher + "\n");
sb.append("launcherConfigLocation=" + this.launcherConfigLocation + "\n");
sb.append("clean=" + this.isClean() + "\n");
return sb.toString();
}
}