org.sblim.cimclient.discovery
Class AdvertisementCatalog

java.lang.Object
  extended by org.sblim.cimclient.discovery.AdvertisementCatalog

public class AdvertisementCatalog
extends java.lang.Object

Class AdvertisementCatalog implements a catalog for wbem service advertisements. In practise we usually have multiple advertisements for a single service, because the DMTF mandates an advertisement per remote service access point (e.g. http, https, rmi). This class tries to ease the management of this by indexing services by the unique service id and therefore surfacing which advertisements belong to the same service. The application might then choose it's preferred communication mechanism.

Since:
2.0.2
Threading considerations:
No thread synchronization provided, this is the responsibility of the caller.

Nested Class Summary
static interface AdvertisementCatalog.EventListener
          Interface EventListener specifies listener that are called when an advertisement is added to or removed from the catalog, expires or is renewed.
 
Field Summary
static int EVENT_ADD
          Event code when advertisement is added
static int EVENT_EXPIRE
          Event code when advertisement expires
static int EVENT_REMOVE
          Event code when advertisement is removed
static int EVENT_RENEW
          Event code when advertisement is renewed
 
Constructor Summary
AdvertisementCatalog()
          Ctor.
 
Method Summary
 void addAdvertisements(WBEMServiceAdvertisement[] pAdvertisements)
          Adds new advertisements to the catalog.
 void addEventListener(AdvertisementCatalog.EventListener pListener)
          Adds a listener for "add" events.
 WBEMServiceAdvertisement getAdvertisement(java.lang.String pId, WBEMProtocol[] pProtocols)
          Returns the advertisement from the catalog corresponding to a given id and with the protocol preferred most.
 WBEMServiceAdvertisement[] getAdvertisementsByDirectory(java.lang.String pDirectory)
          Returns the advertisements from the catalog corresponding to a given directory
 WBEMServiceAdvertisement[] getAdvertisementsById(java.lang.String pId)
          Returns the advertisements from the catalog corresponding to a given id
 java.lang.String[] getKnownIds()
          Returns an array of service ids known by this catalog
 void refreshAdvertisements(java.lang.String[] pDirectory, WBEMServiceAdvertisement[] pAdvertisements)
          Refreshes the advertisements from a given directory.
 void removeEventListener(AdvertisementCatalog.EventListener pListener)
          Removes a listener
 void removeExpired(java.lang.String pDirectory)
          Removes the expired advertisements from the catalog.
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

EVENT_ADD

public static int EVENT_ADD
Event code when advertisement is added


EVENT_REMOVE

public static int EVENT_REMOVE
Event code when advertisement is removed


EVENT_EXPIRE

public static int EVENT_EXPIRE
Event code when advertisement expires


EVENT_RENEW

public static int EVENT_RENEW
Event code when advertisement is renewed

Constructor Detail

AdvertisementCatalog

public AdvertisementCatalog()
Ctor.

Method Detail

addEventListener

public void addEventListener(AdvertisementCatalog.EventListener pListener)
Adds a listener for "add" events. The listener will be called whenever a advertisement is added to the catalog.

Parameters:
pListener - The listener

addAdvertisements

public void addAdvertisements(WBEMServiceAdvertisement[] pAdvertisements)
Adds new advertisements to the catalog. Existing advertisments sharing concrete type, url and directory are replaced.

Parameters:
pAdvertisements - The new advertisements

getAdvertisement

public WBEMServiceAdvertisement getAdvertisement(java.lang.String pId,
                                                 WBEMProtocol[] pProtocols)
Returns the advertisement from the catalog corresponding to a given id and with the protocol preferred most.

Parameters:
pId - The service id
pProtocols - An array containing the desired protocols in order of preference. If a service doesn't advertise any of the given protocols this service returns null.
Returns:
The corresponding advertisement

getAdvertisementsByDirectory

public WBEMServiceAdvertisement[] getAdvertisementsByDirectory(java.lang.String pDirectory)
Returns the advertisements from the catalog corresponding to a given directory

Parameters:
pDirectory - The directory service
Returns:
The corresponding advertisements

getAdvertisementsById

public WBEMServiceAdvertisement[] getAdvertisementsById(java.lang.String pId)
Returns the advertisements from the catalog corresponding to a given id

Parameters:
pId - The service id
Returns:
The corresponding advertisements

getKnownIds

public java.lang.String[] getKnownIds()
Returns an array of service ids known by this catalog

Returns:
The service ids

refreshAdvertisements

public void refreshAdvertisements(java.lang.String[] pDirectory,
                                  WBEMServiceAdvertisement[] pAdvertisements)
Refreshes the advertisements from a given directory. All existing advertisements from this directory are deleted first before the new ones are added.

Parameters:
pDirectory - The directory services we got the advertisements from
pAdvertisements - The advertisments

removeEventListener

public void removeEventListener(AdvertisementCatalog.EventListener pListener)
Removes a listener

Parameters:
pListener - The listener to remove

removeExpired

public void removeExpired(java.lang.String pDirectory)
Removes the expired advertisements from the catalog.

Parameters:
pDirectory - When not null only the expired advertisements of the given directory are removed. Otherwise all expired advertisements are removed.

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object


Copyright © 2005, 2009 IBM Corporation. All Rights Reserved.