com.h3c.sdn.adm.system

## Interface SystemInformationService

-     public interface SystemInformationService

  Service for maintaining and accessing basic system information about the controller system and its team members.

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `SystemInformation` | `addSystem(SystemInformation systemInfo)` Adds a new system into the team.
    `void` | `coreDataChanged()` Notify that core data has changed and thus core data version needs to be updated.
    `SystemInformation` | `getSystem()` Gets the local system information.
    `SystemInformation` | `getSystem(Id<SystemInformation,UUID> id)` Get the system information with the specified unique id.
    `Collection<SystemInformation>` | `getSystems()` Gets all known systems.
    `void` | `registerContact(SystemInformation contact)` Registers a contact from another system.
    `void` | `removeSystem(Id<SystemInformation,UUID> id)` Removes the system with the specified unique id.
    `SystemInformation` | `setSelfIp(IpAddress ip)` Set the IP address of the non-teamed, self=true system.
    `void` | `updateSystem(SystemInformation systemInfo)` Updates the system information using the supplied descriptor.

- - ### Method Detail

    - #### getSystem

          SystemInformation getSystem()

      Gets the local system information.
      Returns:
        local system info

    - #### addSystem

          SystemInformation addSystem(SystemInformation systemInfo)

      Adds a new system into the team.
      Parameters:
        `systemInfo` - the system to be added to the team
      Returns:
        newly created system information descriptor

    - #### getSystem

          SystemInformation getSystem(Id<SystemInformation,UUID> id)

      Get the system information with the specified unique id.
      Parameters:
        `id` - system id
      Returns:
        system with the given id; null if not found

    - #### updateSystem

          void updateSystem(SystemInformation systemInfo)

      Updates the system information using the supplied descriptor.
      Parameters:
        `systemInfo` - descriptor containing changed system data
      Throws:
        `NotFoundException` - if system could not be updated because it has been removed

    - #### registerContact

          void registerContact(SystemInformation contact)

      Registers a contact from another system. If the system with the specified ID is not currently known, one will be added to the set of known systems, using the supplied attributes.
      Parameters:
        `contact` - contact to register

    - #### removeSystem

          void removeSystem(Id<SystemInformation,UUID> id)

      Removes the system with the specified unique id.
      Parameters:
        `id` - system id
      Throws:
        `NotFoundException` - if system with the specified id does not exist

    - #### getSystems

          Collection<SystemInformation> getSystems()

      Gets all known systems.
      Returns:
        collection of all known systems in the team

    - #### coreDataChanged

          void coreDataChanged()

      Notify that core data has changed and thus core data version needs to be updated.

    - #### setSelfIp

          SystemInformation setSelfIp(IpAddress ip)

      Set the IP address of the non-teamed, self=true system.
      Parameters:
        `ip` - the new IP address
      Returns:
        newly updated SystemInformation for the self system if not teamed
      Throws:
        `IllegalArgumentException` - if the `ip` is not a valid IP address on the system, or if the system is teamed
        `NullPointerException` - if any of the arguments are null

Copyright © 2014. All Rights Reserved.