00001
00004 package cast.configuration;
00005
00006 import java.util.StringTokenizer;
00007
00016 public class EnvVarTokenizer extends StringTokenizer {
00017
00022 public EnvVarTokenizer(String _str) {
00023 super(_str);
00024 }
00025
00030 public EnvVarTokenizer(String _str, String _delim) {
00031 super(_str, _delim);
00032 }
00033
00039 public EnvVarTokenizer(String _str, String _delim, boolean _returnDelims) {
00040 super(_str, _delim, _returnDelims);
00041 }
00042
00043
00044
00045 @Override
00046 public String nextToken() {
00047 return envVar(super.nextToken());
00048 }
00049
00050 private String envVar(String _token) {
00051
00052 if(_token.charAt(0) == '$') {
00053 String var = System.getenv(_token.substring(1));
00054 if(var == null) {
00055 throw new RuntimeException("Undefined environment variable: " + _token);
00056 }
00057 return var;
00058 }
00059 else {
00060 return _token;
00061 }
00062 }
00063
00064 @Override
00065 public String nextToken(String _delim) {
00066 return envVar(super.nextToken(_delim));
00067 }
00068
00069 }