Class KingdomsObject

java.lang.Object
org.kingdoms.constants.base.CompressedSmartObject
org.kingdoms.constants.base.KingdomsObject
All Implemented Interfaces:
SmartObject, org.kingdoms.constants.group.model.logs.Loggable, org.kingdoms.locale.provider.CascadingMessageContextProvider, org.kingdoms.locale.provider.MessageContextProvider
Direct Known Subclasses:
KeyedKingdomsObject

public abstract class KingdomsObject extends CompressedSmartObject implements org.kingdoms.constants.group.model.logs.Loggable, org.kingdoms.locale.provider.CascadingMessageContextProvider
If you're using Kotlin, it's highly recommended to build Extension Functions based on KingdomMetadata for the object that you're adding the metadata too. This makes the code much more cleaner.

Similarily, you can also use Extension Methods for Scala.

You don't need to make a separate method for Java calls, since the extensions are still usable when compiled.

  • Field Details

    • metadata

      protected @NonNull Map<KingdomMetadataHandler,org.kingdoms.constants.metadata.KingdomMetadata> metadata
    • lastLogsExpirationCheck

      protected transient long lastLogsExpirationCheck
    • logs

      protected @NonNull LinkedList<AuditLog> logs
    • statistics

      protected org.kingdoms.constants.stats.Statistics statistics
  • Constructor Details

    • KingdomsObject

      protected KingdomsObject()
    • KingdomsObject

      protected KingdomsObject(@NonNull Map<KingdomMetadataHandler,org.kingdoms.constants.metadata.KingdomMetadata> metadata, @NonNull LinkedList<AuditLog> logs, @NonNull org.kingdoms.constants.stats.Statistics statistics)
  • Method Details

    • addMessageContextEdits

      public void addMessageContextEdits(@NotNull @NotNull MessagePlaceholderProvider context)
      Specified by:
      addMessageContextEdits in interface org.kingdoms.locale.provider.CascadingMessageContextProvider
    • getNewestLog

      public <C extends AuditLog> C getNewestLog(Class<C> base)
    • getNewestLog

      public <C extends AuditLog, T> T getNewestLog(Class<C> base, Function<C,T> transformer)
    • getLogs

      public @NonNull LinkedList<AuditLog> getLogs()
      Specified by:
      getLogs in interface org.kingdoms.constants.group.model.logs.Loggable
    • setLogs

      @Internal public void setLogs(@NonNull LinkedList<AuditLog> logs)
    • log

      public void log(AuditLog log)
      Specified by:
      log in interface org.kingdoms.constants.group.model.logs.Loggable
    • setMetadata

      public void setMetadata(Map<KingdomMetadataHandler,org.kingdoms.constants.metadata.KingdomMetadata> metadata)
    • getStatistics

      public org.kingdoms.constants.stats.Statistics getStatistics()
    • setStatistics

      public void setStatistics(org.kingdoms.constants.stats.Statistics statistics)
    • getMetadata

      public @NonNull Map<KingdomMetadataHandler,org.kingdoms.constants.metadata.KingdomMetadata> getMetadata()