/*
 *  Licensed to the Apache Software Foundation (ASF) under one or more
 *  contributor license agreements.  See the NOTICE file distributed with
 *  this work for additional information regarding copyright ownership.
 *  The ASF licenses this file to You 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
 *
 *      https://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 org.apache.tools.ant.types;

import java.util.Vector;

import org.apache.tools.ant.BuildException;

Wrapper for environment variables.
/** * Wrapper for environment variables. * */
public class Environment { // CheckStyle:VisibilityModifier OFF - bc
a vector of type Environment.Variable
See Also:
  • Variable
/** * a vector of type Environment.Variable * @see Variable */
protected Vector<Variable> variables; // CheckStyle:VisibilityModifier ON
representation of a single env value
/** * representation of a single env value */
public static class Variable {
env key and value pair; everything gets expanded to a string during assignment
/** * env key and value pair; everything gets expanded to a string * during assignment */
private String key, value;
Constructor for variable
/** * Constructor for variable * */
public Variable() { super(); }
set the key
Params:
  • key – string
/** * set the key * @param key string */
public void setKey(String key) { this.key = key; }
set the value
Params:
  • value – string value
/** * set the value * @param value string value */
public void setValue(String value) { this.value = value; }
key accessor
Returns:key
/** * key accessor * @return key */
public String getKey() { return this.key; }
value accessor
Returns:value
/** * value accessor * @return value */
public String getValue() { return this.value; }
stringify path and assign to the value. The value will contain all path elements separated by the appropriate separator
Params:
  • path – path
/** * stringify path and assign to the value. * The value will contain all path elements separated by the appropriate * separator * @param path path */
public void setPath(Path path) { this.value = path.toString(); }
get the absolute path of a file and assign it to the value
Params:
  • file – file to use as the value
/** * get the absolute path of a file and assign it to the value * @param file file to use as the value */
public void setFile(java.io.File file) { this.value = file.getAbsolutePath(); }
get the assignment string This is not ready for insertion into a property file without following the escaping rules of the properties class.
Throws:
Returns:a string of the form key=value.
/** * get the assignment string * This is not ready for insertion into a property file without following * the escaping rules of the properties class. * @return a string of the form key=value. * @throws BuildException if key or value are unassigned */
public String getContent() throws BuildException { validate(); return key.trim() + "=" + value.trim(); }
checks whether all required attributes have been specified.
Throws:
  • BuildException – if key or value are unassigned
/** * checks whether all required attributes have been specified. * @throws BuildException if key or value are unassigned */
public void validate() { if (key == null || value == null) { throw new BuildException( "key and value must be specified for environment variables."); } } }
constructor
/** * constructor */
public Environment() { variables = new Vector<>(); }
add a variable. Validity checking is not performed at this point. Duplicates are not caught either.
Params:
  • var – new variable.
/** * add a variable. * Validity checking is <i>not</i> performed at this point. Duplicates * are not caught either. * @param var new variable. */
public void addVariable(Variable var) { variables.addElement(var); }
get the variable list as an array
Throws:
Returns:array of key=value assignment strings
/** * get the variable list as an array * @return array of key=value assignment strings * @throws BuildException if any variable is misconfigured */
public String[] getVariables() throws BuildException { if (variables.isEmpty()) { return null; } return variables.stream().map(Variable::getContent).toArray(String[]::new); }
Get the raw vector of variables. This is not a clone.
Returns:a potentially empty (but never null) vector of elements of type Variable
Since:Ant 1.7
/** * Get the raw vector of variables. This is not a clone. * @return a potentially empty (but never null) vector of elements of type * Variable * @since Ant 1.7 */
public Vector<Variable> getVariablesVector() { return variables; } }