org.edg.data.reptor.catalog
Interface ReplicaCatalog

All Known Implementing Classes:
ReplicaCatalogLrcOnlyImpl

public interface ReplicaCatalog

Docu

Version:
$Id: ReplicaCatalog.java,v 1.32 2004/05/13 10:31:48 jamesc Exp $
Author:
Gavin McCance

Method Summary
 void addAlias(java.net.URI guid, java.net.URI lfn)
          add an alias to the rmc
 void addCatalogEntry(java.net.URI guid, java.net.URI surl)
          Create a new mapping in the catalog.
 void addFileInfo(java.net.URI guid, java.net.URI surl, FileInfo info, boolean consistencyCheck)
          Add the file info to the file identified by an SURL.
 void addLfnSurlMapping(java.net.URI lfn, java.net.URI surl)
          Create a logical name to physical name mapping in the catalogs.
 boolean exists(java.net.URI uri)
          Given a URI, check if it is in the grid catalogs.
 boolean existsInRmc(java.net.URI uri)
          Given a URI, check if it is in the RMC.
 java.util.List getAllStorageFileNames(java.net.URI file)
          Returns the SURLs matching LFN or GUID in the RLS catalog; LRC and RLI.
 java.util.List getAllStorageFileNames(java.net.URI file, java.lang.String hostname)
          Returns the SURLs matching LFN or GUID in the RLS catalog; LRC and RLI.
 FileInfo getFileInfo(java.net.URI file)
          Get the file info of a given file.
 org.edg.data.rls.EdgLocalReplicaCatalog getLocalLRC()
           
 java.util.Set getLogicalFileNames(java.net.URI uri)
          Retrieve all LFNs for a GUID, a SURL or an LFN.
 org.edg.data.rmc.EdgReplicaMetadataCatalog getRMC()
           
 java.util.List getSurlForHost(java.net.URI guid, java.lang.String seHost)
           
 void removeAlias(java.net.URI guid, java.net.URI lfn)
          remove an alias from the rmc
 void removeCatalogEntry(java.net.URI guid, java.net.URI surl)
          remove an entry from the local replica catalog
 void removeMetadataCatalogEntry(java.net.URI guid, java.net.URI lfn)
          Remove an entry from the Metadata Catalog.
 void setIgnorePrefixing()
          Set the value "ignorePrefix" to yes and thus ignore internal prefixes LFNs and GUIDs when contacting RLS/RMC
 java.net.URI translateToGuid(java.net.URI uri)
          Given a URI, find a guid that represents it, using the grid catalogs if needed.
 

Method Detail

exists

public boolean exists(java.net.URI uri)
               throws CatalogCommunicationException
Given a URI, check if it is in the grid catalogs. Note: If the URI is a GUID we check for it's existence in the replica location catalog.

Parameters:
uri - the uri to check for.
Returns:
true if the uri exists in the catalog.
Throws:
CatalogCommunicationException

existsInRmc

public boolean existsInRmc(java.net.URI uri)
                    throws CatalogCommunicationException
Given a URI, check if it is in the RMC. Note: If the URI is a GUID we check for it's existence in the replica metadat catalog.

Parameters:
uri - the uri to check for.
Returns:
true if the uri exists in the catalog.
Throws:
CatalogCommunicationException

translateToGuid

public java.net.URI translateToGuid(java.net.URI uri)
                             throws CatalogCommunicationException,
                                    org.edg.data.util.InvalidFileTypeException,
                                    IllegalArgumentException,
                                    LfnDoesNotExistException,
                                    SurlDoesNotExistException,
                                    GUIDDoesNotExistException
Given a URI, find a guid that represents it, using the grid catalogs if needed.

Parameters:
uri - the LFN or SURL to retrieve the GUID of
Returns:
the GUID
Throws:
CatalogCommunicationException - if the there is a problem with the lookup
org.edg.data.util.InvalidFileTypeException
IllegalArgumentException
LfnDoesNotExistException
SurlDoesNotExistException
GUIDDoesNotExistException

