// Generated by delombok at Tue Dec 16 19:34:11 UTC 2025
package net.md_5.bungee.api.chat.hover.content;

import net.md_5.bungee.api.chat.HoverEvent;

public abstract class Content {
    /**
     * Required action for this content type.
     *
     * @return action
     */
    public abstract HoverEvent.Action requiredAction();

    /**
     * Tests this content against an action
     *
     * @param input input to test
     * @throws UnsupportedOperationException if action incompatible
     */
    public void assertAction(HoverEvent.Action input) throws UnsupportedOperationException {
        if (input != requiredAction()) {
            throw new UnsupportedOperationException("Action " + input + " not compatible! Expected " + requiredAction());
        }
    }

    @java.lang.Override
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public java.lang.String toString() {
        return "Content()";
    }

    @java.lang.Override
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public boolean equals(final java.lang.Object o) {
        if (o == this) return true;
        if (!(o instanceof Content)) return false;
        final Content other = (Content) o;
        if (!other.canEqual((java.lang.Object) this)) return false;
        return true;
    }

    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    protected boolean canEqual(final java.lang.Object other) {
        return other instanceof Content;
    }

    @java.lang.Override
    @java.lang.SuppressWarnings("all")
    @lombok.Generated
    public int hashCode() {
        final int result = 1;
        return result;
    }
}
