001/*****************************************************************************
002 * Copyright by The HDF Group.                                               *
003 * Copyright by the Board of Trustees of the University of Illinois.         *
004 * All rights reserved.                                                      *
005 *                                                                           *
006 * This file is part of the HDF Java Products distribution.                  *
007 * The full copyright notice, including terms governing use, modification,   *
008 * and redistribution, is contained in the files COPYING and Copyright.html. *
009 * COPYING can be found at the root of the source code distribution tree.    *
010 * Or, see https://support.hdfgroup.org/products/licenses.html               *
011 * If you do not have access to either file, you may request a copy from     *
012 * help@hdfgroup.org.                                                        *
013 ****************************************************************************/
014
015package hdf.object.h5;
016
017import hdf.object.Attribute;
018
019import hdf.object.h5.H5File;
020
021/**
022 * An interface that provides general attribute operations for hdf5 object data. For
023 * example, reference to a parent object.
024 *
025 * @see hdf.object.HObject
026 */
027public interface H5Attribute extends Attribute {
028
029    /**
030     * The general read and write attribute operations for hdf5 object data.
031     *
032     * @param attr_id
033     *        the attribute to access
034     * @param ioType
035     *        the type of IO operation
036     * @param objBuf
037     *        the data buffer to use for write operation
038     *
039     * @return the attribute data
040     *
041     * @throws Exception
042     *             if the data can not be retrieved
043     */
044    Object AttributeCommonIO(long attr_id, H5File.IO_TYPE ioType, Object objBuf) throws Exception;
045
046    /**
047     * Read a subset of an attribute for hdf5 object data.
048     *
049     * @return the selected attribute data
050     *
051     * @throws Exception
052     *             if the data can not be retrieved
053     */
054    Object AttributeSelection() throws Exception;
055}