package org.fanhongtao.tools.recordviewer; import java.util.ArrayList; import java.util.HashMap; public class RecordInfo { /** 记录的描述信息 */ private String description; /** 记录的字段分隔符 */ private String fieldSep; /** 保存字段的列表 */ private ArrayList<RecordField> fieldList; public RecordInfo(String description, String fieldSep) { this.description = description; this.fieldSep = fieldSep; fieldList = new ArrayList<RecordField>(); } public String getDescription() { return description; } void addField(RecordField field) { fieldList.add(field); } public String getFieldSep() { return fieldSep; } public String getFieldTitle(int index) { if ((index < 0) || (index >= fieldList.size())) { return "NULL FIELD: "; } return fieldList.get(index).getTitle(); } public String getFieldValue(int index, String srcValue) { if ((index < 0) || (index >= fieldList.size())) { return srcValue; } return fieldList.get(index).getFieldValue(srcValue); } } class RecordField { /** 字段显示名 */ private String title; /** 字段取值与其含义的映射 */ private HashMap<String, String> valueMap; public RecordField(String title) { this.title = title; valueMap = new HashMap<String, String>(); } public String getTitle() { return title; } public String getFieldValue(String srcValue) { String destValue = valueMap.get(srcValue); return (destValue == null) ? srcValue : destValue; } public void setFieldValue(String src, String dest) { valueMap.put(src, dest); } }