/** * Get member data of type String or 1D char. * * @param m get data from this StructureMembers.Member. Must be of type char. * @return scalar char value */ public String getScalarString(StructureMembers.Member m) { return sa.getScalarString(recno, m); }
/** * Get member data of type String or 1D char. * * @param m get data from this StructureMembers.Member. Must be of type char. * @return scalar char value */ public String getScalarString(StructureMembers.Member m) { return sa.getScalarString(recno, m); }
/** * Get member data of type String or 1D char. * * @param m get data from this StructureMembers.Member. Must be of type char. * @return scalar char value */ public String getScalarString(StructureMembers.Member m) { return sa.getScalarString(recno, m); }
@Override public String getScalarString(int recnum, StructureMembers.Member m) { if (m.getDataArray() != null) return super.getScalarString(recnum, m); StructureData sd = getStructureData(recnum); return sd.getScalarString( m.getName()); }
@Override public String getScalarString(int recnum, StructureMembers.Member m) { if (m.getDataArray() != null) return super.getScalarString(recnum, m); StructureData sd = getStructureData(recnum); return sd.getScalarString( m.getName()); }
@Override public String getScalarString(int recnum, StructureMembers.Member m) { if (m.getDataArray() != null) return super.getScalarString(recnum, m); // strings are stored on the "heap", and the index to the heap is kept in the bbuffer if (m.getDataType() == DataType.STRING) { int offset = calcOffsetSetOrder(recnum, m); int index = bbuffer.getInt(offset); Object data = heap.get(index); if (data instanceof String) return (String) data; return ((String[]) data)[0]; } if (m.getDataType() == DataType.CHAR) { int offset = calcOffsetSetOrder(recnum, m); int count = m.getSize(); byte[] pa = new byte[count]; int i; for (i = 0; i < count; i++) { pa[i] = bbuffer.get(offset + i); if (0 == pa[i]) break; } return new String(pa, 0, i, CDM.utf8Charset); } throw new IllegalArgumentException("Type is " + m.getDataType() + ", must be String or char"); }
@Override public String getScalarString(int recnum, StructureMembers.Member m) { if (m.getDataArray() != null) return super.getScalarString(recnum, m); // strings are stored on the "heap", and the index to the heap is kept in the bbuffer if (m.getDataType() == DataType.STRING) { int offset = calcOffsetSetOrder(recnum, m); int index = bbuffer.getInt(offset); Object data = heap.get(index); if (data instanceof String) return (String) data; return ((String[]) data)[0]; } if (m.getDataType() == DataType.CHAR) { int offset = calcOffsetSetOrder(recnum, m); int count = m.getSize(); byte[] pa = new byte[count]; int i; for (i = 0; i < count; i++) { pa[i] = bbuffer.get(offset + i); if (0 == pa[i]) break; } return new String(pa, 0, i); } throw new IllegalArgumentException("Type is " + m.getDataType() + ", must be String or char"); }
@Override public String getScalarString(int recnum, StructureMembers.Member m) { if (m.getDataArray() != null) return super.getScalarString(recnum, m); // strings are stored on the "heap", and the index to the heap is kept in the bbuffer if (m.getDataType() == DataType.STRING) { int offset = calcOffsetSetOrder(recnum, m); int index = bbuffer.getInt(offset); Object data = heap.get(index); if (data instanceof String) return (String) data; return ((String[]) data)[0]; } if (m.getDataType() == DataType.CHAR) { int offset = calcOffsetSetOrder(recnum, m); int count = m.getSize(); byte[] pa = new byte[count]; int i; for (i = 0; i < count; i++) { pa[i] = bbuffer.get(offset + i); if (0 == pa[i]) break; } return new String(pa, 0, i, CDM.utf8Charset); } throw new IllegalArgumentException("Type is " + m.getDataType() + ", must be String or char"); }
@Override public String getScalarString(int recnum, StructureMembers.Member m) { if (m.getDataArray() != null) return super.getScalarString(recnum, m); StructureData sd = getStructureData(recnum); return sd.getScalarString( m.getName()); }
md.stringList.add(as.getScalarString(recno, m));
md.stringList.add(as.getScalarString(recno, m));
return getScalarString(recno, m); return getScalarString(recno, m);
return getScalarString(recno, m); return getScalarString(recno, m);
return getScalarString(recno, m); return getScalarString(recno, m);
if (m.getName().equalsIgnoreCase("testString")) { for (int i = 0; i < size; i++) { ps[i] = ma.getScalarString(i, m);
if (m.getName().equalsIgnoreCase("testString")) { for (int i = 0; i < size; i++) { ps[i] = ma.getScalarString(i, m);
if (m.getName().equalsIgnoreCase("testString")) { for (int i = 0; i < size; i++) { ps[i] = ma.getScalarString(i, m);
@Test public void testReadManyAtATime() throws java.io.IOException, InvalidRangeException { try (NetcdfFile ncfile = TestH5.openH5("IASI/IASI.h5")) { Variable dset = ncfile.findVariable("U-MARF/EPS/IASI_xxx_1C/DATA/TIME_DESCR"); assert (null != dset); assert (dset.getDataType() == DataType.STRUCTURE); assert (dset.getRank() == 1); assert (dset.getSize() == 60); Dimension d = dset.getDimension(0); assert (d.getLength() == 60); ArrayStructure data = (ArrayStructure) dset.read(); StructureMembers.Member m = data.getStructureMembers().findMember("EntryName"); assert m != null; for (int i = 0; i < dset.getSize(); i++) { String r = data.getScalarString(i, m); if (i % 2 == 0) assert r.equals("TIME[" + i / 2 + "]-days") : r + " at " + i; else assert r.equals("TIME[" + i / 2 + "]-milliseconds") : r + " at " + i; } } System.out.println("*** testReadManyAtATime ok"); }