public TableParser(String format) throws IOException, NumberFormatException { int start = 0; StringTokenizer stoker = new StringTokenizer(format, " ,"); while (stoker.hasMoreTokens()) { String tok = stoker.nextToken(); // see what type Class type = String.class; char last = tok.charAt(tok.length() - 1); if (last == 'i') type = int.class; if (last == 'd') type = double.class; if (last == 'L') type = long.class; if (type != String.class) tok = tok.substring(0, tok.length() - 1); int end = Integer.parseInt(tok); fields.add(new Field(start, end, type)); start = end; } }
v = makeMember(dataSeq, VALUE, DataType.FLOAT, DIM_NAME, "monthly mean temperature", "Celsius", null, null); v.addAttribute(new Attribute(CDM.MISSING_VALUE, -9999)); dataParser.getField(3).setScale(.01f); makeMember(dataSeq, DMFLAG, DataType.CHAR, DIM_NAME, "data management flag", null, null, null); makeMember(dataSeq, QCFLAG, DataType.CHAR, DIM_NAME, "quality control flag", null, null, null); v = makeMember(nestedSeq, VALUE, DataType.FLOAT, DIM_NAME, "monthly mean temperature", "Celsius", null, null); v.addAttribute(new Attribute(CDM.MISSING_VALUE, -9999)); dataParser.getField(3).setScale(.01f); makeMember(nestedSeq, DMFLAG, DataType.CHAR, DIM_NAME, "data management flag", null, null, null); makeMember(nestedSeq, QCFLAG, DataType.CHAR, DIM_NAME, "quality control flag", null, null, null);
v = makeMember(dataSeq, VALUE, DataType.FLOAT, DIM_NAME, "monthly mean temperature", "Celsius", null, null); v.addAttribute(new Attribute(CDM.MISSING_VALUE, -9999)); dataParser.getField(3).setScale(.01f); makeMember(dataSeq, DMFLAG, DataType.CHAR, DIM_NAME, "data management flag", null, null, null); makeMember(dataSeq, QCFLAG, DataType.CHAR, DIM_NAME, "quality control flag", null, null, null); v = makeMember(nestedSeq, VALUE, DataType.FLOAT, DIM_NAME, "monthly mean temperature", "Celsius", null, null); v.addAttribute(new Attribute(CDM.MISSING_VALUE, -9999)); dataParser.getField(3).setScale(.01f); makeMember(nestedSeq, DMFLAG, DataType.CHAR, DIM_NAME, "data management flag", null, null, null); makeMember(nestedSeq, QCFLAG, DataType.CHAR, DIM_NAME, "quality control flag", null, null, null);
v = makeMember(dataSeq, VALUE, DataType.FLOAT, DIM_NAME, "monthly mean temperature", "Celsius", null, null); v.addAttribute(new Attribute(CDM.MISSING_VALUE, -9999)); dataParser.getField(3).setScale(.01f); makeMember(dataSeq, DMFLAG, DataType.CHAR, DIM_NAME, "data management flag", null, null, null); makeMember(dataSeq, QCFLAG, DataType.CHAR, DIM_NAME, "quality control flag", null, null, null); v = makeMember(nestedSeq, VALUE, DataType.FLOAT, DIM_NAME, "monthly mean temperature", "Celsius", null, null); v.addAttribute(new Attribute(CDM.MISSING_VALUE, -9999)); dataParser.getField(3).setScale(.01f); makeMember(nestedSeq, DMFLAG, DataType.CHAR, DIM_NAME, "data management flag", null, null, null); makeMember(nestedSeq, QCFLAG, DataType.CHAR, DIM_NAME, "quality control flag", null, null, null);
@Override public Array getArray(StructureMembers.Member m) { TableParser.Field f = (TableParser.Field) m.getDataObject(); if (m.getDataType() == DataType.STRING) { String result = (String) f.parse(line); return new ArrayObject(String.class, new int[] {}, new Object[] {result.trim()}); } else if (m.getDataType() == DataType.SEQUENCE) { return getArraySequence(m); } else if (!m.isScalar()) { if (m.getDataType() == DataType.FLOAT) { float[] ja = getJavaArrayFloat(m); return Array.factory(DataType.FLOAT, m.getShape(), ja); } else if (m.getDataType() == DataType.CHAR) { char[] ja = getJavaArrayChar(m); return Array.factory(DataType.CHAR, m.getShape(), ja); } else if (m.getDataType() == DataType.BYTE) { byte[] ja = getJavaArrayByte(m); return Array.factory(DataType.BYTE, m.getShape(), ja); } } Object result = f.parse(line); if (m.getDataType() == DataType.CHAR) return new ArrayChar((String) result); else return new ArrayScalar(result); }
@Override public Array getArray(StructureMembers.Member m) { TableParser.Field f = (TableParser.Field) m.getDataObject(); if (m.getDataType() == DataType.STRING) { String result = (String) f.parse(line); return Array.factory(DataType.STRING, new int[] {}, new Object[] {result.trim()}); } else if (m.getDataType() == DataType.SEQUENCE) { return getArraySequence(m); } else if (!m.isScalar()) { if (m.getDataType() == DataType.FLOAT) { float[] ja = getJavaArrayFloat(m); return Array.factory(DataType.FLOAT, m.getShape(), ja); } else if (m.getDataType() == DataType.CHAR) { char[] ja = getJavaArrayChar(m); return Array.factory(DataType.CHAR, m.getShape(), ja); } else if (m.getDataType() == DataType.BYTE) { byte[] ja = getJavaArrayByte(m); return Array.factory(DataType.BYTE, m.getShape(), ja); } } Object result = f.parse(line); if (m.getDataType() == DataType.CHAR) return new ArrayChar((String) result); else return new ArrayScalar(result, m.getDataType().isUnsigned()); }
@Override public Array getArray(StructureMembers.Member m) { TableParser.Field f = (TableParser.Field) m.getDataObject(); if (m.getDataType() == DataType.STRING) { String result = (String) f.parse(line); return new ArrayObject(String.class, new int[] {}, new Object[] {result.trim()}); } else if (m.getDataType() == DataType.SEQUENCE) { return getArraySequence(m); } else if (!m.isScalar()) { if (m.getDataType() == DataType.FLOAT) { float[] ja = getJavaArrayFloat(m); return Array.factory(DataType.FLOAT, m.getShape(), ja); } else if (m.getDataType() == DataType.CHAR) { char[] ja = getJavaArrayChar(m); return Array.factory(DataType.CHAR, m.getShape(), ja); } else if (m.getDataType() == DataType.BYTE) { byte[] ja = getJavaArrayByte(m); return Array.factory(DataType.BYTE, m.getShape(), ja); } } Object result = f.parse(line); if (m.getDataType() == DataType.CHAR) return new ArrayChar((String) result); else return new ArrayScalar(result); }
public TableParser(String format) throws IOException, NumberFormatException { int start = 0; StringTokenizer stoker = new StringTokenizer(format, " ,"); while (stoker.hasMoreTokens()) { String tok = stoker.nextToken(); // see what type Class type = String.class; char last = tok.charAt(tok.length() - 1); if (last == 'i') type = int.class; if (last == 'd') type = double.class; if (last == 'L') type = long.class; if (type != String.class) tok = tok.substring(0, tok.length() - 1); int end = Integer.parseInt(tok); fields.add(new Field(start, end, type)); start = end; } }
public TableParser(String format) throws IOException, NumberFormatException { int start = 0; StringTokenizer stoker = new StringTokenizer(format, " ,"); while (stoker.hasMoreTokens()) { String tok = stoker.nextToken(); // see what type Class type = String.class; char last = tok.charAt(tok.length() - 1); if (last == 'i') type = int.class; if (last == 'd') type = double.class; if (last == 'L') type = long.class; if (type != String.class) tok = tok.substring(0, tok.length() - 1); int end = Integer.parseInt(tok); fields.add(new Field(start, end, type)); start = end; } }
public Object parse(String line, int offset) throws NumberFormatException { return parse(line, this.start+offset, this.end+offset); }
public Object parse(String line) throws NumberFormatException { return parse(line, this.start, this.end); }
public Object parse(String line, int offset) throws NumberFormatException { return parse(line, this.start+offset, this.end+offset); }
public Object parse(String line, int offset) throws NumberFormatException { return parse(line, this.start+offset, this.end+offset); }
public Object parse(String line) throws NumberFormatException { return parse(line, this.start, this.end); }
public Object parse(String line) throws NumberFormatException { return parse(line, this.start, this.end); }
static Record make(String line, List fields) { try { Record r = new Record(); for (Object field : fields) { Field f = (Field) field; r.values.add(f.parse(line)); } return r; } catch (NumberFormatException e) { System.out.printf("Bad line=%s %n", line); return null; } }
static Record make(String line, List fields) { try { Record r = new Record(); for (Object field : fields) { Field f = (Field) field; r.values.add(f.parse(line)); } return r; } catch (NumberFormatException e) { System.out.printf("Bad line=%s %n", line); return null; } }