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

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

import javax.annotation.Nonnull;
import javax.annotation.Nullable;

public interface BuilderContext
{
    BuilderContext getOwner();
    
    String getLabel();
    
    default void setCurrentStateName(final String name) {
    }
    
    @Nullable
    default Builder<?> getParent() {
        final BuilderContext owner = this.getOwner();
        return (owner instanceof Builder) ? ((Builder)owner) : ((owner != null) ? owner.getParent() : null);
    }
    
    default void getBreadCrumbs(@Nonnull final StringBuilder stringBuilder) {
        final BuilderContext owner = this.getOwner();
        if (owner != null) {
            owner.getBreadCrumbs(stringBuilder);
        }
        final String label = this.getLabel();
        if (label != null && !label.isEmpty()) {
            if (!stringBuilder.isEmpty()) {
                stringBuilder.append('|');
            }
            stringBuilder.append(label);
        }
    }
    
    @Nonnull
    default String getBreadCrumbs() {
        final StringBuilder stringBuilder = new StringBuilder(80);
        this.getBreadCrumbs(stringBuilder);
        return stringBuilder.toString();
    }
}