getLogicalFileNames

public java.util.Set getLogicalFileNames(java.net.URI uri)
                                  throws CatalogCommunicationException,
                                         org.edg.data.util.InvalidFileTypeException,
                                         SurlDoesNotExistException,
                                         GUIDDoesNotExistException,
                                         IllegalArgumentException,
                                         LfnDoesNotExistException
Retrieve all LFNs for a GUID, a SURL or an LFN. Returns null if uri is null.

Parameters:
uri - the GUID, LFN or SURL to retrieve the LFNs of.
Returns:
a Set of LFN URIs, not containing the GUID.
Throws:
CatalogCommunicationException - if the there is a problem with the lookup.
org.edg.data.util.InvalidFileTypeException - If the uri is not a recognised scheme
SurlDoesNotExistException
GUIDDoesNotExistException
IllegalArgumentException
LfnDoesNotExistException

getAllStorageFileNames

public java.util.List getAllStorageFileNames(java.net.URI file)
                                      throws CatalogCommunicationException,
                                             org.edg.data.util.InvalidFileTypeException,
                                             GUIDDoesNotExistException,
                                             SurlDoesNotExistException,
                                             LfnDoesNotExistException
Returns the SURLs matching LFN or GUID in the RLS catalog; LRC and RLI. If it gets passed an SURL, it returns all its replicas. (protocol prefixes like gsiftp are converted to 'srm'). Returns null if an invalid file type is specified.

Parameters:
file - the LFN or GUID or SURL to get all replica SURLs of. This should not be null
Returns:
a Set of SURL URI objects.
Throws:
CatalogCommunicationException
org.edg.data.util.InvalidFileTypeException
GUIDDoesNotExistException
SurlDoesNotExistException
LfnDoesNotExistException

getAllStorageFileNames

public java.util.List getAllStorageFileNames(java.net.URI file,
                                             java.lang.String hostname)
                                      throws CatalogCommunicationException,
                                             org.edg.data.util.InvalidFileTypeException,
                                             GUIDDoesNotExistException,
                                             SurlDoesNotExistException,
                                             LfnDoesNotExistException
Returns the SURLs matching LFN or GUID in the RLS catalog; LRC and RLI. If it gets passed an SURL, it returns all its replicas. (protocol prefixes like gsiftp are converted to 'srm'). Returns null if an invalid file type is specified. Reorder the results relative to a hostname

Parameters:
file - the LFN or GUID or SURL to get all replica SURLs of. This should not be null
Returns:
a Set of SURL URI objects.
Throws:
CatalogCommunicationException
org.edg.data.util.InvalidFileTypeException
GUIDDoesNotExistException
SurlDoesNotExistException
LfnDoesNotExistException

addCatalogEntry

public void addCatalogEntry(java.net.URI guid,
                            java.net.URI surl)
                     throws CatalogCommunicationException,
                            SurlExistsException,
                            org.edg.data.util.InvalidFileTypeException
Create a new mapping in the catalog. If the guid already exists, all of the logical names are also updated with this mapping.

Parameters:
guid - the guid to add
surl - the surl it is mapped to
Throws:
CatalogCommunicationException - on failure
SurlExistsException - surl already exists
org.edg.data.util.InvalidFileTypeException

addLfnSurlMapping

public void addLfnSurlMapping(java.net.URI lfn,
                              java.net.URI surl)
                       throws org.edg.data.util.InvalidFileTypeException,
                              CatalogCommunicationException,
                              LfnExistsException,
                              SurlDoesNotExistException,
                              GUIDDoesNotExistException,
                              IllegalArgumentException,
                              LfnDoesNotExistException
Create a logical name to physical name mapping in the catalogs. If the lfn already exists but for a different GUID, an exception is thrown. If it is a new lfn, the mappings of all replicas to the surl are also updated.

