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

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

import com.google.gson.JsonElement;
import java.util.List;
import com.hypixel.hytale.server.npc.util.expression.Scope;
import com.hypixel.hytale.server.npc.util.expression.ExecutionContext;
import com.hypixel.hytale.server.npc.validators.NPCLoadTimeValidationHelper;
import javax.annotation.Nullable;

public abstract class BuilderObjectHelper<T> implements BuilderContext
{
    protected final Class<?> classType;
    protected BuilderParameters builderParameters;
    protected final BuilderContext owner;
    
    protected BuilderObjectHelper(final Class<?> classType, final BuilderContext owner) {
        this.owner = owner;
        this.classType = classType;
    }
    
    @Nullable
    public abstract T build(final BuilderSupport p0);
    
    public abstract boolean validate(final String p0, final NPCLoadTimeValidationHelper p1, final BuilderManager p2, final ExecutionContext p3, final Scope p4, final List<String> p5);
    
    @Override
    public BuilderContext getOwner() {
        return this.owner;
    }
    
    public final Class<?> getClassType() {
        return this.classType;
    }
    
    public void readConfig(final JsonElement data, final BuilderManager builderManager, final BuilderParameters builderParameters, final BuilderValidationHelper builderValidationHelper) {
        this.builderParameters = builderParameters;
    }
    
    public abstract boolean isPresent();
}
