package hu.swankey.ammo.common.script.statements;

import hu.swankey.ammo.common.yggdrasil.basics.SoftLink;
import hu.swankey.ammo.common.yggdrasil.basics.YObject;

import java.util.Map;

public class DynamicVariable extends Variable {
	
	private final SoftLink link;

	public DynamicVariable(SoftLink link) {
		
		if (link == null)
			throw new NullPointerException("'softLink' cannot be null");
		
		this.link = link;
	}

	@Override
	public YObject evaulate(Map<String, YObject> envrionment, YObject thisElement) {
		return link.getTarget(thisElement, envrionment);
	}
	
	public String toString(){
		return link.getValue();
	}

}
