1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.mybatis.generator.codegen.mybatis3.xmlmapper.elements;
17
18 import org.mybatis.generator.api.dom.xml.Attribute;
19 import org.mybatis.generator.api.dom.xml.XmlElement;
20
21 public class ResultMapWithBLOBsElementGenerator extends AbstractXmlElementGenerator {
22
23 public ResultMapWithBLOBsElementGenerator() {
24 super();
25 }
26
27 @Override
28 public void addElements(XmlElement parentElement) {
29 XmlElement answer = new XmlElement("resultMap");
30
31 answer.addAttribute(new Attribute("id",
32 introspectedTable.getResultMapWithBLOBsId()));
33
34 String returnType;
35 if (introspectedTable.getRules().generateRecordWithBLOBsClass()) {
36 returnType = introspectedTable.getRecordWithBLOBsType();
37 } else {
38
39
40 returnType = introspectedTable.getBaseRecordType();
41 }
42
43 answer.addAttribute(new Attribute("type", returnType));
44
45 if (!introspectedTable.isConstructorBased()) {
46 answer.addAttribute(new Attribute("extends",
47 introspectedTable.getBaseResultMapId()));
48 }
49
50 context.getCommentGenerator().addComment(answer);
51
52 if (introspectedTable.isConstructorBased()) {
53 addResultMapConstructorElements(answer);
54 } else {
55 addResultMapElements(answer);
56 }
57
58 if (context.getPlugins().sqlMapResultMapWithBLOBsElementGenerated(answer, introspectedTable)) {
59 parentElement.addElement(answer);
60 }
61 }
62
63 private void addResultMapElements(XmlElement answer) {
64 buildResultMapItems(ResultElementType.RESULT, introspectedTable.getBLOBColumns()).forEach(answer::addElement);
65 }
66
67 private void addResultMapConstructorElements(XmlElement answer) {
68 answer.addElement(buildConstructorElement(true));
69 }
70 }