public class IgnoreFieldPlug extends PluginAdapter {
@Override
public boolean sqlMapUpdateByExampleSelectiveElementGenerated(XmlElement element, IntrospectedTable introspectedTable) {
removeTimeAttribute(element);
return super.sqlMapUpdateByExampleSelectiveElementGenerated(element, introspectedTable);
}
@Override
public boolean sqlMapUpdateByPrimaryKeySelectiveElementGenerated(XmlElement element, IntrospectedTable introspectedTable) {
removeTimeAttribute(element);
return super.sqlMapUpdateByPrimaryKeySelectiveElementGenerated(element, introspectedTable);
}
@Override
public boolean sqlMapUpdateByExampleWithoutBLOBsElementGenerated(XmlElement element, IntrospectedTable introspectedTable) {
// removeTimeTextAttribute(element);
removeTimeTextAttribute(element);
return super.sqlMapUpdateByExampleWithoutBLOBsElementGenerated(element, introspectedTable);
}
@Override
public boolean sqlMapUpdateByPrimaryKeyWithoutBLOBsElementGenerated(XmlElement element, IntrospectedTable introspectedTable) {
removeTimeTextAttribute(element);
return super.sqlMapUpdateByPrimaryKeyWithoutBLOBsElementGenerated(element, introspectedTable);
}
private void removeTimeTextAttribute(XmlElement element) {
List<Element> elements = element.getElements();
int removeCommaIndex=0;
TextElement replaceElement=null;
Iterator<Element> iterator = elements.iterator();
while (iterator.hasNext()){
Element baseElements=elements.get(i);
if (baseElements instanceof TextElement){
TextElement targetElment=(TextElement)baseElements;
if(targetElment.getContent().contains("update_time")||targetElment.getContent().contains("create_time")){
iterator.remove();
}
}
if (baseElements instanceof TextElement){
TextElement targetElment=(TextElement)baseElements;
if(targetElment.getContent().contains("where")){
removeCommaIndex=i-1;
replaceElement=(TextElement)(elements.get(removeCommaIndex));
String content = replaceElement.getContent().trim();
replaceElement=new TextElement(content.substring(0,content.length()-1));
}
}
iterator.next();
}
}
public boolean validate(List<String> warnings)
{
return true;
}
private void removeTimeAttribute(XmlElement element) {
List<Element> elements = element.getElements();
Iterator<Element> iterator = elements.iterator();
while (iterator.hasNext()){
Element baseElements=elements.get(i);
if (!(baseElements instanceof XmlElement)){
continue;
}
XmlElement targetElment=(XmlElement)baseElements;
if(targetElment.getName().contains("set")){
List<Element> innerElements = targetElment.getElements();
for (int i1 = 0; i1 < innerElements.size(); i1++) {
Element baseInnerElements=elements.get(i);
if (!(baseInnerElements instanceof XmlElement)){
continue;
}
targetElment=(XmlElement)innerElements.get(i1);
Iterator<Attribute> attributeIterator = targetElment.getAttributes().iterator();
while (attributeIterator.hasNext()){
attributeIterator.remove();
}
}
}
}
}
}