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 COPYING file, which can be found  *
009 * at the root of the source code distribution tree,                         *
010 * or in https://www.hdfgroup.org/licenses.                                  *
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;
018import hdf.object.h5.H5File;
019
020/**
021 * An interface that provides general attribute operations for hdf5 object data. For
022 * example, reference to a parent object.
023 *
024 * @see hdf.object.HObject
025 */
026public interface H5Attribute extends Attribute {
027
028    /**
029     * The general read and write attribute operations for hdf5 object data.
030     *
031     * @param attr_id
032     *        the attribute to access
033     * @param ioType
034     *        the type of IO operation
035     * @param objBuf
036     *        the data buffer to use for write operation
037     *
038     * @return the attribute data
039     *
040     * @throws Exception
041     *             if the data can not be retrieved
042     */
043    Object AttributeCommonIO(long attr_id, H5File.IO_TYPE ioType, Object objBuf) throws Exception;
044
045    /**
046     * Read a subset of an attribute for hdf5 object data.
047     *
048     * @return the selected attribute data
049     *
050     * @throws Exception
051     *             if the data can not be retrieved
052     */
053    Object AttributeSelection() throws Exception;
054}