// 
// Decompiled by Procyon v0.6.0
// 

package com.hypixel.hytale.server.npc.asset.builder.expression;

import com.hypixel.hytale.server.npc.util.expression.StdScope;
import javax.annotation.Nonnull;
import com.hypixel.hytale.server.npc.util.expression.ValueType;
import com.hypixel.hytale.server.npc.util.expression.ExecutionContext;

public class BuilderExpressionDynamicString extends BuilderExpressionDynamic
{
    public BuilderExpressionDynamicString(final String expression, final ExecutionContext.Instruction[] instructionSequence) {
        super(expression, instructionSequence);
    }
    
    @Nonnull
    @Override
    public ValueType getType() {
        return ValueType.STRING;
    }
    
    @Override
    public String getString(@Nonnull final ExecutionContext executionContext) {
        this.execute(executionContext);
        return executionContext.popString();
    }
    
    @Override
    public void updateScope(@Nonnull final StdScope scope, final String name, @Nonnull final ExecutionContext executionContext) {
        scope.changeValue(name, this.getString(executionContext));
    }
}
