blob: 190eda86d5b0f7ac045c58ae12db18442386f67b [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2008, 2010 VMware Inc.
* 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:
* VMware Inc. - initial contribution
*******************************************************************************/
package org.eclipse.virgo.test.launcher.parser;
import java.net.URI;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
/**
* Simple value object encapsulating the command line arguments passed by the user.
* <p />
*
* <strong>Concurrent Semantics</strong><br />
*
* Not threadsafe.
*/
public final class LaunchCommand {
private final List<BundleEntry> bundleEntries = new ArrayList<BundleEntry>();
private final Map<String, String> declaredProperties = new HashMap<String, String>();
private Properties configProperties;
private final List<String> unrecognizedArguments = new ArrayList<String>();
public BundleEntry[] getBundleEntries() {
return this.bundleEntries.toArray(new BundleEntry[this.bundleEntries.size()]);
}
public Map<String, String> getDeclaredProperties() {
return new HashMap<String, String>(this.declaredProperties);
}
public Properties getConfigProperties() {
return configProperties;
}
public List<String> getUnrecognizedArguments() {
return new ArrayList<String>(this.unrecognizedArguments);
}
void declareBundle(URI uri, boolean autoStart) {
this.bundleEntries.add(new BundleEntry(uri, autoStart));
}
void declareProperty(String key, String value) {
this.declaredProperties.put(key, value);
}
void setConfigProperties(Properties configPath) {
this.configProperties = configPath;
}
void declareUnrecognizedArgument(String additionalArgument) {
this.unrecognizedArguments.add(additionalArgument);
}
}