java.lang.Object
ru.vyarus.dropwizard.guice.module.context.info.impl.ItemInfoImpl
All Implemented Interfaces:
ItemInfo
Direct Known Subclasses:
ClassItemInfoImpl, InstanceItemInfoImpl

public class ItemInfoImpl extends Object implements ItemInfo
Item info implementation.
Since:
06.07.2016
  • Field Details

    • complete

      protected boolean complete
      Indicates complete initialization (useful for extensions - installer might be not set).
  • Constructor Details

    • ItemInfoImpl

      public ItemInfoImpl(ConfigItem itemType, ItemId id)
      Create item.
      Parameters:
      itemType - item type
      id - item id
  • Method Details

    • getId

      public ItemId getId()
      Description copied from interface: ItemInfo
      Items could be registered by class and by instance. In case of instance registration, multiple instances could be provided with the same class. For class registrations item id is equal to pure class.
      Specified by:
      getId in interface ItemInfo
      Returns:
      item identity
    • getItemType

      public ConfigItem getItemType()
      Specified by:
      getItemType in interface ItemInfo
      Returns:
      configuration item type (e.g. installer, bundle, extension etc)
    • getType

      public Class<?> getType()
      Specified by:
      getType in interface ItemInfo
      Returns:
      actual item class
    • getRegisteredBy

      public Set<ItemId> getRegisteredBy()
      Description copied from interface: ItemInfo
      Configuration items may be registered by root application class, classpath scan or guicey bundle. For registrations in application class Application is stored as context. For registration by classpath scan ClasspathScanner is stored as context. For registrations by GuiceyBundle, actual bundle class is stored as context. Bundle items may also have GuiceyBundleLookup as context classe for bundles resolved by lookup mechanism.

      May not contain elements if item was never registered, but for example, disabled.

      To quick check if exact scope class is present use ItemId.from(class), which will match any class instance related scope key.

      Specified by:
      getRegisteredBy in interface ItemInfo
      Returns:
      context classes which register item or empty collection
      See Also:
    • getRegistrationAttempts

      public int getRegistrationAttempts()
      Description copied from interface: ItemInfo
      It may be 0 for disabled items (e.g. installer disabled but never registered). Also, count may be greater than registration sources count, because the same source could register item multiple times.
      Specified by:
      getRegistrationAttempts in interface ItemInfo
      Returns:
      count of item registrations
    • isRegistered

      public boolean isRegistered()
      Description copied from interface: ItemInfo
      Useful to recognize not registered info items appeared for example because of item disabling.
      Specified by:
      isRegistered in interface ItemInfo
      Returns:
      true if item was registered, false otherwise
    • isRegisteredDirectly

      public boolean isRegisteredDirectly()
      Specified by:
      isRegisteredDirectly in interface ItemInfo
      Returns:
      true if item directly registered through GuiceBundle.Builder, false otherwise.
    • getRegistrationScope

      public ItemId getRegistrationScope()
      Description copied from interface: ItemInfo
      Item may be registered multiple times. For class items (e.g. extension) only first scope will be actual registration scope (and registrations from other scopes will be simply ignored). For instance items (bundle, module), different objects of the same type will be registered according to DuplicateConfigDetector).

      May be null for never registered but disabled items!

      Specified by:
      getRegistrationScope in interface ItemInfo
      Returns:
      registration scope
      See Also:
    • getRegistrationScopeType

      public ConfigScope getRegistrationScopeType()
      Description copied from interface: ItemInfo
      It is essentially the same as ItemInfo.getRegistrationScope(), but with generified guicey bundle scope. May be useful for generic reporting.
      Specified by:
      getRegistrationScopeType in interface ItemInfo
      Returns:
      type of registration scope
    • getIgnoresByScope

      public int getIgnoresByScope(ItemId scope)
      Description copied from interface: ItemInfo
      Required to show ignored items in the same scope as actual registration.

      When checked bundles by class only item (ItemId.from(Bundle.class)) it wil return sum of registrations for all instances of type.

      Specified by:
      getIgnoresByScope in interface ItemInfo
      Parameters:
      scope - scope
      Returns:
      number of ignored items in scope
    • getIgnoresByScope

      public int getIgnoresByScope(Class<?> scope)
      Description copied from interface: ItemInfo
      Specified by:
      getIgnoresByScope in interface ItemInfo
      Parameters:
      scope - scope type to check ignores
      Returns:
      number of ignored items in all scopes of specified type
    • isAllDataCollected

      public boolean isAllDataCollected()
      Description copied from interface: ItemInfo
      For example, item for extension might be registered before recognition with installer, and it is important to wait for installer before applying disable predicates (which potentially may rely on installer).
      Specified by:
      isAllDataCollected in interface ItemInfo
      Returns:
      true if item completely initialized (all related data provided)
    • countRegistrationAttempt

      public void countRegistrationAttempt(ItemId scope)
      Record item registration.
      Parameters:
      scope - registration scope
    • toString

      public String toString()
      Overrides:
      toString in class Object