⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 codegenerator.java

📁 人力资源管理信息系统 论文和源代码 人力资源管理系统由人事管理、考勤管理、招聘管理、培训管理、系统管理5部分组成
💻 JAVA
字号:
/* * $Id: CodeGenerator.java,v 1.3 2003/08/23 21:10:27 maxcsaucdk Exp $ */package net.sf.hibernate.tool.hbm2java;import java.io.File;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;import net.sf.hibernate.MappingException;import net.sf.hibernate.util.DTDEntityResolver;import org.apache.commons.collections.MultiHashMap;import org.apache.commons.collections.MultiMap;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.jdom.Document;import org.jdom.Element;import org.jdom.input.SAXBuilder;import org.xml.sax.ErrorHandler;import org.xml.sax.SAXParseException;/** * */public class CodeGenerator {    private static final Log log = LogFactory.getLog(CodeGenerator.class);          public static void main(String[] args) {                    if(args.length==0) {              System.err.println("No arguments provided. Nothing to do. Exit.");              System.exit(-1);                        }        try {            ArrayList mappingFiles = new ArrayList();                SAXBuilder builder = new SAXBuilder();            builder.setEntityResolver( new DTDEntityResolver() );                        builder.setErrorHandler( new ErrorHandler() {    			public void error(SAXParseException error) {    				log.error("Error parsing XML: " + error.getSystemId() + '(' + error.getLineNumber() + ')',error);    			}    			public void fatalError(SAXParseException error) {     				error(error);     			}    			public void warning(SAXParseException error) {    				log.warn("Warning parsing XML: " + error.getSystemId() + '(' + error.getLineNumber() + ')' );    			}            } );                        String outputDir = null;                List generators = new ArrayList();                MultiMap globalMetas = new MultiHashMap();            // parse command line parameters            for (int i = 0; i < args.length; i++) {                if (args[i].startsWith("--")) {                        if ( args[i].startsWith("--config=") ) {                        // parse config xml file                        Document document = builder.build( new File( args[i].substring(9) ) );                        globalMetas = MetaAttributeHelper.loadAndMergeMetaMap(document.getRootElement(), null);                        Iterator generateElements = document.getRootElement().getChildren("generate").iterator();                                                while (generateElements.hasNext()) {                            generators.add( new Generator( (Element) generateElements.next() ) );                        }                    }                    else if ( args[i].startsWith("--output=") ) {                    	outputDir = args[i].substring(9);                    }                    	                }                 else {                    mappingFiles.add( args[i] );                }            }                // if no config xml file, add a default generator            if (generators.size() == 0) {                generators.add( new Generator() );            }    		            HashMap classMappings = new HashMap();            builder.setValidation(true);    		for ( Iterator iter = mappingFiles.iterator(); iter.hasNext(); ) {            	// parse the mapping file				File file = new File( (String) iter.next() );							Document document = builder.build( file);            	            	Element rootElement = document.getRootElement();            	Iterator classElements = rootElement.getChildren("class").iterator();                MultiMap mm = MetaAttributeHelper.loadAndMergeMetaMap(rootElement, globalMetas);                handleClass(classMappings, classElements, mm, false);        	    				classElements = rootElement.getChildren("subclass").iterator();				handleClass(classMappings, classElements, mm, true);								classElements = rootElement.getChildren("joined-subclass").iterator();				handleClass(classMappings, classElements, mm, true);    		}                // generate source files            for ( Iterator iterator = generators.iterator(); iterator.hasNext(); ) {            	Generator g = (Generator) iterator.next();            	g.setBaseDirName(outputDir);                g.generate(classMappings);            }        }         catch (Exception e) {            e.printStackTrace();        }    }	private static void handleClass(HashMap classMappings, Iterator classElements, MultiMap mm, boolean extendz) throws MappingException {		while ( classElements.hasNext() ) {			Element clazz = (Element) classElements.next();			if(!extendz) {		    	ClassMapping cmap = new ClassMapping( clazz, mm);		    	classMappings.put(cmap.getCanonicalName(),cmap);			} else {								String ex = clazz.getAttributeValue("extends");				if(ex==null) {					throw new MappingException("Missing extends attribute on <" + clazz.getName() + " name=" + clazz.getAttributeValue("name") + ">" );				}				ClassMapping superclass = (ClassMapping) classMappings.get(ex);				if(superclass == null) {					throw new MappingException("Cannot extend unmapped class " + ex);									}				ClassMapping subclassMapping = new ClassMapping(superclass.getClassName(), superclass, clazz, mm);				superclass.addSubClass(subclassMapping);			}		}	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -