daodefinition.java

来自「Java Pattern Oriented Framework (Jt) 是为了」· Java 代码 · 共 1,619 行 · 第 1/4 页

JAVA
1,619
字号
            list.add (attrMapping);
            

        }    
        
        while (list.size() < DAODefinition.MAX_ENTRIES) {
            attrMapping = new DAOMapping ();
            list.add(attrMapping);
        }
        
        daoDefinitionForm.setDbmappings((DAOMapping[]) list.toArray(new DAOMapping[0]));
        
        initializeForm (daoDefinitionForm);
        return (daoDefinitionForm);
    }

    private String generateDescriptor (DAODefinitionForm form) {
 
        //List list;
        if (form == null) {
            return (null);            
        }

        className = (String) form.getName();
        table = (String) form.getTable();


        if (className == null || className.equals ("")) {
            handleUIError ("Please enter a class name.");
            //return (null);
        }    

/*
        if (table == null || table.equals("")) {
            handleUIError ("Please enter a table name");
            return (null);
        } 
*/
        
        daoForm = form;
        
        keys = retrieveKeys (form);
        
        if (keys == null || keys.isEmpty()) {
            handleUIError ("Please select the key attributes (at least one).");     
        }
        
        if (this.getObjErrors() != null)
          return (null);
        
        
        return (generateXMLDescriptor ()); 
        
    }
 
    private String generateXMLDescriptor () {
        //JtFactory factory = new JtFactory ();
        Element element;
        JtMessage msg = new JtMessage (JDOMAdapter.ADD_ELEMENT);
        DocType docType;
        
        if (className == null) {
            handleError ("The className attribute needs to be set.");
            return null;
        }

        /*
        if (table == null) {
            handleError ("The table attribute needs to be set.");
            return null;
        }
        */
        
        
        element = new Element ("hibernate-mapping");
        msg.setMsgContent (element);
        
        factory.sendMessage(adapter, msg);
        
        element = new Element ("class");
        element.setAttribute("name", className);
        
        if (table != null && !table.equals(""))
            element.setAttribute("table", table);       
        
        msg.setMsgContent (element);
        msg.setMsgData ("hibernate-mapping");
        
        factory.sendMessage(adapter, msg);  
        
       
        docType = new DocType ("hibernate-mapping", 
                "-//Hibernate/Hibernate Mapping DTD 3.0//EN",
                "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd");
        
        adapter.setDocType(docType);
        
        if (!ngenerateIds ())
            return null;
        
        if (!ngenerateProperties ())
            return null;
        return (adapter.getContent());
        
    }
    
    
    private  void updateDAODefinition (DAODefinitionForm form) {
        String xmlString;
        JtMessage msg = new JtMessage (JtFile.JtSAVE_STRING);
        JtFile file = new JtFile ();
        
        if (form == null)
            return;
 
        daoForm = form; 
        table = form.getTable();

        
        if (table == null || table.equals ("")) {
            handleUIError ("Please enter a table name.");
        }  
        
       
        className = form.getName();
        
        if (className == null || className.equals ("")) {
            handleUIError ("Please enter a class name.");
        }  
        
        
        if (getObjErrors() != null) {
            return;
        }
       
        fileName = form.getFileName();
        
        if (fileName == null || className.equals("")) {
            handleError ("Invalid filename");
            return;
        }
        
        xmlString = generateXMLDescriptor ();
        
        if (xmlString == null)
            return;
        
        file.setName(fileName);
        msg.setMsgContent (xmlString);
        factory.sendMessage (file, msg);
        
        if (file.getObjException() != null)
            propagateException (file);
        
        
    }
    
