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

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

import javax.annotation.Nullable;
import com.hypixel.hytale.server.npc.util.expression.ExecutionContext;
import com.google.gson.JsonObject;
import com.hypixel.hytale.server.npc.asset.builder.holder.StringHolder;
import javax.annotation.Nonnull;
import com.google.gson.JsonElement;

public class BuilderObjectStaticHelper<T> extends BuilderObjectReferenceHelper<T>
{
    public BuilderObjectStaticHelper(final Class<?> classType, final BuilderContext owner) {
        super(classType, owner);
    }
    
    @Override
    public void readConfig(@Nonnull final JsonElement data, @Nonnull final BuilderManager builderManager, @Nonnull final BuilderParameters builderParameters, @Nonnull final BuilderValidationHelper builderValidationHelper) {
        super.readConfig(data, builderManager, builderParameters, builderValidationHelper);
        if (!this.isFinal()) {
            throw new IllegalStateException("Static object must be static, at: " + this.getBreadCrumbs());
        }
    }
    
    @Override
    protected void setInternalReference(final StringHolder holder, final InternalReferenceResolver referenceResolver) {
        throw new IllegalStateException("Static object cannot contain a reference, at: " + this.getBreadCrumbs());
    }
    
    @Override
    protected void setFileReference(final StringHolder holder, final JsonObject jsonObject, final BuilderManager builderManager) {
        throw new IllegalStateException("Static object cannot contain a reference, at: " + this.getBreadCrumbs());
    }
    
    @Nullable
    public T staticBuild(@Nonnull final BuilderManager manager) {
        return this.getBuilder(manager, null, null).build(null);
    }
}
