Interface IMixinService

All Known Implementing Classes:
MixinServiceAbstract

public interface IMixinService
Mixin Service interface. Mixin services connect the mixin subsytem to the underlying environment. It is something of a god interface at present because it contains all of the current functionality accessors for calling into launchwrapper. In the future once support for modlauncher is added, it is anticipated that the interface can be split down into sub-services which handle different aspects of interacting with the environment.
  • Method Details

    • getName

      java.lang.String getName()
      Get the friendly name for this service
    • isValid

      boolean isValid()
      True if this service type is valid in the current environment
    • prepare

      void prepare()
      Called at subsystem boot
    • getInitialPhase

      MixinEnvironment.Phase getInitialPhase()
      Get the initial subsystem phase
    • init

      void init()
      Called at the end of subsystem boot
    • beginPhase

      void beginPhase()
      Called whenever a new phase is started
    • checkEnv

      void checkEnv​(java.lang.Object bootSource)
      Check whether the supplied object is a valid boot source for mixin environment
      Parameters:
      bootSource - boot source
    • getReEntranceLock

      ReEntranceLock getReEntranceLock()
      Get the transformer re-entrance lock for this service, the transformer uses this lock to track transformer re-entrance when co-operative load and transform is performed by the service.
    • getClassProvider

      IClassProvider getClassProvider()
      Return the class provider for this service. This component is required and services must not return null.
    • getBytecodeProvider

      IClassBytecodeProvider getBytecodeProvider()
      Return the class bytecode provider for this service. This component is required and services must not return null.
    • getTransformerProvider

      ITransformerProvider getTransformerProvider()
      Return the transformer provider for this service. This component is optional and is allowed to be null for services which do not support transformers, or don't support interacting with them.
    • getClassTracker

      IClassTracker getClassTracker()
      Return the class tracker for this service. This component is optional and is allowed to be null for services which do not support this functionality.
    • getAuditTrail

      IMixinAuditTrail getAuditTrail()
      Return the audit trail for this service. This component is optional and is allowed to be null for services which do not support this functionality.
    • getPlatformAgents

      java.util.Collection<java.lang.String> getPlatformAgents()
      Get additional platform agents for this service
    • getPrimaryContainer

      IContainerHandle getPrimaryContainer()
      Get the primary container for the current environment, this is usually the container which contains the Mixin classes but can be another type of container as required by the environment
    • getMixinContainers

      java.util.Collection<IContainerHandle> getMixinContainers()
      Get a collection of containers in the current environment which contain mixins we should process
    • getResourceAsStream

      java.io.InputStream getResourceAsStream​(java.lang.String name)
      Get a resource as a stream from the appropriate classloader, this is delegated via the service so that the service can choose the correct classloader from which to obtain the resource.
      Parameters:
      name - resource path
      Returns:
      input stream or null if resource not found
    • getSideName

      java.lang.String getSideName()
      Get the detected side name for this environment
    • getMinCompatibilityLevel

      MixinEnvironment.CompatibilityLevel getMinCompatibilityLevel()
      Get the minimum compatibility level supported by this service. Can return null if the service has no specific minimum compatibility level, however if a value is returned, it will be used as the minimum compatibility level and no lower levels will be supported.
      Returns:
      minimum supported MixinEnvironment.CompatibilityLevel or null
    • getMaxCompatibilityLevel

      MixinEnvironment.CompatibilityLevel getMaxCompatibilityLevel()
      Get the maximum compatibility level supported by this service. Can return null if the service has no specific maximum compatibility level. If a value is returned, a warning will be raised if a configuration attempts to se a higher compatibility level.
      Returns:
      minimum supported MixinEnvironment.CompatibilityLevel or null