Interface DSpaceObjectService<T extends DSpaceObject>

    • Method Detail

      • find

        T find​(Context context,
               UUID uuid)
        throws SQLException
        Generic find for when the precise type of an Entity is not known
        Parameters:
        context - - the context
        uuid - - uuid within table of typed dspace objects
        Returns:
        the dspace object found, or null if it does not exist.
        Throws:
        SQLException - only upon failure accessing the database.
      • getName

        String getName​(T dso)
        Get a proper name for the object. This may return null. Name should be suitable for display in a user interface.
        Parameters:
        dso - DSpaceObject
        Returns:
        Name for the object, or null if it doesn't have one
      • getIdentifiers

        ArrayList<String> getIdentifiers​(Context context,
                                         T dso)
        Tries to lookup all Identifiers of this DSpaceObject.
        Parameters:
        context - DSpace context
        dso - DSpaceObject
        Returns:
        An array containing all found identifiers or an array with a length of 0.
      • getParentObject

        DSpaceObject getParentObject​(Context context,
                                     T dso)
                              throws SQLException
        Return the dspace object that "own" the current object in the hierarchy. Note that this method has a meaning slightly different from the getAdminObject because it is independent of the action but it is in a way related to it. It defines the "first" dspace object OTHER then the current one, where allowed ADMIN actions imply allowed ADMIN actions on the object self.
        Parameters:
        context - DSpace context
        dso - DSpaceObject
        Returns:
        the dspace object that "own" the current object in the hierarchy
        Throws:
        SQLException - if database error
      • getAdminObject

        DSpaceObject getAdminObject​(Context context,
                                    T dso,
                                    int action)
                             throws SQLException
        Return the dspace object where an ADMIN action right is sufficient to grant the initial authorize check.

        Default behaviour is ADMIN right on the object grant right on all other action on the object itself. Subclass should override this method as needed.

        Parameters:
        context - DSpace context
        dso - DSpaceObject
        action - ID of action being attempted, from org.dspace.core.Constants. The ADMIN action is not a valid parameter for this method, an IllegalArgumentException should be thrown
        Returns:
        the dspace object, if any, where an ADMIN action is sufficient to grant the original action
        Throws:
        SQLException - if database error
        IllegalArgumentException - if the ADMIN action is supplied as parameter of the method call
      • getTypeText

        String getTypeText​(T dso)
        Provide the text name of the type of this DSpaceObject. It is most likely all uppercase.
        Parameters:
        dso - DSpaceObject
        Returns:
        Object type as text
      • getMetadata

        List<MetadataValue> getMetadata​(T dSpaceObject,
                                        String schema,
                                        String element,
                                        String qualifier,
                                        String lang)
        Get metadata for the DSpace Object in a chosen schema. See MetadataSchema for more information about schemas. Passing in a null value for qualifier or lang only matches metadata fields where that qualifier or languages is actually null. Passing in DSpaceObject.ANY retrieves all metadata fields with any value for the qualifier or language, including null

        Examples:

        Return values of the unqualified "title" field, in any language. Qualified title fields (e.g. "title.uniform") are NOT returned:

        dspaceobject.getMetadataByMetadataString("dc", "title", null, DSpaceObject.ANY );

        Return all US English values of the "title" element, with any qualifier (including unqualified):

        dspaceobject.getMetadataByMetadataString("dc, "title", DSpaceObject.ANY, "en_US" );

        The ordering of values of a particular element/qualifier/language combination is significant. When retrieving with wildcards, values of a particular element/qualifier/language combinations will be adjacent, but the overall ordering of the combinations is indeterminate.

        Parameters:
        dSpaceObject - DSpaceObject
        schema - the schema for the metadata field. Must match the name of an existing metadata schema.
        element - the element name. DSpaceObject.ANY matches any element. null doesn't really make sense as all metadata must have an element.
        qualifier - the qualifier. null means unqualified, and DSpaceObject.ANY means any qualifier (including unqualified.)
        lang - the ISO639 language code, optionally followed by an underscore and the ISO3166 country code. null means only values with no language are returned, and DSpaceObject.ANY means values with any country code or no country code are returned.
        Returns:
        metadata fields that match the parameters
      • getMetadataByMetadataString

        List<MetadataValue> getMetadataByMetadataString​(T dSpaceObject,
                                                        String mdString)
        Retrieve metadata field values from a given metadata string of the form <schema prefix>.<element>[.<qualifier>|.*]
        Parameters:
        dSpaceObject - DSpaceObject
        mdString - The metadata string of the form <schema prefix>.<element>[.<qualifier>|.*]
        Returns:
        metadata fields that match the parameters
      • getMetadata

        String getMetadata​(T dSpaceObject,
                           String value)
        Get the value of a metadata field
        Parameters:
        dSpaceObject - DSpaceObject
        value - the name of the metadata field to get
        Returns:
        the value of the metadata field (or null if the column is an SQL NULL)
        Throws:
        IllegalArgumentException - if the requested metadata field doesn't exist
      • getMetadata

        List<MetadataValue> getMetadata​(T dSpaceObject,
                                        String mdString,
                                        String authority)
        Get the value(s) of a metadata field.
        Parameters:
        dSpaceObject - the object whose metadata are sought.
        mdString - the name of the field: schema.element.qualifier.
        authority - name of the authority which controls these values, or null.
        Returns:
        all matching metadata values, or null if none.
      • getMetadata

        List<MetadataValue> getMetadata​(T dSpaceObject,
                                        String schema,
                                        String element,
                                        String qualifier,
                                        String lang,
                                        String authority)
        Get the value(s) of a metadata field.
        Parameters:
        dSpaceObject - the object whose metadata are sought.
        schema - name of the schema which defines the field.
        element - the field's element name.
        qualifier - the field's qualifier name, or null.
        lang - the language of the requested field value(s), null if explicitly no language, or org.dspace.content.Item.ANY to match all languages.
        authority - name of the authority which controls these values, or null.
        Returns:
        value(s) of the indicated field for the given DSO, or null.
      • addMetadata

        List<MetadataValue> addMetadata​(Context context,
                                        T dso,
                                        String schema,
                                        String element,
                                        String qualifier,
                                        String lang,
                                        List<String> values)
                                 throws SQLException
        Add metadata fields. These are appended to existing values. Use clearMetadata to remove values. The ordering of values passed in is maintained.

        If metadata authority control is available, try to get authority values. The authority confidence depends on whether authority is required or not.

        Parameters:
        context - DSpace context
        dso - DSpaceObject
        schema - the schema for the metadata field. Must match the name of an existing metadata schema.
        element - the metadata element name
        qualifier - the metadata qualifier name, or null for unqualified
        lang - the ISO639 language code, optionally followed by an underscore and the ISO3166 country code. null means the value has no language (for example, a date).
        values - the values to add.
        Returns:
        the list of MetadataValues added to the object
        Throws:
        SQLException - if database error
      • addMetadata

        List<MetadataValue> addMetadata​(Context context,
                                        T dso,
                                        String schema,
                                        String element,
                                        String qualifier,
                                        String lang,
                                        List<String> values,
                                        List<String> authorities,
                                        List<Integer> confidences)
                                 throws SQLException
        Add metadata fields. These are appended to existing values. Use clearMetadata to remove values. The ordering of values passed in is maintained.
        Parameters:
        context - DSpace context
        dso - DSpaceObject
        schema - the schema for the metadata field. Must match the name of an existing metadata schema.
        element - the metadata element name
        qualifier - the metadata qualifier name, or null for unqualified
        lang - the ISO639 language code, optionally followed by an underscore and the ISO3166 country code. null means the value has no language (for example, a date).
        values - the values to add.
        authorities - the external authority key for this value (or null)
        confidences - the authority confidence (default 0)
        Returns:
        the list of MetadataValues added to the object
        Throws:
        SQLException - if database error
      • addMetadata

        List<MetadataValue> addMetadata​(Context context,
                                        T dso,
                                        MetadataField metadataField,
                                        String lang,
                                        List<String> values,
                                        List<String> authorities,
                                        List<Integer> confidences)
                                 throws SQLException
        Add metadata fields. These are appended to existing values. Use clearMetadata to remove values. The ordering of values passed in is maintained.
        Parameters:
        context - DSpace context
        dso - DSpaceObject
        metadataField - the metadata field to which the value is to be set
        lang - the ISO639 language code, optionally followed by an underscore and the ISO3166 country code. null means the value has no language (for example, a date).
        values - the values to add.
        authorities - the external authority key for this value (or null)
        confidences - the authority confidence (default 0)
        Returns:
        the list of MetadataValues added to the object
        Throws:
        SQLException - if database error
      • addMetadata

        MetadataValue addMetadata​(Context context,
                                  T dso,
                                  MetadataField metadataField,
                                  String language,
                                  String value,
                                  String authority,
                                  int confidence)
                           throws SQLException
        Shortcut for addMetadata(Context, DSpaceObject, MetadataField, String, List, List, List) when a single value need to be added
        Parameters:
        context - DSpace context
        dso - DSpaceObject
        metadataField - the metadata field to which the value is to be set
        language - the ISO639 language code, optionally followed by an underscore and the ISO3166 country code. null means the value has no language (for example, a date).
        value - the value to add.
        authority - the external authority key for this value (or null)
        confidence - the authority confidence (default 0)
        Returns:
        the MetadataValue added ot the object
        Throws:
        SQLException
      • addMetadata

        MetadataValue addMetadata​(Context context,
                                  T dso,
                                  MetadataField metadataField,
                                  String language,
                                  String value)
                           throws SQLException
        Add a metadatafield. These are appended to existing values. Use clearMetadata to remove values.
        Parameters:
        context - DSpace context
        dso - DSpaceObject
        metadataField - the metadata field to which the value is to be set
        language - the ISO639 language code, optionally followed by an underscore and the ISO3166 country code. null means the value has no language (for example, a date).
        value - the value to add.
        Returns:
        the MetadataValue added ot the object
        Throws:
        SQLException - if database error
      • addMetadata

        List<MetadataValue> addMetadata​(Context context,
                                        T dso,
                                        MetadataField metadataField,
                                        String language,
                                        List<String> values)
                                 throws SQLException
        Add a metadatafields. These are appended to existing values. Use clearMetadata to remove values.
        Parameters:
        context - DSpace context
        dso - DSpaceObject
        metadataField - the metadata field to which the value is to be set
        language - the ISO639 language code, optionally followed by an underscore and the ISO3166 country code. null means the value has no language (for example, a date).
        values - the values to add.
        Returns:
        the list of MetadataValues added to the object
        Throws:
        SQLException - if database error
      • addMetadata

        MetadataValue addMetadata​(Context context,
                                  T dso,
                                  String schema,
                                  String element,
                                  String qualifier,
                                  String lang,
                                  String value)
                           throws SQLException
        Add a single metadata field. This is appended to existing values. Use clearMetadata to remove values.
        Parameters:
        context - DSpace context
        dso - DSpaceObject
        schema - the schema for the metadata field. Must match the name of an existing metadata schema.
        element - the metadata element name
        qualifier - the metadata qualifier, or null for unqualified
        lang - the ISO639 language code, optionally followed by an underscore and the ISO3166 country code. null means the value has no language (for example, a date).
        value - the value to add.
        Returns:
        the MetadataValue added ot the object
        Throws:
        SQLException - if database error
      • addMetadata

        MetadataValue addMetadata​(Context context,
                                  T dso,
                                  String schema,
                                  String element,
                                  String qualifier,
                                  String lang,
                                  String value,
                                  String authority,
                                  int confidence,
                                  int place)
                           throws SQLException
        Add a single metadata value at the given place position.
        Parameters:
        context - DSpace context
        dso - DSpaceObject
        schema - the schema for the metadata field. Must match the name of an existing metadata schema.
        element - the metadata element name
        qualifier - the metadata qualifier, or null for unqualified
        lang - the ISO639 language code, optionally followed by an underscore and the ISO3166 country code. null means the value has no language (for example, a date).
        value - the value to add.
        authority - the external authority key for this value (or null)
        confidence - the authority confidence (default 0)
        place - the metadata position
        Returns:
        the MetadataValue added ot the object
        Throws:
        SQLException - if database error
      • addMetadata

        MetadataValue addMetadata​(Context context,
                                  T dso,
                                  String schema,
                                  String element,
                                  String qualifier,
                                  String lang,
                                  String value,
                                  String authority,
                                  int confidence)
                           throws SQLException
        Add a single metadata field. This is appended to existing values. Use clearMetadata to remove values.
        Parameters:
        context - DSpace context
        dso - DSpaceObject
        schema - the schema for the metadata field. Must match the name of an existing metadata schema.
        element - the metadata element name
        qualifier - the metadata qualifier, or null for unqualified
        lang - the ISO639 language code, optionally followed by an underscore and the ISO3166 country code. null means the value has no language (for example, a date).
        value - the value to add.
        authority - the external authority key for this value (or null)
        confidence - the authority confidence (default 0)
        Returns:
        the MetadataValue added ot the object
        Throws:
        SQLException - if database error
      • clearMetadata

        void clearMetadata​(Context context,
                           T dso,
                           String schema,
                           String element,
                           String qualifier,
                           String lang)
                    throws SQLException
        Clear metadata values. As with getDC above, passing in null only matches fields where the qualifier orr language is actually null.Item.ANY will match any element, qualifier or language, including null. Thus, dspaceobject.clearMetadata(Item.ANY, Item.ANY, Item.ANY) will remove all Dublin Core metadata associated with an DSpaceObject.
        Parameters:
        context - DSpace context
        dso - DSpaceObject
        schema - the schema for the metadata field. Must match the name of an existing metadata schema.
        element - the Dublin Core element to remove, or Item.ANY
        qualifier - the qualifier. null means unqualified, and Item.ANY means any qualifier (including unqualified.)
        lang - the ISO639 language code, optionally followed by an underscore and the ISO3166 country code. null means only values with no language are removed, and Item.ANY means values with any country code or no country code are removed.
        Throws:
        SQLException - if database error
      • getMetadataFirstValue

        String getMetadataFirstValue​(T dso,
                                     String schema,
                                     String element,
                                     String qualifier,
                                     String language)
        Get the first value of a metadata field.
        Parameters:
        dso - the object whose metadata are sought.
        schema - name of the schema which defines the field.
        element - element name of the field.
        qualifier - qualifier name of the field, or null.
        language - select only values in this language.
        Returns:
        first value of the field, or null if none.
      • getMetadataFirstValue

        String getMetadataFirstValue​(T dso,
                                     MetadataFieldName field,
                                     String language)
        Get the first value of a metadata field.
        Parameters:
        dso - the object whose metadata are sought.
        field - {schema, element, qualifier} for the desired field.
        language - select only values in this language.
        Returns:
        first value of the field, or null if none.
      • setMetadataSingleValue

        void setMetadataSingleValue​(Context context,
                                    T dso,
                                    String schema,
                                    String element,
                                    String qualifier,
                                    String language,
                                    String value)
                             throws SQLException
        Set first metadata field value
        Parameters:
        context - DSpace context
        dso - DSpaceObject
        schema - the schema for the metadata field. Must match the name of an existing metadata schema.
        element - the Dublin Core element to remove, or Item.ANY
        qualifier - the qualifier. null means unqualified, and Item.ANY means any qualifier (including unqualified.)
        language - the ISO639 language code, optionally followed by an underscore and the ISO3166 country code. null means only values with no language are removed, and Item.ANY means values with any country code or no country code are removed.
        value - metadata value
        Throws:
        SQLException - if database error
      • setMetadataSingleValue

        void setMetadataSingleValue​(Context context,
                                    T dso,
                                    MetadataFieldName field,
                                    String language,
                                    String value)
                             throws SQLException
        Set first metadata field value
        Parameters:
        context - DSpace context
        dso - DSpaceObject
        field - {schema, element, qualifier} for the desired field.
        language - the ISO639 language code, optionally followed by an underscore and the ISO3166 country code. null means only values with no language are removed, and Item.ANY means values with any country code or no country code are removed.
        value - metadata value
        Throws:
        SQLException - if database error
      • addAndShiftRightMetadata

        void addAndShiftRightMetadata​(Context context,
                                      T dso,
                                      String schema,
                                      String element,
                                      String qualifier,
                                      String lang,
                                      String value,
                                      String authority,
                                      int confidence,
                                      int index)
                               throws SQLException
        Add a single metadata field. Whether it's appended or prepended depends on index parameter. Use clearMetadata to remove values.
        Parameters:
        context - DSpace context
        dso - DSpaceObject
        schema - the schema for the metadata field. Must match the name of an existing metadata schema.
        element - the metadata element name
        qualifier - the metadata qualifier, or null for unqualified
        lang - the ISO639 language code, optionally followed by an underscore and the ISO3166 country code. null means the value has no language (for example, a date).
        value - the value to add.
        authority - the external authority key for this value (or null)
        confidence - the authority confidence (default 0)
        index - the index at which this metadata is added (0: first place, -1 for last)
        Throws:
        SQLException - if database error
      • getSupportsTypeConstant

        int getSupportsTypeConstant()
        Returns the Constants which this service supports
        Returns:
        a org.dspace.core.Constants that represents a IndexableObject type
      • setMetadataModified

        void setMetadataModified​(T dso)
        Trigger the modifiedMetadata variable in DSpaceObject
        Parameters:
        dso - DSpaceObject whose metadata has been modified