gr.uoa.di.madgik.grs.proxy.local
Class LocalStoreReaderProxy

java.lang.Object
  extended by gr.uoa.di.madgik.grs.proxy.local.LocalReaderProxy
      extended by gr.uoa.di.madgik.grs.proxy.local.LocalStoreReaderProxy
All Implemented Interfaces:
IProxy, IReaderProxy

public class LocalStoreReaderProxy
extends LocalReaderProxy

This proxy extends the LocalReaderProxy capabilities by adding an additional logic layer on top of the original extended base capabilities. This additional logic layer serves to contact the IBufferStore that can then create a locator capable of being managed by the underlying LocalReaderProxy instance.

Author:
gpapanikos

Nested Class Summary
 
Nested classes/interfaces inherited from interface gr.uoa.di.madgik.grs.proxy.IProxy
IProxy.ProxyType
 
Field Summary
 
Fields inherited from interface gr.uoa.di.madgik.grs.proxy.IProxy
ProxyScheme, ProxyStoreScheme
 
Constructor Summary
LocalStoreReaderProxy()
          Creates a new instance
 
Method Summary
 void fromLocator(java.net.URI locator)
          Populates an instance of the IReaderProxy implementer with the information provided through the specific locator URI
 IBuffer getBuffer()
          After the proxy has been initialized, through this method, the IBuffer that can be used by the reader to access the writer side IBuffer can be retrieved
static boolean isOfType(java.net.URI locator)
          Checks if the provided URI is of a type that can be managed by an instance of this class.
 
Methods inherited from class gr.uoa.di.madgik.grs.proxy.local.LocalReaderProxy
overrideBufferCapacity
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LocalStoreReaderProxy

public LocalStoreReaderProxy()
Creates a new instance

Method Detail

fromLocator

public void fromLocator(java.net.URI locator)
                 throws GRS2ProxyInvalidArgumentException,
                        GRS2ProxyInvalidOperationException
Populates an instance of the IReaderProxy implementer with the information provided through the specific locator URI

This method parses the provided URI to retrieve the needed information. An example of the URI this proxy can manage is grs2-proxy://localhost?key=13bc140f-3013-4ce1-83b4-4d57d46863b0#Local

This method parses the provided URI locator that is expected to be in the form of the following example grs2-store-proxy://localhost?key=e064140f-4bcc-4c84-94c6-9420f8f31b05#LocalStore. After the parsing is completed, a BufferStoreReader instance is created, and the BufferStoreReader.populate() method is invoked. The created locator from this operation is then forwarded to the underlying LocalReaderProxy to take over any subsequent actions

Specified by:
fromLocator in interface IReaderProxy
Overrides:
fromLocator in class LocalReaderProxy
Throws:
GRS2ProxyInvalidArgumentException - If the provided locator is not of the expected type of the parsing procedure does not provide the valid information needed
GRS2ProxyInvalidOperationException - if there was a problem initializing the underlying LocalReaderProxy
See Also:
LocalReaderProxy.fromLocator(java.net.URI)

getBuffer

public IBuffer getBuffer()
                  throws GRS2ProxyInvalidOperationException
After the proxy has been initialized, through this method, the IBuffer that can be used by the reader to access the writer side IBuffer can be retrieved

Retrieves the IBuffer directly from the local GRSRegistry. If no IBuffer is found associated with the provided key, null is returned

This method should only be used after the initialization step of the fromLocator(URI) has been completed. After this is done, any call to this method simple forwards the request to he underlying LocalReaderProxy.getBuffer() method

Specified by:
getBuffer in interface IReaderProxy
Overrides:
getBuffer in class LocalReaderProxy
Returns:
The IBuffer that is serving the reader
Throws:
GRS2ProxyInvalidOperationException - if a call to this overriding method is done even after the the store has been contacted and the underlying LocalReaderProxy needs to be used.
See Also:
LocalReaderProxy.getBuffer()

isOfType

public static boolean isOfType(java.net.URI locator)
Checks if the provided URI is of a type that can be managed by an instance of this class. It bases its checks on the URI scheme and the fragment type. An example of the URI this proxy can manage is grs2-store-proxy://localhost?key=e064140f-4bcc-4c84-94c6-9420f8f31b05#LocalStore

Parameters:
locator - the locator URI that needs to be checked
Returns:
true is this proxy class can handle the locator, false otherwise