All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.gdcc.xoai.dataprovider.model.Item Maven / Gradle / Ivy

/*
 * The contents of this file are subject to the license and copyright
 * detailed in the LICENSE and NOTICE files at the root of the source
 * tree and available online at
 *
 * http://www.dspace.org/license/
 */

package io.gdcc.xoai.dataprovider.model;

import io.gdcc.xoai.model.oaipmh.results.record.About;
import io.gdcc.xoai.model.oaipmh.results.record.Metadata;
import java.util.Collections;
import java.util.List;

/**
 * This is a required class to extend when implementing a specific OAI Data Provider. It works as a
 * wrapper for all OAI Items.
 *
 * @author Development @ Lyncode
 * @version 3.1.0
 */
public interface Item extends ItemIdentifier {
    /**
     * Most of the implementations would return an empty list. Anyway, the OAI-PMH protocol
     * establishes an abouts section for each item.
     *
     * @return (Maybe empty) {@link List} of information {@link About} the item (marshable
     *     information)
     * @see Record
     *     definition
     */
    default List getAbout() {
        return Collections.emptyList();
    }

    /**
     * Metadata associated to the OAI-PMH Record.
     *
     * @return {@link Metadata} associated to the OAI-PMH Record
     * @see Record
     *     definition
     */
    Metadata getMetadata();
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy