/*******************************************************************************
* Copyright (c) 2001, 2010 Mathew A. Nelson and Robocode contributors
* 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://robocode.sourceforge.net/license/epl-v10.html
*
* Contributors:
* Mathew A. Nelson
* - Initial API and implementation
*******************************************************************************/
package net.sf.robocode.ui.editor;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Properties;
/**
* @author Mathew A. Nelson (original)
*/
public class CompilerProperties {
public final static String COMPILER_BINARY = "compiler.binary";
public final static String COMPILER_OPTIONS = "compiler.options";
public final static String COMPILER_CLASSPATH = "compiler.classpath";
public final static String ROBOCODE_VERSION = "robocode.version";
private String compilerBinary;
private String compilerOptions;
private String compilerClasspath;
private String robocodeVersion;
private final Properties props = new Properties();
public CompilerProperties() {
super();
}
/**
* Returns the compilerBinary.
*
* @return String
*/
public String getCompilerBinary() {
if (compilerBinary == null) {
setCompilerBinary("");
}
return compilerBinary;
}
/**
* Returns the compilerClasspath.
*
* @return String
*/
public String getCompilerClasspath() {
if (compilerClasspath == null) {
setCompilerClasspath("");
}
return compilerClasspath;
}
/**
* Returns the compilerOptions.
*
* @return String
*/
public String getCompilerOptions() {
if (compilerOptions == null) {
setCompilerOptions("");
}
return compilerOptions;
}
/**
* Returns the robocodeVersion.
*
* @return String
*/
public String getRobocodeVersion() {
return robocodeVersion;
}
public void resetCompiler() {
this.compilerBinary = null;
props.remove(COMPILER_BINARY);
}
/**
* Sets the compilerBinary.
*
* @param compilerBinary The compilerBinary to set
*/
public void setCompilerBinary(String compilerBinary) {
this.compilerBinary = compilerBinary;
props.setProperty(COMPILER_BINARY, compilerBinary);
}
/**
* Sets the compilerClasspath.
*
* @param compilerClasspath The compilerClasspath to set
*/
public void setCompilerClasspath(String compilerClasspath) {
this.compilerClasspath = compilerClasspath;
props.setProperty(COMPILER_CLASSPATH, compilerClasspath);
}
/**
* Sets the compilerOptions.
*
* @param compilerOptions The compilerOptions to set
*/
public void setCompilerOptions(String compilerOptions) {
this.compilerOptions = compilerOptions;
props.setProperty(COMPILER_OPTIONS, compilerOptions);
}
/**
* Sets the robocodeVersion.
*
* @param robocodeVersion The robocodeVersion to set
*/
public void setRobocodeVersion(String robocodeVersion) {
this.robocodeVersion = robocodeVersion;
props.setProperty(ROBOCODE_VERSION, robocodeVersion);
}
public void load(InputStream is) throws IOException {
props.load(is);
this.compilerBinary = props.getProperty(COMPILER_BINARY);
this.compilerOptions = props.getProperty(COMPILER_OPTIONS);
this.compilerClasspath = props.getProperty(COMPILER_CLASSPATH);
this.robocodeVersion = props.getProperty(ROBOCODE_VERSION);
}
public void store(OutputStream os, String header) throws IOException {
props.store(os, header);
}
}