org.snapscript.tree.construct.MapKey Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of snap-all Show documentation
Show all versions of snap-all Show documentation
Dynamic scripting for the JVM
package org.snapscript.tree.construct;
import org.snapscript.core.Evaluation;
import org.snapscript.core.Scope;
import org.snapscript.core.State;
import org.snapscript.core.Value;
import org.snapscript.core.ValueType;
import org.snapscript.tree.NameReference;
public class MapKey implements Evaluation {
private final NameReference reference;
public MapKey(Evaluation key) {
this.reference = new NameReference(key);
}
@Override
public Value evaluate(Scope scope, Object left) throws Exception{
String name = reference.getName(scope);
State state = scope.getState();
Value value = state.get(name);
if(value == null) {
return ValueType.getTransient(name);
}
return value;
}
}