Parameters:
lfn -
surl -
Throws:
org.edg.data.util.InvalidFileTypeException
CatalogCommunicationException
LfnExistsException
SurlDoesNotExistException
GUIDDoesNotExistException
IllegalArgumentException
LfnDoesNotExistException

removeMetadataCatalogEntry

public void removeMetadataCatalogEntry(java.net.URI guid,
                                       java.net.URI lfn)
                                throws CatalogCommunicationException
Remove an entry from the Metadata Catalog.

Parameters:
guid - The guid for the metadata catalog mapping to remove
lfn - The alias for the mapping to remove
Throws:
CatalogCommunicationException

removeCatalogEntry

public void removeCatalogEntry(java.net.URI guid,
                               java.net.URI surl)
                        throws CatalogCommunicationException,
                               GUIDDoesNotExistException,
                               IllegalArgumentException
remove an entry from the local replica catalog

Parameters:
guid -
surl -
Throws:
CatalogCommunicationException
GUIDDoesNotExistException
IllegalArgumentException

addAlias

public void addAlias(java.net.URI guid,
                     java.net.URI lfn)
              throws org.edg.data.util.InvalidFileTypeException,
                     CatalogCommunicationException,
                     LfnExistsException
add an alias to the rmc

Parameters:
guid -
lfn -
Throws:
CatalogCommunicationException
org.edg.data.util.InvalidFileTypeException
LfnExistsException

removeAlias

public void removeAlias(java.net.URI guid,
                        java.net.URI lfn)
                 throws org.edg.data.util.InvalidFileTypeException,
                        CatalogCommunicationException
remove an alias from the rmc

Parameters:
guid -
lfn -
Throws:
CatalogCommunicationException
org.edg.data.util.InvalidFileTypeException

addFileInfo

public void addFileInfo(java.net.URI guid,
                        java.net.URI surl,
                        FileInfo info,
                        boolean consistencyCheck)
                 throws CatalogCommunicationException,
                        org.edg.data.util.InvalidFileTypeException,
                        InvalidInfoException,
                        GUIDDoesNotExistException
Add the file info to the file identified by an SURL. The file info will be updated if it already exists! Implement it here with RLS attributes.

Parameters:
surl - an SURL.
guid - the GUID.
info -
Throws:
CatalogCommunicationException - if file does not exist.
org.edg.data.util.InvalidFileTypeException
InvalidInfoException
GUIDDoesNotExistException

getSurlForHost

public java.util.List getSurlForHost(java.net.URI guid,
                                     java.lang.String seHost)
                              throws CatalogCommunicationException,
                                     GUIDDoesNotExistException
Throws:
CatalogCommunicationException
GUIDDoesNotExistException

getFileInfo

public FileInfo getFileInfo(java.net.URI file)
                     throws CatalogCommunicationException,
                            org.edg.data.util.InvalidFileTypeException,
                            SurlDoesNotExistException,
                            LfnDoesNotExistException
Get the file info of a given file. It can be a surl, lfn or guid. The SEInfo object will only be filled if the file is a surl, i.e. its host is a recognized SE host. Returns null if file does not exist.

Parameters:
file - SURL, GUID or LFN.
Returns:
FileInfo object
Throws:
CatalogCommunicationException - if file is not valid or if it does not exist.
org.edg.data.util.InvalidFileTypeException
SurlDoesNotExistException
LfnDoesNotExistException

getLocalLRC

public org.edg.data.rls.EdgLocalReplicaCatalog getLocalLRC()
                                                    throws CatalogCommunicationException
Throws:
CatalogCommunicationException

getRMC

public org.edg.data.rmc.EdgReplicaMetadataCatalog getRMC()
                                                  throws CatalogCommunicationException
Throws:
CatalogCommunicationException

setIgnorePrefixing

public void setIgnorePrefixing()
Set the value "ignorePrefix" to yes and thus ignore internal prefixes LFNs and GUIDs when contacting RLS/RMC