/*
VisAD system for interactive analysis and visualization of numerical
data.  Copyright (C) 1996 - 2017 Bill Hibbard, Curtis Rueden, Tom
Rink, Dave Glowacki, Steve Emmerson, Tom Whittaker, Don Murray, and
Tommy Jasmin.

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Library General Public License for more details.

You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
MA 02111-1307, USA
*/

/****************************************************************************
 * NCSA HDF                                                                 *
 * National Comptational Science Alliance                                   *
 * University of Illinois at Urbana-Champaign                               *
 * 605 E. Springfield, Champaign IL 61820                                   *
 *                                                                          *
 * For conditions of distribution and use, see the accompanying             *
 * hdf/COPYING file.                                                        *
 *                                                                          *
 ****************************************************************************/

package visad.data.hdf5.hdf5objects;

import java.io.Serializable;
import ncsa.hdf.hdf5lib.exceptions.HDF5Exception;

/**
 *  HDF5Object is an HDF5Object which is the super class of all the
 *  HDF5 objects. Each HDF5 object inherits all the methods and fields of the
 *  HDF5Object and may override inherited methods.
 *  

* HDF5 files are organized in a hierarchical structure, with two primary * structures (or objects): groups and datasets. *

 *    HDF5Group: a grouping structure containing instances of zero or more
 *         groups or datasets, together with supporting metadata.
 *    HDF5Dataset: a multidimensional array of data elements, together with
 *         supporting metadata.
 *  
* Other HDF5 objects include * */ public class HDF5Object implements Serializable { /** Unknown object type */ public static final int UNKNOWN = -1; /** Object is a symbolic link */ public static final int LINK = 0; /** Object is a group */ public static final int GROUP = 1; /** Object is a dataset */ public static final int DATASET = 2; /* Object is a named data type */ public static final int DATATYPE = 3; /* Object is a named data type */ public static final int DATASPACE = 4; /* Object is a named data type */ public static final int ATTRIBUTE = 5; /* HDF5 file */ public static final int HDF5FILE = 6; /** the type of the object */ protected int type; /** the full path name of the HDF5 object */ protected String name; /** the short name for display: name without path */ protected String shortName; /** the identifier of the HDF5 object */ protected int id; /** the short description of the HDF5 object */ protected String description; /** construct an HDF5 object with defaults */ public HDF5Object() { this (null); } /** cosntruct an HDF5Object object name * @param objName the name of the HDF5 data object */ public HDF5Object(String objName) { name = objName; type = UNKNOWN; description = ""; if (name != null && !name.equals("/")) { int idx = name.lastIndexOf('/')+1; shortName = name.substring(idx); } else shortName = name; } /** initialize the HDF5Object: open the HDF5 library. * A subclass of HDF5Object should override this method * if it has initialization to perform. */ public void init() throws HDF5Exception { if (id < 0) return; } /** reset the HDF5Object for a given id * @param new_id the id of the object */ public void setID(int new_id) throws HDF5Exception { id = new_id; init(); } /** Sets the short name of the HDF5Object */ public void setShortName(String sname) { shortName = sname; } /** Returns the type of the object */ public int getType() { return type; } /** Sets the type of the object */ public void setType(int t) {type = t;} /** Returns the full name of the HDF5Object */ public String getName() { return name; } /** Returns the short name of the HDF5Object */ public String getShortName() { return shortName; } /** Returns the description of the HDF5Object */ public String getDescription() { return description; } /** Returns the identifier of the HDF5Object */ public int getID() { return id; } /** * Converts this object to a String representation. * @return a string representation of this object */ public String toString() { if (name == null) return super.toString(); else return getClass().getName() + "[name=" + name + "]"; } }

Ads help maintain this website.