Package org.dspace.administer

Source Code of org.dspace.administer.DCType

/*
* DCType.java
*
* Version: $Revision: 3733 $
*
* Date: $Date: 2009-04-24 03:52:11 +0000 (Fri, 24 Apr 2009) $
*
* Copyright (c) 2002-2009, The DSpace Foundation.  All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* - Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* - Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* - Neither the name of the DSpace Foundation nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
* DAMAGE.
*/
package org.dspace.administer;

import java.io.IOException;
import java.sql.SQLException;

import org.apache.log4j.Logger;
import org.dspace.authorize.AuthorizeException;
import org.dspace.content.MetadataField;
import org.dspace.content.MetadataSchema;
import org.dspace.content.NonUniqueMetadataException;
import org.dspace.core.Context;

/**
* Class representing a particular Dublin Core metadata type, with various
* utility methods. In general, only used for manipulating the registry of
* Dublin Core types in the system, so most users will not need this.
*
* <p>
* The DCType implementation has been deprecated, please use MetadataManager,
* MetadataSchema and MetadataField instead. For backward compatibility the this
* implementation has been updated to transparently call the new classes.
* </p>
*
* @author Robert Tansley
* @author Martin Hald
* @version $Revision: 3733 $
* @deprecated
*/
public class DCType
{
    /** log4j logger */
    private static Logger log = Logger.getLogger(DCType.class);

    /** Our context */
    private Context ourContext;

    /** The matching metadata field */
    private MetadataField field = new MetadataField();

    /**
     * Create a DCType from an existing metadata field.
     *
     * @param context
     * @param field
     * @deprecated
     */
    public DCType(Context context, MetadataField field)
    {
        this.ourContext = context;
        this.field = field;
    }

    /**
     * Default constructor.
     *
     * @param context
     * @deprecated
     */
    public DCType(Context context)
    {
        this.ourContext = context;
    }

    /**
     * Utility method for quick access to an element and qualifier given the
     * type ID.
     *
     * @param context
     *            context, in case DC types need to be read in from DB
     * @param id
     *            the DC type ID
     * @return a two-String array, string 0 is the element, string 1 is the
     *         qualifier
     * @deprecated
     */
    public static String[] quickFind(Context context, int id)
            throws SQLException
    {
        MetadataField field = MetadataField.find(context, id);

        String[] result = new String[2];

        if (field == null)
        {
        return result;
    }
        else
        {
            result[0] = field.getElement();
            result[1] = field.getQualifier();
            return result;
        }
    }

    /**
     * Get a metadata field from the database.
     *
     * @param context
     *            DSpace context object
     * @param id
     *            ID of the dublin core type
     *
     * @return the metadata field, or null if the ID is invalid.
     * @deprecated
     */
    public static DCType find(Context context, int id) throws SQLException
    {
        MetadataField field = MetadataField.find(context, id);
        return new DCType(context, field);
    }

    /**
     * Find a given Dublin Core type. Returns <code>null</code> if the Dublin
     * Core type doesn't exist.
     *
     * @param context
     *            the DSpace context to use
     * @param element
     *            the element to find
     * @param qualifier
     *            the qualifier, or <code>null</code> to find an unqualified
     *            type
     *
     * @return the Dublin Core type, or <code>null</code> if there isn't a
     *         corresponding type in the registry
     * @throws AuthorizeException
     * @deprecated
     */
    public static DCType findByElement(Context context, String element,
            String qualifier) throws SQLException, AuthorizeException
    {
        MetadataField field = MetadataField.findByElement(context,
                MetadataSchema.DC_SCHEMA_ID, element, qualifier);

        if (field == null)
        {
            return null;
        }
        else
        {
            return new DCType(context, field);
        }
    }

    /**
     * Retrieve all Dublin Core types from the registry
     *
     * @return an array of all the Dublin Core types
     * @deprecated
     */
    public static DCType[] findAll(Context context) throws SQLException
    {

        MetadataField field[] = MetadataField.findAll(context);
        DCType[] typeArray = new DCType[field.length];

        for (int ii = 0; ii < field.length; ii++)
        {
            typeArray[ii] = new DCType(context, field[ii]);
        }

        // Return the array
        return typeArray;
    }

    /**
     * Create a new Dublin Core type
     *
     * @param context
     *            DSpace context object
     * @return the newly created DCType
     * @throws NonUniqueMetadataException
     * @throws IOException
     * @deprecated
     */
    public static DCType create(Context context) throws SQLException,
            AuthorizeException, IOException, NonUniqueMetadataException
        {
        MetadataField field = new MetadataField();
        field.setSchemaID(MetadataSchema.DC_SCHEMA_ID);
        field.create(context);
        return new DCType(context, field);
    }

    /**
     * Delete this DC type. This won't work if there are any DC values in the
     * database of this type - they need to be updated first. An
     * <code>SQLException</code> (referential integrity violation) will be
     * thrown in this case.
     * @deprecated
     */
    public void delete() throws SQLException, AuthorizeException
    {
        field.delete(ourContext);
    }

    /**
     * Get the internal identifier of this metadata field
     *
     * @return the internal identifier
     */
    public int getID()
    {
        return field.getFieldID();
    }

    /**
     * Get the DC element
     *
     * @return the element
     */
    public String getElement()
    {
        return field.getElement();
    }

    /**
     * Set the DC element
     *
     * @param s
     *            the new element
     */
    public void setElement(String s)
    {
        field.setElement(s);
    }

    /**
     * Get the DC qualifier, if any.
     *
     * @return the DC qualifier, or <code>null</code> if this is an
     *         unqualified element
     */
    public String getQualifier()
    {
        return field.getQualifier();
    }

    /**
     * Set the DC qualifier
     *
     * @param s
     *            the DC qualifier, or <code>null</code> if this is an
     *            unqualified element
     */
    public void setQualifier(String s)
    {
        field.setQualifier(s);
    }

    /**
     * Get the scope note - information about the DC type and its use
     *
     * @return the scope note
     */
    public String getScopeNote()
    {
        return field.getScopeNote();
    }

    /**
     * Set the scope note
     *
     * @param s
     *            the new scope note
     */
    public void setScopeNote(String s)
    {
        field.setScopeNote(s);
    }

    /**
     * Update the dublin core registry
     *
     * @throws IOException
     * @throws NonUniqueMetadataException
     * @deprecated
     */
    public void update() throws SQLException, AuthorizeException,
            NonUniqueMetadataException, IOException
        {
        field.update(ourContext);
    }
}
TOP

Related Classes of org.dspace.administer.DCType

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.