Take a look at the source for SqlMapConfigPlugin - it does something very similar to what you are trying to accomplish.
Jeff Butler On Mon, May 17, 2010 at 4:08 AM, Amar X Hussain <amar.huss...@jpmorgan.com> wrote: > Hi guys, > > > > I have an Ibator plugin that creates a spring config file per table, it > works fine but I wanted to know if there was a way a could modify it to > create a single file for all tables instead. > > > > Thanks, > > Amar! > > > > import java.util.ArrayList; > > import java.util.List; > > > > import org.apache.ibatis.ibator.api.GeneratedXmlFile; > > import org.apache.ibatis.ibator.api.IbatorPluginAdapter; > > import org.apache.ibatis.ibator.api.IntrospectedTable; > > import org.apache.ibatis.ibator.api.dom.java.TopLevelClass; > > import org.apache.ibatis.ibator.api.dom.xml.Attribute; > > import org.apache.ibatis.ibator.api.dom.xml.Document; > > import org.apache.ibatis.ibator.api.dom.xml.XmlElement; > > > > public class SpringTableConfigPlugin extends IbatorPluginAdapter { > > > > TopLevelClass topLevelClass; > > String fileName; > > String targetPackage = "config.spring"; > > String targetProject = "C:/workspace/ibatisproj"; > > boolean isMergeable = false; > > > > public boolean validate(List<String> arg0) { > > return true; > > } > > > > public List<GeneratedXmlFile> > contextGenerateAdditionalXmlFiles(IntrospectedTable introspectedTable) { > > > > String domainObjectName = > introspectedTable.getFullyQualifiedTable().getDomainObjectName(); > > > > fileName = > "Spring"+domainObjectName+"Config.xml"; > > > > Document document = new Document(); > > > > XmlElement rootElement = new > XmlElement("beans"); > > > > rootElement.addAttribute(new > Attribute("xmlns", "http://www.springframework.org/schema/beans")); > > rootElement.addAttribute(new > Attribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance")); > > rootElement.addAttribute(new > Attribute("xmlns:aop", "http://www.springframework.org/schema/aop")); > > rootElement.addAttribute(new > Attribute("xmlns:tx", "http://www.springframework.org/schema/tx")); > > rootElement.addAttribute(new > Attribute("xmlns:context", > "http://www.springframework.org/schema/context")); > > rootElement.addAttribute(new > Attribute("xsi:schemaLocation", "http://www.springframework.org/schema/beans > http://www.springframework.org/schema/beans/spring-beans-2.0.xsd\nhttp://www.springframework.org/schema/tx > http://www.springframework.org/schema/tx/spring-tx-2.0.xsd\nhttp://www.springframework.org/schema/aop > http://www.springframework.org/schema/aop/spring-aop-2.0.xsd\nhttp://www.springframework.org/schema/context > http://www.springframework.org/schema/context/spring-context-2.5.xsd")); > > > > document.setRootElement(rootElement); > > > > XmlElement beanElement = new > XmlElement("bean"); > > beanElement.addAttribute(new Attribute("id", > domainObjectName)); > > beanElement.addAttribute(new > Attribute("class", > "com.test.ibatisproj.daoImpl."+domainObjectName+"DAOImpl")); > > > > XmlElement propertyElement = new > XmlElement("property"); > > propertyElement.addAttribute(new > Attribute("name", "sqlMapClient")); > > propertyElement.addAttribute(new > Attribute("ref", "sqlMapClient")); > > > > beanElement.addElement(propertyElement); > > > > rootElement.addElement(beanElement); > > > > List<GeneratedXmlFile> generatedXmlFileList > = new ArrayList<GeneratedXmlFile>(); > > > > GeneratedXmlFile springTableConfigXml = new > GeneratedXmlFile(document, fileName, targetPackage, targetProject, > isMergeable ); > > > > > generatedXmlFileList.add(springTableConfigXml); > > > > return generatedXmlFileList; > > > > } > > > > } > > This email is confidential and subject to important disclaimers and > conditions including on offers for the purchase or sale of securities, > accuracy and completeness of information, viruses, confidentiality, legal > privilege, and legal entity disclaimers, available at > http://www.jpmorgan.com/pages/disclosures/email. --------------------------------------------------------------------- To unsubscribe, e-mail: user-java-unsubscr...@ibatis.apache.org For additional commands, e-mail: user-java-h...@ibatis.apache.org