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

package com.hypixel.hytale.server.npc.util;

import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import com.hypixel.hytale.server.npc.role.Role;

public interface IAnnotatedComponent
{
    void getInfo(final Role p0, final ComponentInfo p1);
    
    void setContext(final IAnnotatedComponent p0, final int p1);
    
    @Nullable
    IAnnotatedComponent getParent();
    
    int getIndex();
    
    default String getLabel() {
        final int index = this.getIndex();
        return (index >= 0) ? String.format("[%s]%s", index, this.getClass().getSimpleName()) : this.getClass().getSimpleName();
    }
    
    default void getBreadCrumbs(@Nonnull final StringBuilder sb) {
        final IAnnotatedComponent parent = this.getParent();
        if (parent != null) {
            parent.getBreadCrumbs(sb);
        }
        final String label = this.getLabel();
        if (label != null && !label.isEmpty()) {
            if (!sb.isEmpty()) {
                sb.append('|');
            }
            sb.append(label);
        }
    }
    
    @Nonnull
    default String getBreadCrumbs() {
        final StringBuilder sb = new StringBuilder();
        this.getBreadCrumbs(sb);
        return sb.toString();
    }
}
