use of org.mybatis.generator.api.dom.xml.XmlElement in project generator by mybatis.
the class ExampleWhereClauseElementGenerator method addElements.
@Override
public void addElements(XmlElement parentElement) {
//$NON-NLS-1$
XmlElement answer = new XmlElement("sql");
answer.addAttribute(new Attribute("id", //$NON-NLS-1$
introspectedTable.getExampleWhereClauseId()));
context.getCommentGenerator().addComment(answer);
//$NON-NLS-1$
XmlElement outerIterateElement = new XmlElement("iterate");
outerIterateElement.addAttribute(new Attribute("property", //$NON-NLS-1$ //$NON-NLS-2$
"oredCriteria"));
//$NON-NLS-1$ //$NON-NLS-2$
outerIterateElement.addAttribute(new Attribute("conjunction", "or"));
//$NON-NLS-1$ //$NON-NLS-2$
outerIterateElement.addAttribute(new Attribute("prepend", "where"));
outerIterateElement.addAttribute(new Attribute("removeFirstPrepend", //$NON-NLS-1$ //$NON-NLS-2$
"iterate"));
answer.addElement(outerIterateElement);
//$NON-NLS-1$
XmlElement isEqualElement = new XmlElement("isEqual");
isEqualElement.addAttribute(new Attribute("property", //$NON-NLS-1$ //$NON-NLS-2$
"oredCriteria[].valid"));
//$NON-NLS-1$ //$NON-NLS-2$
isEqualElement.addAttribute(new Attribute("compareValue", "true"));
outerIterateElement.addElement(isEqualElement);
//$NON-NLS-1$
isEqualElement.addElement(new TextElement("("));
//$NON-NLS-1$
XmlElement innerIterateElement = new XmlElement("iterate");
//$NON-NLS-1$ //$NON-NLS-2$
innerIterateElement.addAttribute(new Attribute("prepend", "and"));
innerIterateElement.addAttribute(new Attribute("property", //$NON-NLS-1$ //$NON-NLS-2$
"oredCriteria[].criteriaWithoutValue"));
//$NON-NLS-1$ //$NON-NLS-2$
innerIterateElement.addAttribute(new Attribute("conjunction", "and"));
innerIterateElement.addElement(new TextElement(//$NON-NLS-1$
"$oredCriteria[].criteriaWithoutValue[]$"));
isEqualElement.addElement(innerIterateElement);
//$NON-NLS-1$
innerIterateElement = new XmlElement("iterate");
//$NON-NLS-1$ //$NON-NLS-2$
innerIterateElement.addAttribute(new Attribute("prepend", "and"));
innerIterateElement.addAttribute(new Attribute("property", //$NON-NLS-1$ //$NON-NLS-2$
"oredCriteria[].criteriaWithSingleValue"));
//$NON-NLS-1$ //$NON-NLS-2$
innerIterateElement.addAttribute(new Attribute("conjunction", "and"));
innerIterateElement.addElement(new TextElement(//$NON-NLS-1$
"$oredCriteria[].criteriaWithSingleValue[].condition$ #oredCriteria[].criteriaWithSingleValue[].value#"));
isEqualElement.addElement(innerIterateElement);
//$NON-NLS-1$
innerIterateElement = new XmlElement("iterate");
//$NON-NLS-1$ //$NON-NLS-2$
innerIterateElement.addAttribute(new Attribute("prepend", "and"));
innerIterateElement.addAttribute(new Attribute("property", //$NON-NLS-1$ //$NON-NLS-2$
"oredCriteria[].criteriaWithListValue"));
//$NON-NLS-1$ //$NON-NLS-2$
innerIterateElement.addAttribute(new Attribute("conjunction", "and"));
innerIterateElement.addElement(new TextElement(//$NON-NLS-1$
"$oredCriteria[].criteriaWithListValue[].condition$"));
//$NON-NLS-1$
XmlElement innerInnerIterateElement = new XmlElement("iterate");
innerInnerIterateElement.addAttribute(new //$NON-NLS-1$
Attribute(//$NON-NLS-1$
"property", //$NON-NLS-1$
"oredCriteria[].criteriaWithListValue[].values"));
//$NON-NLS-1$ //$NON-NLS-2$
innerInnerIterateElement.addAttribute(new Attribute("open", "("));
//$NON-NLS-1$ //$NON-NLS-2$
innerInnerIterateElement.addAttribute(new Attribute("close", ")"));
innerInnerIterateElement.addAttribute(//$NON-NLS-1$ //$NON-NLS-2$
new Attribute("conjunction", ","));
innerInnerIterateElement.addElement(new TextElement(//$NON-NLS-1$
"#oredCriteria[].criteriaWithListValue[].values[]#"));
innerIterateElement.addElement(innerInnerIterateElement);
isEqualElement.addElement(innerIterateElement);
//$NON-NLS-1$
innerIterateElement = new XmlElement("iterate");
//$NON-NLS-1$ //$NON-NLS-2$
innerIterateElement.addAttribute(new Attribute("prepend", "and"));
innerIterateElement.addAttribute(new Attribute("property", //$NON-NLS-1$ //$NON-NLS-2$
"oredCriteria[].criteriaWithBetweenValue"));
//$NON-NLS-1$ //$NON-NLS-2$
innerIterateElement.addAttribute(new Attribute("conjunction", "and"));
innerIterateElement.addElement(new TextElement(//$NON-NLS-1$
"$oredCriteria[].criteriaWithBetweenValue[].condition$"));
innerIterateElement.addElement(new TextElement(//$NON-NLS-1$
"#oredCriteria[].criteriaWithBetweenValue[].values[0]# and"));
innerIterateElement.addElement(new TextElement(//$NON-NLS-1$
"#oredCriteria[].criteriaWithBetweenValue[].values[1]#"));
isEqualElement.addElement(innerIterateElement);
// handler
for (IntrospectedColumn introspectedColumn : introspectedTable.getNonBLOBColumns()) {
if (stringHasValue(introspectedColumn.getTypeHandler())) {
// name the property based on the column name, then
// add the type handler to the parameter declaration
StringBuilder sb1 = new StringBuilder();
StringBuilder sb2 = new StringBuilder();
//$NON-NLS-1$
innerIterateElement = new XmlElement("iterate");
innerIterateElement.addAttribute(//$NON-NLS-1$ //$NON-NLS-2$
new Attribute("prepend", "and"));
//$NON-NLS-1$
sb1.append("oredCriteria[].");
sb1.append(introspectedColumn.getJavaProperty());
//$NON-NLS-1$
sb1.append("CriteriaWithSingleValue");
innerIterateElement.addAttribute(new Attribute("property", //$NON-NLS-1$
sb1.toString()));
innerIterateElement.addAttribute(new Attribute("conjunction", //$NON-NLS-1$ //$NON-NLS-2$
"and"));
sb2.append(sb1);
sb1.insert(0, '$');
//$NON-NLS-1$
sb1.append("[].condition$ ");
sb2.insert(0, '#');
//$NON-NLS-1$
sb2.append("[].value,handler=");
sb2.append(introspectedColumn.getTypeHandler());
sb2.append('#');
sb1.append(sb2);
innerIterateElement.addElement(new TextElement(sb1.toString()));
isEqualElement.addElement(innerIterateElement);
sb1.setLength(0);
sb2.setLength(0);
//$NON-NLS-1$
sb1.append("oredCriteria[].");
sb1.append(introspectedColumn.getJavaProperty());
//$NON-NLS-1$
sb1.append("CriteriaWithListValue");
//$NON-NLS-1$
innerIterateElement = new XmlElement("iterate");
innerIterateElement.addAttribute(//$NON-NLS-1$ //$NON-NLS-2$
new Attribute("prepend", "and"));
innerIterateElement.addAttribute(new Attribute("property", //$NON-NLS-1$
sb1.toString()));
innerIterateElement.addAttribute(new Attribute("conjunction", //$NON-NLS-1$ //$NON-NLS-2$
"and"));
sb2.append('$');
sb2.append(sb1);
//$NON-NLS-1$
sb2.append("[].condition$");
innerIterateElement.addElement(new TextElement(sb2.toString()));
sb2.setLength(0);
sb2.append(sb1);
//$NON-NLS-1$
sb2.append("[].values");
//$NON-NLS-1$
innerInnerIterateElement = new XmlElement("iterate");
innerInnerIterateElement.addAttribute(new //$NON-NLS-1$
Attribute(//$NON-NLS-1$
"property", sb2.toString()));
innerInnerIterateElement.addAttribute(//$NON-NLS-1$ //$NON-NLS-2$
new Attribute("open", "("));
innerInnerIterateElement.addAttribute(new Attribute("close", //$NON-NLS-1$ //$NON-NLS-2$
")"));
innerInnerIterateElement.addAttribute(new Attribute("conjunction", //$NON-NLS-1$ //$NON-NLS-2$
","));
sb2.setLength(0);
sb2.append('#');
sb2.append(sb1);
//$NON-NLS-1$
sb2.append("[].values[],handler=");
sb2.append(introspectedColumn.getTypeHandler());
sb2.append('#');
innerInnerIterateElement.addElement(new TextElement(sb2.toString()));
innerIterateElement.addElement(innerInnerIterateElement);
isEqualElement.addElement(innerIterateElement);
sb1.setLength(0);
sb2.setLength(0);
//$NON-NLS-1$
sb1.append("oredCriteria[].");
sb1.append(introspectedColumn.getJavaProperty());
//$NON-NLS-1$
sb1.append("CriteriaWithBetweenValue");
//$NON-NLS-1$
innerIterateElement = new XmlElement("iterate");
innerIterateElement.addAttribute(//$NON-NLS-1$ //$NON-NLS-2$
new Attribute("prepend", "and"));
innerIterateElement.addAttribute(new Attribute("property", //$NON-NLS-1$
sb1.toString()));
innerIterateElement.addAttribute(new Attribute("conjunction", //$NON-NLS-1$ //$NON-NLS-2$
"and"));
sb2.append('$');
sb2.append(sb1);
//$NON-NLS-1$
sb2.append("[].condition$");
innerIterateElement.addElement(new TextElement(sb2.toString()));
sb2.setLength(0);
sb2.append(sb1);
sb1.insert(0, '#');
//$NON-NLS-1$
sb1.append("[].values[0],handler=");
sb1.append(introspectedColumn.getTypeHandler());
//$NON-NLS-1$
sb1.append("# and");
sb2.insert(0, '#');
//$NON-NLS-1$
sb2.append("[].values[1],handler=");
sb2.append(introspectedColumn.getTypeHandler());
sb2.append('#');
innerIterateElement.addElement(new TextElement(sb1.toString()));
innerIterateElement.addElement(new TextElement(sb2.toString()));
isEqualElement.addElement(innerIterateElement);
}
}
//$NON-NLS-1$
isEqualElement.addElement(new TextElement(")"));
if (context.getPlugins().sqlMapExampleWhereClauseElementGenerated(answer, introspectedTable)) {
parentElement.addElement(answer);
}
}
use of org.mybatis.generator.api.dom.xml.XmlElement in project generator by mybatis.
the class SimpleXMLMapperGenerator method getSqlMapElement.
protected XmlElement getSqlMapElement() {
FullyQualifiedTable table = introspectedTable.getFullyQualifiedTable();
//$NON-NLS-1$
progressCallback.startTask(getString("Progress.12", table.toString()));
//$NON-NLS-1$
XmlElement answer = new XmlElement("mapper");
String namespace = introspectedTable.getMyBatis3SqlMapNamespace();
answer.addAttribute(new //$NON-NLS-1$
Attribute(//$NON-NLS-1$
"namespace", namespace));
context.getCommentGenerator().addRootComment(answer);
addResultMapElement(answer);
addDeleteByPrimaryKeyElement(answer);
addInsertElement(answer);
addUpdateByPrimaryKeyElement(answer);
addSelectByPrimaryKeyElement(answer);
addSelectAllElement(answer);
return answer;
}
use of org.mybatis.generator.api.dom.xml.XmlElement in project generator by mybatis.
the class AbstractXmlElementGenerator method getBaseColumnListElement.
protected XmlElement getBaseColumnListElement() {
//$NON-NLS-1$
XmlElement answer = new XmlElement("include");
answer.addAttribute(new //$NON-NLS-1$
Attribute(//$NON-NLS-1$
"refid", introspectedTable.getBaseColumnListId()));
return answer;
}
use of org.mybatis.generator.api.dom.xml.XmlElement in project generator by mybatis.
the class AbstractXmlElementGenerator method getSelectKey.
/**
* This method should return an XmlElement for the select key used to
* automatically generate keys.
*
* @param introspectedColumn
* the column related to the select key statement
* @param generatedKey
* the generated key for the current table
* @return the selectKey element
*/
protected XmlElement getSelectKey(IntrospectedColumn introspectedColumn, GeneratedKey generatedKey) {
String identityColumnType = introspectedColumn.getFullyQualifiedJavaType().getFullyQualifiedName();
//$NON-NLS-1$
XmlElement answer = new XmlElement("selectKey");
//$NON-NLS-1$
answer.addAttribute(new Attribute("resultType", identityColumnType));
answer.addAttribute(new Attribute("keyProperty", //$NON-NLS-1$
introspectedColumn.getJavaProperty()));
answer.addAttribute(new //$NON-NLS-1$
Attribute(//$NON-NLS-1$
"order", generatedKey.getMyBatis3Order()));
answer.addElement(new TextElement(generatedKey.getRuntimeSqlStatement()));
return answer;
}
use of org.mybatis.generator.api.dom.xml.XmlElement in project generator by mybatis.
the class BlobColumnListElementGenerator method addElements.
@Override
public void addElements(XmlElement parentElement) {
//$NON-NLS-1$
XmlElement answer = new XmlElement("sql");
answer.addAttribute(new //$NON-NLS-1$
Attribute(//$NON-NLS-1$
"id", introspectedTable.getBlobColumnListId()));
context.getCommentGenerator().addComment(answer);
StringBuilder sb = new StringBuilder();
Iterator<IntrospectedColumn> iter = introspectedTable.getBLOBColumns().iterator();
while (iter.hasNext()) {
sb.append(MyBatis3FormattingUtilities.getSelectListPhrase(iter.next()));
if (iter.hasNext()) {
//$NON-NLS-1$
sb.append(", ");
}
if (sb.length() > 80) {
answer.addElement(new TextElement(sb.toString()));
sb.setLength(0);
}
}
if (sb.length() > 0) {
answer.addElement(new TextElement(sb.toString()));
}
if (context.getPlugins().sqlMapBlobColumnListElementGenerated(answer, introspectedTable)) {
parentElement.addElement(answer);
}
}
Aggregations