DODSVariable( DODSNetcdfFile dodsfile, Group parentGroup, Structure parentStructure, String dodsShortName, opendap.dap.BaseType dodsScalar, DodsV dodsV) { super(dodsfile, parentGroup, parentStructure, DODSNetcdfFile.makeShortName(dodsShortName)); setDODSName(DODSNetcdfFile.makeDODSName(dodsShortName)); this.dodsfile = dodsfile; setDataType( dodsV.getDataType()); /* if (DODSNetcdfFile.isUnsigned( dodsScalar)) { addAttribute(new DODSAttribute(CDM.UNSIGNED, "true")); } */ // check for netcdf char array Dimension strlenDim; if ((dataType == DataType.STRING) && (null != (strlenDim = dodsfile.getNetcdfStrlenDim( this)))) { List<Dimension> dims = new ArrayList<Dimension>(); if (strlenDim.getLength() != 0) dims.add( dodsfile.getSharedDimension( parentGroup, strlenDim)); setDimensions(dims); setDataType( DataType.CHAR); } else { shape = new int[0]; } setSPobject(dodsV); }
DODSVariable( DODSNetcdfFile dodsfile, Group parentGroup, Structure parentStructure, String dodsShortName, DArray dodsArray, opendap.dap.BaseType elemType, DodsV dodsV ) { // name is already properly decoded: super(dodsfile, parentGroup, parentStructure, DODSNetcdfFile.makeNetcdfName( dodsShortName)); super(dodsfile, parentGroup, parentStructure,dodsShortName); setDODSName(DODSNetcdfFile.makeDODSName(dodsShortName)); this.dodsfile = dodsfile; setDataType( dodsV.getDataType()); /* if (DODSNetcdfFile.isUnsigned( elemType)) { // create _Unsigned attribute; may be overridden when attributes are read addAttribute(new DODSAttribute(CDM.UNSIGNED, "true")); } */ List<Dimension> dims = dodsfile.constructDimensions( parentGroup, dodsArray); // check for netcdf char array Dimension strlenDim; if ((dataType == DataType.STRING) && (null != (strlenDim = dodsfile.getNetcdfStrlenDim( this)))) { if (strlenDim.getLength() != 0) dims.add( dodsfile.getSharedDimension( parentGroup, strlenDim)); setDataType( DataType.CHAR); } setDimensions(dims); setSPobject(dodsV); }