org.gcube.contentmanagement.gcubedocumentlibrary.io
Class ViewReader

java.lang.Object
  extended by org.gcube.contentmanagement.gcubedocumentlibrary.io.BaseReader
      extended by org.gcube.contentmanagement.gcubedocumentlibrary.io.ViewReader
All Implemented Interfaces:
Reader

public class ViewReader
extends BaseReader

A Reader that uses a predefined Projection to view any other Projections that is used to constrain the properties of the documents in the target collection. In this sense, the view defines a view over the target collection and for all retrieval requests.

Author:
Fabio Simeoni (University of Strathclyde)

Constructor Summary
ViewReader(Projection<?,?> f, Reader r)
          Creates an instance with a given view and a DocumentReader.
 
Method Summary
 java.lang.String collectionID()
          Returns the identifier of the target collection.
  get(java.util.Iterator<java.lang.String> ids, Projection<?,?> p)
          Retrieves a stream of proxies of document descriptions in the target collections.
  get(Projection<?,?> p)
          Retrieves a stream of proxies of document descriptions in the target collection.
 GCubeDocument get(java.lang.String id, Projection<?,?> p)
          Returns a proxy of a document description in the target collection.
<EL extends GCubeInnerElement>
resolve(java.util.Iterator<java.net.URI> uris, Projection<EL,?> p)
          Retrieves a stream of proxies of elements of document descriptions in the target collection.
<EL extends GCubeInnerElement>
EL
resolve(java.net.URI uri, Projection<EL,?> p)
          Retrieves a proxy of an element of a document description in the target collection.
 Projection<?,?> view()
          Returns the view definition used by this reader.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ViewReader

public ViewReader(Projection<?,?> f,
                  Reader r)
Creates an instance with a given view and a DocumentReader.

Parameters:
f - the Projection that acts as the view for the view.
r - the DocumentReader to which retrieval requests are dispatched after filtering
Method Detail

collectionID

public java.lang.String collectionID()
Returns the identifier of the target collection.

Returns:
the identifier.

get

public GCubeDocument get(java.lang.String id,
                         Projection<?,?> p)
                  throws InvalidProjectionException,
                         UnknownDocumentException,
                         DiscoveryException,
                         GCUBEException,
                         java.lang.Exception
Returns a proxy of a document description in the target collection.

Parameters:
id - the identifier of the description.
p - a projection over the inner elements of the description.
Returns:
the proxy of the description.
Throws:
UnknownDocumentException - if a description with the given identifier and matching the given projection is unknown in the target collection.
DiscoveryException - if the operation could not be completed due to collection discovery errors.
GCUBEException - if the operation could not be completed due to other forms of remote errors.
java.lang.Exception - if the operation could not be completed due to local errors.
InvalidProjectionException

view

public Projection<?,?> view()
Returns the view definition used by this reader.

Returns:
the view definition.

get

public  get(java.util.Iterator<java.lang.String> ids,
                 Projection<?,?> p)
          throws InvalidProjectionException,
                 DiscoveryException,
                 GCUBEException,
                 java.lang.Exception
Retrieves a stream of proxies of document descriptions in the target collections.

Parameters:
ids - an Iterator over the identifiers of the descriptions.
p - a projection over the inner elements of the descriptions.
Returns:
a RemoteIterator over the description proxies.
Throws:
DiscoveryException - if the operation could not be completed due to service discovery errors.
GCUBEException - if the operation could not be completed due to other forms of remote errors.
java.lang.Exception - if the operation could not be completed due to local errors.
InvalidProjectionException

get

public  get(Projection<?,?> p)
          throws InvalidProjectionException,
                 GCUBEException,
                 java.lang.Exception
Retrieves a stream of proxies of document descriptions in the target collection.

Parameters:
p - a projection over the inner elements of the descriptions.
Returns:
a RemoteIterator over the proxies of the descriptions.
Throws:
GCUBEException - if the operation could not be completed due to other forms of remote errors.
java.lang.Exception - if the operation could not be completed due to local errors.
InvalidProjectionException

resolve

public <EL extends GCubeInnerElement> EL resolve(java.net.URI uri,
                                                 Projection<EL,?> p)
                                     throws java.lang.IllegalArgumentException,
                                            InvalidProjectionException,
                                            UnknownDocumentException,
                                            DiscoveryException,
                                            GCUBEException,
                                            java.lang.Exception
Retrieves a proxy of an element of a document description in the target collection.

Type Parameters:
EL - the type of the element.
Parameters:
uri - the content URI of the element.
p - a projection over the element.
Returns:
the proxy of the element.
Throws:
java.lang.IllegalArgumentException - if the URI is not a content URI, or if it does not refers to a description in the target collection.
UnknownDocumentException - if the URI does not identify an element that matches the given projection.
DiscoveryException - if the operation could not be completed due to collection discovery errors.
GCUBEException - if the operation could not be completed due to other forms of remote errors.
java.lang.Exception - if the operation could not be completed due to local errors.
InvalidProjectionException

resolve

public <EL extends GCubeInnerElement>  resolve(java.util.Iterator<java.net.URI> uris,
                                                    Projection<EL,?> p)
              throws DiscoveryException,
                     GCUBEException,
                     java.lang.Exception
Retrieves a stream of proxies of elements of document descriptions in the target collection.

Type Parameters:
EL - the type of the elements.
Parameters:
uris - an Iterator over the content URIs of the elements.
p - the projection over the elements.
Returns:
a RemoteIterator over the proxies of the elements.
Throws:
DiscoveryException - if the operation could not be completed due to collection discovery errors.
GCUBEException - if the operation could not be completed due to other forms of remote errors.
java.lang.Exception - if the operation could not be completed due to local errors.