package foundation.data.entity;
|
|
import java.util.List;
|
|
public class SummaryFields {
|
|
private String value;
|
private SummaryType type;
|
private String[] fieldNames;
|
private String[] fields;
|
|
public static SummaryFields getInstance(List<String> sumFields, SummaryType type) {
|
SummaryFields summaryFields = new SummaryFields();
|
|
String fieldName, valueField;
|
int pos;
|
String[] fieldNames;String[] fields;
|
|
// default field
|
String sumField = type.getSimple();
|
pos = sumField.indexOf(" ");
|
|
if(sumFields == null) {
|
fieldNames = new String[] {sumField.substring(pos + 1)};
|
fields = new String[] {sumField.substring(0, pos)};
|
summaryFields.setFieldNames(fieldNames);
|
summaryFields.setFields(fields);
|
summaryFields.setValue(sumField);
|
return summaryFields;
|
}
|
|
fieldNames = new String[sumFields.size() + 1];
|
fields = new String[sumFields.size() + 1];
|
fieldNames[0] = sumField.substring(pos + 1);
|
fields[0] = sumField.substring(0, pos);
|
|
int indexNo = 0;
|
for (String field: sumFields) {
|
pos = field.lastIndexOf(' ');
|
|
if (pos > 0) {
|
fieldName = field.substring(pos + 1);
|
valueField = field.substring(0, pos);
|
}
|
else {
|
fieldName = field;
|
valueField = field;
|
}
|
|
indexNo = indexNo + 1;
|
fieldNames[indexNo] = fieldName;
|
fields[indexNo] = valueField;
|
|
sumField = sumField + ", " + type.name() + "(" + valueField + ") " + fieldName + "_" + type.getAlias();
|
}
|
|
summaryFields.setValue(sumField);
|
summaryFields.setFieldNames(fieldNames);
|
summaryFields.setFields(fields);
|
summaryFields.setType(type);
|
|
return summaryFields;
|
}
|
|
private void setType(SummaryType type) {
|
this.type = type;
|
}
|
|
private void setFieldNames(String[] fieldNames) {
|
this.fieldNames = fieldNames;
|
}
|
|
public String[] getFieldNames() {
|
return fieldNames;
|
}
|
|
private void setFields(String[] fields) {
|
this.fields = fields;
|
}
|
|
public String getValue() {
|
return value;
|
}
|
|
public String getTypeAlias() {
|
return type.getAlias();
|
}
|
|
public void setValue(String value) {
|
this.value = value;
|
}
|
|
public int getSize() {
|
return fieldNames.length;
|
}
|
}
|