= API-A (Fedora Access service API) = <> == Repository Access == <> === describeRepository === Gets information that describes the repository. Returns: * {{{RepositoryInfo}}} * {{{String repositoryName}}} - The name of the Repository. Set in fedora.fcfg. Default "Fedora Repository" * {{{String repositoryVersion}}} - The version of Fedora running. Fedora 3.0 returns "3.0" * {{{String repositoryBaseURL}}} - The repository base url set in fedora.fcfg. Default "http://localhost:8080/fedora" * {{{String repositoryPIDNamespace}}} - The prefix to use for newly generated PIDs * {{{String defaultExportFormat}}} * {{{String OAINamespace}}} - The oai namespace. Default "example.org" * {{{String[] adminEmailList}}} - The email to the administrator. Default "bob@example.org" and "sally@example.org". Defined in fedora.fcfg. * {{{String samplePID}}} - An example pid, to show how to refer to objects. "doms:100" * {{{String sampleOAIIdentifier}}} - An example oai identifier, to show how to refer to records. Example: "oai:example.org:doms:100" * {{{String sampleSearchURL}}} - The url to the search service for the repository. Default "http://localhost:8080/fedora/search" * {{{String sampleAccessURL}}} - The url to an example object in the repository. Default "http://localhost:8080/fedora/get/demo:5" * {{{String sampleOAIURL}}} - The url to an oai record. Default "http://localhost:8080/fedora/oai?verb=Identify" * {{{String[] retainPIDs}}} - The list of pid prefixes, that cause the pid to not be autogenerated. Throws: * {{{java.rmi.RemoteException}}} == Object Access == <> === getObjectProfile === Gets the !ObjectProfile of an object, which includes key metadata fields and URLs for the object Dissemination Index and the object Item Index. Can be thought of as a default view of the object. Input parameters: * {{{String pid}}} The pid of the object. * {{{String asOfDateTime}}} The date/time stamp specifying the desired version of the object. If null, the current version of the object (the most recent time) is assumed. Returns: * {{{ObjectProfile}}} Contains these fields * {{{String pid}}} * {{{String objLabel}}} * {{{String[] objModels}}} * {{{String objCreateDate}}} * {{{String objLastModDate}}} * {{{String objDissIndexViewURL}}} * {{{String objItemIndexViewURL}}} Throws: * {{{java.rmi.RemoteException}}} <> === getObjectHistory === Gets a list of timestamps that correspond to modification dates of components. This currently includes changes to Datastreams and disseminators. Input parameters: * {{{String pid}}} The pid of the object. Returns: * {{{String[]}}} An array containing the list of timestamps indicating when changes were made to the object. Throws: * {{{java.rmi.RemoteException}}} <> === findObjects === Lists the specified fields of each object matching the given criteria. Input parameters: * {{{String[] resultfields}}}} The names of the fields to return. * {{{int maxResults}}} The maximum number of results to return at a time. * {{{FieldSearchQuery query}}}: The terms or conditions for the search. Either terms or conditions are used, not both. * {{{String terms}}}: The search terms * {{{Condition[] conditions}}}: The conditions on the results * {{{String property}}}: The property to condition. Possible fields are the same as for resultfields. * {{{Operator operator}}}: Possible values are: "has", "eq", "lt", "le", "gt" and "ge" * {{{String value}}}: The value the constrained property must adhere to The possible values for {{{resultfield}}} are the following: * Key fields: pid, label, state, ownerId, cDate, mDate, dcmDate * Dublin core fields: title, creator, subject, description, publisher, contributor, date, format, identifier, source, language, relation, coverage, rights Returns: * {{{FieldSearchResult}}} * {{{ListSession listsession}}} The information nessesary for resuming the search. * {{{String token}}}: The token to be used in resumeFindObjects * {{{int cursor}}}: The index of the first object in this resultlist, in the complete resultlist. * {{{int completeListSize}}}: The size of the complete resultlist. * {{{String expirationDate}}}: The expirationdate for the token. The last time when the search can be resumed. * {{{ObjectFields[] resultlist}}}: the specified fields of each object matching the given criteria. * {{{String pid}}} Only set if the relevant field was set in resultfields * {{{String label}}} Only set if the relevant field was set in resultfields * {{{String state}}} Only set if the relevant field was set in resultfields * {{{String ownerId}}} Only set if the relevant field was set in resultfields * {{{String cDate}}} Only set if the relevant field was set in resultfields * {{{String mDate}}} Only set if the relevant field was set in resultfields * {{{String dcmDate}}} Only set if the relevant field was set in resultfields * {{{String[] title}}} Only set if the relevant field was set in resultfields * {{{String[] creator}}} Only set if the relevant field was set in resultfields * {{{String[] subject}}} Only set if the relevant field was set in resultfields * {{{String[] description}}} Only set if the relevant field was set in resultfields * {{{String[] publisher}}} Only set if the relevant field was set in resultfields * {{{String[] contributor}}} Only set if the relevant field was set in resultfields * {{{String[] date}}} Only set if the relevant field was set in resultfields * {{{String[] type}}} Only set if the relevant field was set in resultfields * {{{String[] format}}} Only set if the relevant field was set in resultfields * {{{String[] identifier}}} Only set if the relevant field was set in resultfields * {{{String[] source}}} Only set if the relevant field was set in resultfields * {{{String[] language}}} Only set if the relevant field was set in resultfields * {{{String[] relation}}} Only set if the relevant field was set in resultfields * {{{String[] coverage}}} Only set if the relevant field was set in resultfields * {{{String[] rights}}} Only set if the relevant field was set in resultfields Throws: * {{{java.rmi.RemoteException}}} == Datastream Access == <> === listDatastreams === Lists the datastreams of an object. See also [[#getDatastreamDissemination|getDatastreamDissemination]] Input parameters: * {{{String pid}}} The pid of the object. * {{{String asOfDateTime}}} The date/time stamp specifying the desired version of the object. If null, the current version of the object (the most recent time) is assumed. Returns: * {{{DatastreamDef[]}}} * {{{String ID}}} * {{{String label}}} * {{{String MIMEType}}} Throws: * {{{java.rmi.RemoteException}}} <> === getDatastreamDissemination === Gets the content of a datastream. See also [[#listDatastreams|listDatastreams]] Input parameters: * {{{String pid}}} The PID of the object. * {{{String dsID}}} The datastream ID. * {{{String asOfDateTime}}} A dateTime indicating the version of the datastream to retrieve. If null, Fedora will use the most recent version. Returns: * {{{MIMETypedStream}}} * {{{String MIMEType}}} * {{{byte[] stream}}} The contents of the Stream * {{{Property[] header}}} The header will be empty, or if applicable, contain the http header as name/value pairs. * {{{String name}}} * {{{String value}}} Throws: * {{{java.rmi.RemoteException}}} == Dissemination Access == <> === listMethods === Lists all the methods that the object supports. See also [[#getDissemination|getDissemination]] Each method can take a number of paramethers. Each parameter for a method has a name, and a type. The possible values of a parameter depends on its type. It can be bound to a datastream in the object, it can have a hardcoded value or it can be defined by the caller. Each parameter is defined to be passed by reference or passed by value. Input parameters: * {{{String pid}}} The pid of the object. * {{{String asOfDateTime}}} The date/time stamp specifying the desired version of the object. If null, the current version of the object (the most recent time) is assumed. Returns: * {{{ObjectMethodDef[]}}} * {{{String PID}}} * {{{String serviceDefinitionPID}}} * {{{String methodName}}} * {{{MethodParmDef[] methodParmDefs}}} * {{{String parmName}}} The name of the parameter. * {{{String parmType}}} The type of the parameter. Restricted to "fedora:datastreamInputType", "fedora:userInputType" or "fedora:defaultInputType" * {{{String parmDefaultValue}}} If the parmType is default, this is the value that will be used. Null if other type. * {{{String[] parmDomainValues}}} If the parameter can be defined by the user, these are the possible values. Null if other type. * {{{boolean parmRequired}}} False, if this parameter can be left out of a call. * {{{String parmLabel}}} The label for the parameter. Can be null. * {{{String parmPassBy}}} The method of passing the paramenter. Restricted to "URL_REF" (if the parameter is pass by reference - by an url) and "VALUE" (if the parameter is pass by value) * {{{String asOfDate}}} Throws: * {{{java.rmi.RemoteException}}} <> === getDissemination === Disseminates the content produced by executing the method specified in the service definition associated the specified digital object. See also [[#listMethods|listMethods]] Input parameters: * {{{String pid}}} The pid of the object. * {{{String serviceDefinitionPid}}} The PID of the Service Definition object. * {{{String methodName}}} The name of the method to be executed. * {{{Property[] parameters}}} name-value pairs. * {{{String name}}} * {{{String value}}} * {{{String asOfDateTime}}} The versioning dateTime. If null, Fedora will use the most recent version. Returns: * {{{MIMETypedStream}}} * {{{String MIMEType}}} * {{{byte[] stream}}} The contents of the Stream * {{{Property[] header}}} The header will be empty, or if applicable, contain the http header as name/value pairs. * {{{String name}}} * {{{String value}}} Throws: * {{{java.rmi.RemoteException}}}