org.ogf.graap.wsag.client.api.impl
Class NegotiationClientImpl

java.lang.Object
  extended by org.ogf.graap.wsag.client.api.impl.AbstractClient
      extended by org.ogf.graap.wsag.client.api.impl.NegotiationClientImpl
All Implemented Interfaces:
NegotiationClient
Direct Known Subclasses:
LocalNegotiationClient, RestNegotiationClient, WsrfNegotiationClient

public abstract class NegotiationClientImpl
extends AbstractClient
implements NegotiationClient

Default implementation of a negotiation client. Concrete implementations must provide a proper implementation of the server interaction.

Author:
hrasheed

Field Summary
 
Fields inherited from interface org.ogf.graap.wsag.client.api.NegotiationClient
FACTORY
 
Constructor Summary
NegotiationClientImpl()
           
 
Method Summary
abstract  void advertise(NegotiationOfferType[] quotes)
          Advertises a set of negotiation offers.
abstract  NegotiationClient clone()
          Returns a copy of the client.
abstract  void destroy()
          Destroys this web service object.
abstract  AgreementTemplateType[] getNegotiableTemplates()
          A negotiation instance supports zero or more templates that can be used to create negotiation offers.
abstract  NegotiationContextType getNegotiationContext()
          Returns the context of this negotiation process.
 NegotiationOfferType getNegotiationOffer(String offerID)
          Returns the Negotiation Offer with the given offer id
abstract  NegotiationOfferType[] getNegotiationOffers()
          Returns a history of exchanged offers in this negotiation process.
abstract  NegotiationOfferType[] negotiate(NegotiationOfferType[] quotes)
          Negotiates a set of agreement offers.
abstract  void terminate()
          Terminates a negotiation.
 
Methods inherited from class org.ogf.graap.wsag.client.api.impl.AbstractClient
getProperties, getRemoteClient, getRemoteReference, getSecurityProperties, isUsingTrace, setProperties, setTrace
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.ogf.graap.wsag.client.api.NegotiationClient
getRemoteClient
 

Constructor Detail

NegotiationClientImpl

public NegotiationClientImpl()
Method Detail

getNegotiationContext

public abstract NegotiationContextType getNegotiationContext()
                                                      throws ResourceUnknownException,
                                                             ResourceUnavailableException
Returns the context of this negotiation process.

Specified by:
getNegotiationContext in interface NegotiationClient
Returns:
the negotiation context
Throws:
ResourceUnknownException - the remote resource is unknown
ResourceUnavailableException - the remote resource is unavailable

getNegotiableTemplates

public abstract AgreementTemplateType[] getNegotiableTemplates()
                                                        throws ResourceUnknownException,
                                                               ResourceUnavailableException
A negotiation instance supports zero or more templates that can be used to create negotiation offers. In case of a negotiation process, these templates are a subset of the templates offered by an agreement factory. Only these templates are returned for which a proper negotiation strategy is implemented. in case of agreement re negotiation, a negotiation instance may return one ore more templates to bootstrap the negotiation process.

Specified by:
getNegotiableTemplates in interface NegotiationClient
Returns:
the negotiable templates
Throws:
ResourceUnknownException - the remote resource is unknown
ResourceUnavailableException - the remote resource is unavailable

getNegotiationOffers

public abstract NegotiationOfferType[] getNegotiationOffers()
                                                     throws ResourceUnknownException,
                                                            ResourceUnavailableException
Returns a history of exchanged offers in this negotiation process.

Specified by:
getNegotiationOffers in interface NegotiationClient
Returns:
the offers exchanged in this negotiation
Throws:
ResourceUnknownException - the remote resource is unknown
ResourceUnavailableException - the remote resource is unavailable

negotiate

public abstract NegotiationOfferType[] negotiate(NegotiationOfferType[] quotes)
                                          throws NegotiationException,
                                                 ResourceUnknownException,
                                                 ResourceUnavailableException
Negotiates a set of agreement offers.

Specified by:
negotiate in interface NegotiationClient
Parameters:
quotes - the offers to negotiate
Returns:
a set of counter offers
Throws:
NegotiationException - an error occured processing the negotiation request
ResourceUnknownException - the remote resource is unknown
ResourceUnavailableException - the remote resource is unavailable

advertise

public abstract void advertise(NegotiationOfferType[] quotes)
                        throws NegotiationException,
                               ResourceUnknownException,
                               ResourceUnavailableException
Advertises a set of negotiation offers.

Specified by:
advertise in interface NegotiationClient
Parameters:
quotes - the offers to advertise
Throws:
NegotiationException - an error occured processing the negotiation request
ResourceUnknownException - the remote resource is unknown
ResourceUnavailableException - the remote resource is unavailable

getNegotiationOffer

public NegotiationOfferType getNegotiationOffer(String offerID)
                                         throws ResourceUnknownException,
                                                ResourceUnavailableException
Returns the Negotiation Offer with the given offer id

Specified by:
getNegotiationOffer in interface NegotiationClient
Parameters:
offerID - the offerID of the negotiation offer to retrieve
Returns:
the negotiation offer with the given offer id
Throws:
ResourceUnknownException - the remote resource is unknown
ResourceUnavailableException - the remote resource is unavailable

terminate

public abstract void terminate()
                        throws ResourceUnknownException,
                               ResourceUnavailableException
Terminates a negotiation.

Specified by:
terminate in interface NegotiationClient
Throws:
ResourceUnknownException - the remote resource is unknown
ResourceUnavailableException - the remote resource is unavailable

destroy

public abstract void destroy()
                      throws ResourceUnknownException,
                             ResourceUnavailableException
Destroys this web service object.

Specified by:
destroy in interface NegotiationClient
Throws:
ResourceUnknownException - the remote resource is unknown
ResourceUnavailableException - the remote resource is unavailable

clone

public abstract NegotiationClient clone()
                                 throws CloneNotSupportedException
Returns a copy of the client.

Specified by:
clone in interface NegotiationClient
Overrides:
clone in class Object
Returns:
the cloned NegotiationClient
Throws:
CloneNotSupportedException - indicates that a particular client implementation does not support cloning


Copyright © 2008-2012. All Rights Reserved.