Class NamedObjectReference<T extends NamedEntity>

java.lang.Object
dev.crafty.core.storage.wrappers.NamedObjectReference<T>
Type Parameters:
T - The type of NamedEntity being referenced

public class NamedObjectReference<T extends NamedEntity> extends Object
A reference wrapper that automatically resolves objects using registered resolvers.
Since:
1.0.0
  • Constructor Details

    • NamedObjectReference

      public NamedObjectReference(String name)
    • NamedObjectReference

      public NamedObjectReference(T object)
  • Method Details

    • getName

      public String getName()
    • registerResolver

      public static <T extends NamedEntity> void registerResolver(Class<T> type, Function<String,T> resolver)
      Register a resolver for a specific type. This is typically done during plugin initialization.
    • resolve

      public T resolve(Class<T> type)
      Resolve the object using the registered resolver for this type.
    • resolve

      public T resolve()
      Resolve using the type that was captured during creation.
    • of

      public static <T extends NamedEntity> NamedObjectReference<T> of(T object)
      Factory methods for creating references
    • byName

      public static <T extends NamedEntity> NamedObjectReference<T> byName(String name, Class<T> type)
    • byName

      public static <T extends NamedEntity> NamedObjectReference<T> byName(String name)
    • isResolved

      public boolean isResolved()
    • toString

      public String toString()
      Overrides:
      toString in class Object