org.licas.def

## Interface ServiceDef

- All Known Subinterfaces:
    ServiceWrapperDef
  All Known Implementing Classes:
    Auto, AutoInterface, AutonomicManager, AutonomicManagerDefault, AutoSecure, BehaviourModule, BlockingListener, BM_InfoClientPS, BM_LinkData, BM_Script, CM_Auto, CM_Data, CM_LinkData, CM_Script, CM_Server, ControlModule, DataModule, DataService, ESB, FrameworkModule, HeuristicModule, HM_Cluster, HM_CompleteLink, HM_ContainsLink, HM_SingleLink, HttpListener, InformationMediator, InformationService, Link, Link_B, Link_M, Link_NM, LinkService, NonBlockingListener, ScriptService, Service, ServiceInterface, ServiceMediator, ServiceModule, ServiceWrapper, ServiceWrapperLegacy, SM_Auto, SM_Data, SM_LinkData, SM_Script, SM_Server, SM_Service

      public interface ServiceDef

  This interface contains some methods that a `Service` class should have public.
  Author:
    Kieran Greer

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `canAccess(java.lang.String thePassword)` Return true if the wrapped object can be accessed by the password.
    `boolean` | `canAccessTemp(java.lang.String thePassword)` Return true if the password allows the calling component to access this component by a temp password.
    `java.lang.String` | `getServiceType()` Get the service type.
    `java.lang.String` | `getUUID()` Get the unique service ID.
    `boolean` | `isAdminKey(java.lang.String theAdminKey)` Return true if the key passed in is this service's admin key.
    `void` | `setJarFile(java.util.ArrayList<java.lang.String> theJarFile)` Set the list of jar files required to load the service, but only if the existing list is null, otherwise it is not changed.
    `void` | `setServiceType(java.lang.String thisServiceType)` Set the service type value, but only if it is null, otherwise it is not changed.
    `void` | `setUUID(java.lang.String thisUUID)` Set the ID value, but only if it is null, otherwise it is not changed.

- - ### Method Detail

    - #### setUUID

          void setUUID(java.lang.String thisUUID)

      Set the ID value, but only if it is null, otherwise it is not changed. This method should probably not be called manually as the uuid is automatically set when the service is loaded as the service name.
      Parameters:
        `thisUUID` - the ID.

    - #### getUUID

          java.lang.String getUUID()

      Get the unique service ID.
      Returns:
        the unique service id.

    - #### setServiceType

          void setServiceType(java.lang.String thisServiceType)

      Set the service type value, but only if it is null, otherwise it is not changed. This method should probably not be called manually as the service type is automatically set when the service is loaded as the service name.
      Parameters:
        `thisServiceType` - the service type.

    - #### getServiceType

          java.lang.String getServiceType()

      Get the service type.
      Returns:
        the service functional type.

    - #### setJarFile

          void setJarFile(java.util.ArrayList<java.lang.String> theJarFile)

      Set the list of jar files required to load the service, but only if the existing list is null, otherwise it is not changed.
      Parameters:
        `theJarFile` - the jar file list. Values are jar paths of type String.

    - #### canAccess

          boolean canAccess(java.lang.String thePassword)

      Return true if the wrapped object can be accessed by the password. If the object is of type `Service` then its `canAccess` method is called, otherwise true is automatically returned. Password protection is assumed for the licas system only. Any wrapped object can still implement a different form of password protection.
      Parameters:
        `thePassword` - the password to use.
      Returns:
        true if the wrapped object can be accessed or false otherwise.

    - #### canAccessTemp

          boolean canAccessTemp(java.lang.String thePassword)

      Return true if the password allows the calling component to access this component by a temp password.
      Parameters:
        `thePassword` - the password to use.
      Returns:
        true if the entered password is the valid.

    - #### isAdminKey

          boolean isAdminKey(java.lang.String theAdminKey)

      Return true if the key passed in is this service's admin key.
      Parameters:
        `theAdminKey` - the key to check.
      Returns:
        true if this is the service key