/*    
    private DAODefinitionForm generateForm (DynaActionForm dform) {
        DAODefinitionForm form = new DAODefinitionForm ();
        
        if (dform == null) {
            return (null);            
        }
        className = (String) dform.get ("className");

        if (className == null || className.equals ("")) {
            handleUIError ("Please enter a class name");
            return (null);
        }  
    
        form.setName(className);
        initializeForm (form);
        initializeFormMapping (form);
        
        return (form);
        
    }
*/
    
    private boolean checkExtension (String name) 
    {
        if (name == null)
            return false;
        
        return (name.endsWith(".java"));
       
    }
    
    
    private DAODefinitionForm parseJavaFile (FileForm dform) {
        DAODefinitionForm form = new DAODefinitionForm ();
        FormFile theFile;
        InputStream inputStream = null;
        //JtInputStream iStream = new JtInputStream ();
        
        
        if (dform == null) {
            return (null);            
        }
     
        theFile = dform.getTheFile();
        
        handleTrace ("parseJavaFile:" + theFile.getFileName());
        
        if (theFile == null || !checkExtension (theFile.getFileName())) {
            handleUIError ("File must be a java class file (.java)");
            return null;
        }
        
        try {
            inputStream = theFile.getInputStream();
        } catch (Exception e) {
            handleException (e);
        }
        
        if (inputStream == null) {
            return null;
        }    
 
/*        
        iStream.setInputStream(inputStream);
        
        factory.sendMessage (iStream, new JtMessage (JtInputStream.JtREAD_STREAM));
        
*/        
 /*       
        className = (String) dform.get ("className");

        if (className == null || className.equals ("")) {
            handleUIError ("Please enter a class name");
            return (null);
        }  
*/    
        //form.setName(className);
        initializeFormFromFile (form, inputStream);
        initializeFormMapping (form);
        
        return (form);
        
    }
    
 /*   
    private void updateSessionForm (HttpServletRequest request, ActionForm form) {
        HttpSession session;
        
        if (request == null || form == null)
            return;
        
        session = request.getSession();
        
        if (session != null) {
            session.setAttribute ("daoForm", form);
        }
        
    }
*/
    
    // Process object messages

    public Object processMessage (Object message) {

        String msgid = null;
        JtMessage msg = (JtMessage) message;
        Object data;
        HttpServletRequest request;
        String xmlString;
        JtContext context;
        ActionForm form = null;
        


        if (msg == null)
            return null;

        msgid = (String) msg.getMsgId ();

        if (msgid == null)
            return null;


        factory.setStopClass(JtObject.class);
        
        context = (JtContext) msg.getMsgContext();
        if (context != null)
            form = (ActionForm) context.getActionForm();  
        
        // Generate descriptor

        if (msgid.equals(DAODefinition.GENERATE_DESCRIPTOR)) {

            // pass the form information   
            //data = msg.getMsgData ();           
                        
            xmlString = generateDescriptor ((DAODefinitionForm) form);

            return (xmlString);
        }
        

        if (msgid.equals(DAODefinition.READ)) {
            //data = msg.getMsgData ();           
            return ( readDAODefinition ((FileForm) form));
        }
        
        if (msgid.equals(DAODefinition.READ_STREAM)) {
            data = msg.getMsgData ();           
            return ( readDAODefinitionStream ((InputStream) data));
        }
        
        if (msgid.equals(DAODefinition.READ_MAPPING_STREAM)) {
            data = msg.getMsgData ();           
            return ( readDAOMappingStream ((InputStream) data));
        }
        
        if (msgid.equals(DAODefinition.UPDATE)) {
            
            //content = (String) e.getMsgContent ();
            //data = msg.getMsgData ();
            updateDAODefinition ((DAODefinitionForm) form);
            return (null);
        }
 
        /*
        if (msgid.equals (DAODefinition.GENERATE_FORM)) {
            data = msg.getMsgData ();
            return ( generateForm ((DynaActionForm) data));
        }
        */
        
        if (msgid.equals (DAODefinition.PARSE_FILE)) {
            //data = msg.getMsgData ();
            return ( parseJavaFile ((FileForm) form));
        }

        // Let the superclass handle all other messages
        return (super.processMessage (message));

        
    }


    /**
     * Demonstrates the messages processed by this class.
     */

    public static void main(String[] args) {

        JtFactory factory = new JtFactory ();  // Jt Factory
        String reply;
        DAODefinition daoDef;
        DAODefinitionForm daoForm = new DAODefinitionForm ();
        JtMessage msg = new JtMessage (DAODefinition.READ_STREAM);
        InputStream istream = null;
        
        
        try {
            istream = 
                new FileInputStream ("/home/projects/Jt1/src/java/Jt/examples/hibernate/History.hbm.xml");
        } catch (Exception e) {
            e.printStackTrace ();
            System.exit (1);
        }
        
        msg.setMsgData(istream);
        
        daoDef = (DAODefinition) factory.createObject (DAODefinition.JtCLASS_NAME);
        factory.sendMessage (daoDef, msg);
             
        //factory.setLogging(true);
        
        /*

        
        daoDef.processMessage(new JtMessage (DAODefinition.READ));
        
        if (args.length < 1) {
            System.err.println ("Usage: java Jt.DAO.DAODefinition classname");
            return;
        }

        daoForm.setName(args[0]);
        daoForm.setTable("TOBJECT");
        
             
        msg = new JtMessage (DAODefinition.GENERATE_DESCRIPTOR);
        msg.setMsgData(daoForm);
        

        reply = (String) factory.sendMessage (daoDef, msg);       
        
        System.out.println (reply);    
                
        factory.removeObject (daoDef);
        */
        
        
    }

}



⌨️ 快捷键说明

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