--- /dev/null
+package de.congrace.exp4j;
+
+import java.util.HashSet;
+
+public class VariableSet extends HashSet<Variable> {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -4212803364398351279L;
+
+ public boolean add(Variable v){
+ Variable previous = getVariableNamed(v.getName());
+ if ( previous != null ){
+ this.remove( previous );
+ }
+
+ return super.add(v);
+ }
+
+ public Variable getVariableNamed(String name){
+ for (Variable var : this){
+ if (var.getName().equals(name) ){
+ return var;
+ }
+ }
+ return null;
+ }
+
+ public String[] getVariableNames(){
+ if (this.size() == 0){
+ return null;
+ }
+ String names[] = new String[this.size()];
+ int i = 0;
+ for (Variable var : this){
+ names[i] = var.getName();
+ i++;
+ }
+ return names;
+ }
+}