| java.lang.Object org.griphyn.common.catalog.replica.SimpleFile
SimpleFile | public class SimpleFile implements ReplicaCatalog(Code) | | This class implements a replica catalog on top of a simple file which
contains two or more columns. It is neither transactionally safe, nor
advised to use for production purposes in any way. Multiple
concurrent instances will clobber each other!
The site attribute should be specified whenever possible. The
attribute key for the site attribute is "pool". For the shell
planner, its value will always be "local".
The class is permissive in what inputs it accepts. The LFN may or may
not be quoted. If it contains linear whitespace, quotes, backslash or
an equality sign, it must be quoted and escaped. Ditto for the PFN.
The attribute key-value pairs are separated by an equality sign
without any whitespaces. The value may be in quoted. The LFN
sentiments about quoting apply.
LFN PFN
LFN PFN a=b [..]
LFN PFN a="b" [..]
"LFN w/LWS" "PFN w/LWS" [..]
The class is strict when producing (storing) results. The LFN and PFN
are only quoted and escaped, if necessary. The attribute values are
always quoted and escaped.
author: Jens-S. Vöckler version: $Revision: 216 $ |
Field Summary | |
protected String | m_filename Records the name of the on-disk representation. | protected Map | m_lfn Maintains a memory slurp of the file representation. | protected boolean | m_quote Records the quoting mode for LFNs and PFNs. |
Constructor Summary | |
public | SimpleFile() Default empty constructor creates an object that is not yet connected
to any database. |
Method Summary | |
public int | clear() Removes everything. | public void | close() This operation will dump the in-memory representation back onto
disk. | public boolean | connect(String filename) Reads the on-disk map file into memory.
Parameters: filename - is the name of the file to read. | public boolean | connect(Properties props) Establishes a connection to the database from the properties.
You will need to specify a "file" property to point to the
location of the on-disk instance. | public int | delete(String lfn, String pfn) Deletes a specific mapping from the replica catalog. | public int | delete(Map x, boolean matchAttributes) Deletes multiple mappings into the replica catalog. | public int | delete(String lfn, ReplicaCatalogEntry tuple) Deletes a very specific mapping from the replica catalog. | public int | delete(String lfn, String name, Object value) Deletes all PFN entries for a given LFN from the replica catalog
where the PFN attribute is found, and matches exactly the object
value. | public int | deleteByResource(String lfn, String handle) Deletes all PFN entries for a given LFN from the replica catalog
where the resource handle is found. | public int | insert(String lfn, ReplicaCatalogEntry tuple) Inserts a new mapping into the replica catalog. | public int | insert(String lfn, String pfn, String handle) Inserts a new mapping into the replica catalog. | public int | insert(Map x) Inserts multiple mappings into the replica catalog. | public boolean | isClosed() Predicate to check, if the connection with the catalog's
implementation is still active. | public Set | list() Lists all logical filenames in the catalog. | public Set | list(String constraint) Lists a subset of all logical filenames in the catalog.
Parameters: constraint - is a constraint for the logical filename only. | public String | lookup(String lfn, String handle) Retrieves the entry for a given filename and site handle from the
replica catalog.
Parameters: lfn - is the logical filename to obtain information for. Parameters: handle - is the resource handle to obtain entries for. | public Collection | lookup(String lfn) Retrieves all entries for a given LFN from the replica catalog.
Each entry in the result set is a tuple of a PFN and all its
attributes.
Parameters: lfn - is the logical filename to obtain information for. | public Map | lookup(Set lfns) Retrieves multiple entries for a given logical filename, up to the
complete catalog. | public Map | lookup(Set lfns, String handle) Retrieves multiple entries for a given logical filename, up to the
complete catalog. | public Map | lookup(Map constraints) Retrieves multiple entries for a given logical filename, up to the
complete catalog. | public Set | lookupNoAttributes(String lfn) Retrieves all entries for a given LFN from the replica catalog.
Each entry in the result set is just a PFN string. | public Map | lookupNoAttributes(Set lfns) Retrieves multiple entries for a given logical filename, up to the
complete catalog. | public Map | lookupNoAttributes(Set lfns, String handle) Retrieves multiple entries for a given logical filename, up to the
complete catalog. | public boolean | parse(String line, int lineno) | public String | quote(Escape e, String s) Quotes a string only if necessary. | public int | remove(String lfn) Removes all mappings for an LFN from the replica catalog.
Parameters: lfn - is the logical filename to remove all mappings for. | public int | remove(Set lfns) Removes all mappings for a set of LFNs.
Parameters: lfns - is a set of logical filename to remove all mappings for. | public int | removeByAttribute(String name, Object value) Removes all entries from the replica catalog where the PFN attribute
is found, and matches exactly the object value.
Parameters: name - is the PFN attribute key to look for. Parameters: value - is an exact match of the attribute value to match. | public int | removeByAttribute(String handle) Removes all entries associated with a particular resource handle.
This is useful, if a site goes offline. |
m_filename | protected String m_filename(Code) | | Records the name of the on-disk representation.
|
m_lfn | protected Map m_lfn(Code) | | Maintains a memory slurp of the file representation.
|
m_quote | protected boolean m_quote(Code) | | Records the quoting mode for LFNs and PFNs. If false, only quote as
necessary. If true, always quote all LFNs and PFNs.
|
SimpleFile | public SimpleFile()(Code) | | Default empty constructor creates an object that is not yet connected
to any database. You must use support methods to connect before this
instance becomes usable.
See Also: SimpleFile.connect(Properties) |
clear | public int clear()(Code) | | Removes everything. Use with caution!
the number of removed entries. |
close | public void close()(Code) | | This operation will dump the in-memory representation back onto
disk. The store operation is strict in what it produces. The LFN
and PFN records are only quoted, if they require quotes, because
they contain special characters. The attributes are always
quoted and thus quote-escaped.
|
connect | public boolean connect(String filename)(Code) | | Reads the on-disk map file into memory.
Parameters: filename - is the name of the file to read. true, if the in-memory data structures appear sound. |
connect | public boolean connect(Properties props)(Code) | | Establishes a connection to the database from the properties.
You will need to specify a "file" property to point to the
location of the on-disk instance. If the property "quote" is
set to a true value, LFNs and PFNs are always quoted. By default,
and if false, LFNs and PFNs are only quoted as necessary.
Parameters: props - is the property table with sufficient settings toestablish a link with the database. true if connected, false if failed to connect. throws: Error - subclasses for runtime errors in the class loader. |
delete | public int delete(String lfn, String pfn)(Code) | | Deletes a specific mapping from the replica catalog. We don't care
about the resource handle. More than one entry could theoretically
be removed. Upon removal of an entry, all attributes associated
with the PFN also evaporate (cascading deletion).
Parameters: lfn - is the logical filename in the tuple. Parameters: pfn - is the physical filename in the tuple. the number of removed entries. |
delete | public int delete(Map x, boolean matchAttributes)(Code) | | Deletes multiple mappings into the replica catalog. The input is a
map indexed by the LFN. The value for each LFN key is a collection
of replica catalog entries. On setting matchAttributes to false, all entries
having matching lfn pfn mapping to an entry in the Map are deleted.
However, upon removal of an entry, all attributes associated with the pfn
also evaporate (cascaded deletion).
Parameters: x - is a map from logical filename string to list ofreplica catalog entries. Parameters: matchAttributes - whether mapping should be deleted only if allattributes match. the number of deletions. See Also: ReplicaCatalogEntry |
delete | public int delete(String lfn, ReplicaCatalogEntry tuple)(Code) | | Deletes a very specific mapping from the replica catalog. The LFN
must be matches, the PFN, and all PFN attributes specified in the
replica catalog entry. More than one entry could theoretically be
removed. Upon removal of an entry, all attributes associated with
the PFN also evaporate (cascading deletion).
Parameters: lfn - is the logical filename in the tuple. Parameters: tuple - is a description of the PFN and its attributes. the number of removed entries, either 0 or 1. |
delete | public int delete(String lfn, String name, Object value)(Code) | | Deletes all PFN entries for a given LFN from the replica catalog
where the PFN attribute is found, and matches exactly the object
value. This method may be useful to remove all replica entries that
have a certain MD5 sum associated with them. It may also be harmful
overkill.
Parameters: lfn - is the logical filename to look for. Parameters: name - is the PFN attribute name to look for. Parameters: value - is an exact match of the attribute value to match. the number of removed entries. |
deleteByResource | public int deleteByResource(String lfn, String handle)(Code) | | Deletes all PFN entries for a given LFN from the replica catalog
where the resource handle is found. Karan requested this
convenience method, which can be coded like
delete( lfn, RESOURCE_HANDLE, handle )
Parameters: lfn - is the logical filename to look for. Parameters: handle - is the resource handle the number of entries removed. |
insert | public int insert(String lfn, ReplicaCatalogEntry tuple)(Code) | | Inserts a new mapping into the replica catalog. Any existing
mapping of the same LFN and PFN will be replaced, including all its
attributes.
Parameters: lfn - is the logical filename under which to book the entry. Parameters: tuple - is the physical filename and associated PFN attributes. number of insertions, should always be 1. On failure,throw an exception, don't use zero. |
insert | public int insert(String lfn, String pfn, String handle)(Code) | | Inserts a new mapping into the replica catalog. This is a
convenience function exposing the resource handle. Internally, the
ReplicaCatalogEntry element will be contructed, and
passed to the appropriate insert function.
Parameters: lfn - is the logical filename under which to book the entry. Parameters: pfn - is the physical filename associated with it. Parameters: handle - is a resource handle where the PFN resides. number of insertions, should always be 1. On failure,throw an exception, don't use zero. See Also: SimpleFile.insert(String,ReplicaCatalogEntry) See Also: ReplicaCatalogEntry |
insert | public int insert(Map x)(Code) | | Inserts multiple mappings into the replica catalog. The input is a
map indexed by the LFN. The value for each LFN key is a collection
of replica catalog entries. Note that this operation will replace
existing entries.
Parameters: x - is a map from logical filename string to list of replicacatalog entries. the number of insertions. See Also: org.griphyn.common.catalog.ReplicaCatalogEntry |
isClosed | public boolean isClosed()(Code) | | Predicate to check, if the connection with the catalog's
implementation is still active. This helps determining, if it makes
sense to call close() .
true, if the implementation is disassociated, false otherwise. See Also: SimpleFile.close() |
list | public Set list()(Code) | | Lists all logical filenames in the catalog.
A set of all logical filenames known to the catalog. |
list | public Set list(String constraint)(Code) | | Lists a subset of all logical filenames in the catalog.
Parameters: constraint - is a constraint for the logical filename only. Itis a string that has some meaning to the implementing system. Thiscan be a SQL wildcard for queries, or a regular expression forJava-based memory collections. A set of logical filenames that match. The set may be empty |
lookup | public String lookup(String lfn, String handle)(Code) | | Retrieves the entry for a given filename and site handle from the
replica catalog.
Parameters: lfn - is the logical filename to obtain information for. Parameters: handle - is the resource handle to obtain entries for. the (first) matching physical filename, ornull if no match was found. |
lookup | public Collection lookup(String lfn)(Code) | | Retrieves all entries for a given LFN from the replica catalog.
Each entry in the result set is a tuple of a PFN and all its
attributes.
Parameters: lfn - is the logical filename to obtain information for. a collection of replica catalog entries See Also: ReplicaCatalogEntry |
lookup | public Map lookup(Set lfns)(Code) | | Retrieves multiple entries for a given logical filename, up to the
complete catalog. Retrieving full catalogs should be harmful, but
may be helpful in an online display or portal.
Parameters: lfns - is a set of logical filename strings to look up. a map indexed by the LFN. Each value is a collectionof replica catalog entries for the LFN. See Also: org.griphyn.common.catalog.ReplicaCatalogEntry |
lookup | public Map lookup(Set lfns, String handle)(Code) | | Retrieves multiple entries for a given logical filename, up to the
complete catalog. Retrieving full catalogs should be harmful, but
may be helpful in online display or portal.
Parameters: lfns - is a set of logical filename strings to look up. Parameters: handle - is the resource handle, restricting the LFNs. a map indexed by the LFN. Each value is a collectionof replica catalog entries (all attributes). See Also: ReplicaCatalogEntry |
lookup | public Map lookup(Map constraints)(Code) | | Retrieves multiple entries for a given logical filename, up to the
complete catalog. Retrieving full catalogs should be harmful, but
may be helpful in online display or portal.
Parameters: constraints - is mapping of keys 'lfn', 'pfn', or anyattribute name, e.g. the resource handle 'pool', to a string thathas some meaning to the implementing system. This can be a SQLwildcard for queries, or a regular expression for Java-based memorycollections. Unknown keys are ignored. Using an empty map requeststhe complete catalog. a map indexed by the LFN. Each value is a collectionof replica catalog entries. See Also: ReplicaCatalogEntry |
lookupNoAttributes | public Set lookupNoAttributes(String lfn)(Code) | | Retrieves all entries for a given LFN from the replica catalog.
Each entry in the result set is just a PFN string. Duplicates
are reduced through the set paradigm.
Parameters: lfn - is the logical filename to obtain information for. a set of PFN strings |
lookupNoAttributes | public Map lookupNoAttributes(Set lfns)(Code) | | Retrieves multiple entries for a given logical filename, up to the
complete catalog. Retrieving full catalogs should be harmful, but
may be helpful in an online display or portal.
Parameters: lfns - is a set of logical filename strings to look up. a map indexed by the LFN. Each value is a setof PFN strings. |
lookupNoAttributes | public Map lookupNoAttributes(Set lfns, String handle)(Code) | | Retrieves multiple entries for a given logical filename, up to the
complete catalog. Retrieving full catalogs should be harmful, but
may be helpful in online display or portal.
Parameters: lfns - is a set of logical filename strings to look up. Parameters: handle - is the resource handle, restricting the LFNs. a map indexed by the LFN. Each value is a set ofphysical filenames. |
parse | public boolean parse(String line, int lineno)(Code) | | Parses a line from the file replica catalog
Parameters: line - is the line to parse Parameters: lineno - is the line number of this line true if a valid element was generated |
quote | public String quote(Escape e, String s)(Code) | | Quotes a string only if necessary. This methods first determines,
if a strings requires quoting, because it contains whitespace, an
equality sign, quotes, or a backslash. If not, the string is not
quoted. If the input contains forbidden characters, it is placed
into quotes and quote and backslash are backslash escaped.
However, if the property "quote" had a true value
when connecting to the database, output will always be quoted.
Parameters: e - is the Escape instance used to escape strings. Parameters: s - is the string that may require quoting either the original string, or a newly allocated instanceto an escaped string. |
remove | public int remove(String lfn)(Code) | | Removes all mappings for an LFN from the replica catalog.
Parameters: lfn - is the logical filename to remove all mappings for. the number of removed entries. |
remove | public int remove(Set lfns)(Code) | | Removes all mappings for a set of LFNs.
Parameters: lfns - is a set of logical filename to remove all mappings for. the number of removed entries. See Also: SimpleFile.remove(String) |
removeByAttribute | public int removeByAttribute(String name, Object value)(Code) | | Removes all entries from the replica catalog where the PFN attribute
is found, and matches exactly the object value.
Parameters: name - is the PFN attribute key to look for. Parameters: value - is an exact match of the attribute value to match. the number of removed entries. |
removeByAttribute | public int removeByAttribute(String handle)(Code) | | Removes all entries associated with a particular resource handle.
This is useful, if a site goes offline. It is a convenience method,
which calls the generic removeByAttribute method.
Parameters: handle - is the site handle to remove all entries for. the number of removed entries. See Also: SimpleFile.removeByAttribute(String,Object) |
|
|