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 java.util.List; 018 019import hdf.hdf5lib.structs.H5O_info_t; 020import hdf.object.FileFormat; 021import hdf.object.HObject; 022import hdf.object.MetaDataContainer; 023 024/** 025 * An H5Link object represents an existing HDF5 object in file. 026 * <p> 027 * H5Link object is an HDF5 object that is either a soft or an external link to 028 * an object in a file that does not exist. The type of the object is unknown. 029 * Once the object being linked to is created, and the type is known, then 030 * H5link object will change its type. 031 * 032 * @version 2.7.2 7/6/2010 033 * @author Nidhi Gupta 034 */ 035 036public class H5Link extends HObject implements MetaDataContainer { 037 private static final long serialVersionUID = -8137277460521594367L; 038 039 @SuppressWarnings("unused") 040 private H5O_info_t obj_info; 041 042 /** 043 * Constructs an HDF5 link with specific name, path, and parent. 044 * 045 * @param theFile 046 * the file which containing the link. 047 * @param name 048 * the name of this link, e.g. "link1". 049 * @param path 050 * the full path of this link, e.g. "/groups/". 051 */ 052 public H5Link(FileFormat theFile, String name, String path) { 053 this (theFile, name, path, null); 054 } 055 056 @SuppressWarnings("deprecation") 057 public H5Link(FileFormat theFile, String theName, String thePath, 058 long[] oid) { 059 super(theFile, theName, thePath, oid); 060 061 obj_info = new H5O_info_t(-1L, -1L, -1, 0, -1L, 0L, 0L, 0L, 0L, null,null,null); 062 } 063 064 @Override 065 public void close(long id) { 066 } 067 068 @Override 069 public long open() { 070 return 0; 071 } 072 073 @SuppressWarnings("rawtypes") 074 public List getMetadata() throws Exception { 075 076 try{ 077 this.linkTargetObjName= H5File.getLinkTargetName(this); 078 }catch(Exception ex){ 079 } 080 081 return null; 082 } 083 084 public boolean hasAttribute() { 085 return false; 086 } 087 088 public void removeMetadata(Object info) throws Exception { 089 } 090 091 public void writeMetadata(Object info) throws Exception { 092 } 093 094 public void updateMetadata(Object info) throws Exception { 095 } 096 097 @SuppressWarnings("rawtypes") 098 public List getMetadata(int... attrPropList) throws Exception { 099 return null; 100 } 101 102 /* 103 * (non-Javadoc) 104 * 105 * @see hdf.object.HObject#setName(java.lang.String) 106 */ 107 @Override 108 public void setName(String newName) throws Exception { 109 if (newName == null) 110 throw new IllegalArgumentException("The new name is NULL"); 111 112 H5File.renameObject(this, newName); 113 super.setName(newName); 114 } 115}