this.config = config;
this.errorContext = config.getErrorContext();
this.client = config.getClient();
this.delegate = config.getDelegate();
this.typeHandlerFactory = config.getTypeHandlerFactory();
this.resultMap = new ResultMap(client.getDelegate());
this.resultMappingList = new ArrayList();
errorContext.setActivity("building a result map");
errorContext.setObjectId(id + " result map");
resultMap.setId(id);
resultMap.setXmlName(xmlName);
resultMap.setResource(errorContext.getResource());
if (groupBy != null && groupBy.length() > 0) {
StringTokenizer parser = new StringTokenizer(groupBy, ", ", false);
while (parser.hasMoreTokens()) {
resultMap.addGroupByProperty(parser.nextToken());
}
}
resultMap.setResultClass(resultClass);
errorContext.setMoreInfo("Check the extended result map.");
if (extendsResultMap != null) {
ResultMap extendedResultMap = (ResultMap) client.getDelegate().getResultMap(extendsResultMap);
ResultMapping[] resultMappings = extendedResultMap.getResultMappings();
for (int i = 0; i < resultMappings.length; i++) {
resultMappingList.add(resultMappings[i]);
}
List nestedResultMappings = extendedResultMap.getNestedResultMappings();
if (nestedResultMappings != null) {
Iterator iter = nestedResultMappings.iterator();
while (iter.hasNext()) {
resultMap.addNestedResultMappings((ResultMapping) iter.next());
}
}
if (groupBy == null || groupBy.length() == 0) {
if (extendedResultMap.hasGroupBy()) {
Iterator i = extendedResultMap.groupByProps();
while (i.hasNext()) {
resultMap.addGroupByProperty((String) i.next());
}
}
}