daodefinition.java

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

JAVA
1,619
字号
    
    
    private JtIterator ngetAttributes () {
        JtMessage msg = new JtMessage (JDOMAdapter.GET_CHILDREN);
        Element elem;
        List children;
        Iterator iterator;
        JtHashTable table = new JtHashTable ();
        JtMessage msg1 = new JtMessage (JtHashTable.JtPUT);
        String name;
        JtIterator jiterator;
        
        if (adapter == null)
            return null;
        
        msg = new JtMessage (JDOMAdapter.GET_CHILDREN);
        msg.setMsgContent("hibernate-mapping/class/composite-id");
        children = (List) factory.sendMessage (adapter, msg);      
        
        if (children != null) {
            iterator = children.iterator();

            while (iterator.hasNext()) {
                elem = (Element) iterator.next();


                if ("key-property".equals(elem.getName())) {
                    name = elem.getAttributeValue("name");

                    if (name == null || name.equals(""))
                        continue;
                    msg1.setMsgData(name);
                    msg1.setMsgContent(name);
                    factory.sendMessage(table, msg1);
                }

            }       
        }
        
        
        msg.setMsgContent("hibernate-mapping/class");
        
        children = (List) factory.sendMessage (adapter, msg);
        
        if (children == null) {
            jiterator = (JtIterator) table.processMessage(new JtMessage (JtHashTable.JtGET_KEYS));
            return jiterator;
        }    
        
        iterator = children.iterator();
        
        while (iterator.hasNext()) {
            elem = (Element) iterator.next();
            
            
            if ("property".equals(elem.getName()) || "id".equals(elem.getName())) {
                name = elem.getAttributeValue("name");
                
                if (name == null || name.equals(""))
                    continue;
                msg1.setMsgData(name);
                msg1.setMsgContent(name);
                factory.sendMessage(table, msg1);
            }
            
        }
        jiterator = (JtIterator) table.processMessage(new JtMessage (JtHashTable.JtGET_KEYS));
        return (jiterator);
    }

    private Object readDAODefinition (FileForm dform) {

        //JtMessage msg = new JtMessage (JDOMAdapter.GET_CHILDREN);

        //JtMessage msg2 = new JtMessage (JDOMAdapter.FIND_ELEMENT);

        //Element elem, elem1;
        //DAODefinitionForm daoDefinitionForm = new DAODefinitionForm ();

        InputStream inputStream = null;
        FormFile theFile;
               

        if (dform == null)
            return null;
        
        
        //if (inputStream == null) {
        //    return (null);            
        //}
     
        theFile = dform.getTheFile();
        
        if (theFile == null || !checkXMLExtension (theFile.getFileName())) {
            handleUIError ("File must be an XML file (.xml)");
            return null;
        }
        

        
        //handleTrace ("readDAODefinition:" + theFile.getFileName());
        
        try {
            inputStream = theFile.getInputStream();
        } catch (Exception e) {
            handleException (e);
        }
        
        if (inputStream == null) {
            return null;
        }   

        return (readDAODefinitionStream (inputStream));
        
        /*
        if (form.getFileName() == null) {
            handleUIError ("Please enter a file name.");
            return null; 
        }    
        */
    }
    
    private boolean checkXMLExtension (String name) 
    {
        if (name == null)
            return false;
        
        return (name.endsWith(".xml"));
       
    }
    
    
    private void handleColumnSubElement (Element element, DAOMapping mapping) {
        List list;
        Iterator iterator;
        Element elem;
        String notNull;
        String sqlType;
        String str;
        
        if (element == null || mapping == null)
            return;
        
        list = element.getChildren();
        
        if (list == null || list.isEmpty())
            return;
        
        iterator = list.iterator();
        
        while (iterator.hasNext()) {
            elem = (Element) iterator.next();
            
            if (!"column".equals(elem.getName())) {
                continue;
            }
            
            notNull = elem.getAttributeValue("not-null");
            
            if (notNull != null && notNull.equals("true")) {
                mapping.setNotNull(true);
            }
            
            if (notNull != null && notNull.equals("false")) {
                mapping.setNotNull(false);
            }          
            
            sqlType = elem.getAttributeValue("sql-type");
            
            if (sqlType != null && !sqlType.equals("")) {
                mapping.setSql_type(sqlType);
            }
            
            str = elem.getAttributeValue("unique");
            
            if (str != null && str.equals("true")) {
                mapping.setUnique(true);
            }
            
            if (str != null && str.equals("false")) {
                mapping.setUnique(false);
            }
                    
            
        }
    }
    private Object readDAOMappingStream (InputStream inputStream) {

        JtMessage msg = new JtMessage (JDOMAdapter.GET_CHILDREN);

        JtMessage msg2 = new JtMessage (JDOMAdapter.FIND_ELEMENT);
        //JtFactory factory = new JtFactory ();
        Element elem, elem1;
        //DAODefinitionForm daoDefinitionForm = new DAODefinitionForm ();
        List children;
        String tmp, column;
        DAOMapping attrMapping;
        LinkedList list = new LinkedList ();
        JtIterator iterator;
        
        
        if (inputStream == null) {
            return (null);            
        }
        
        msg2.setMsgContent("hibernate-mapping/class");
        
        adapter.setInputStream(inputStream);        
               
        //factory.sendMessage (adapter, new JtMessage (JDOMAdapter.READ_FILE));
        factory.sendMessage (adapter, new JtMessage (JDOMAdapter.READ_STREAM));
        
        if (adapter.getObjException() != null) {
            propagateException (adapter);
            return (null);
        }    
        
        elem = (Element) factory.sendMessage (adapter, msg2);
        
        
        if (elem == null) {
            handleError ("Invalid XML format.");
            return (null);
        }    
        
        this.setClassName((elem.getAttributeValue("name")));
        this.setTable(elem.getAttributeValue("table"));
        
        
        iterator = ngetAttributes ();
        
        if (iterator == null) {
            
            return (null);// check
        }    
        
        
        msg.setMsgContent("hibernate-mapping/class");
        children = (List) factory.sendMessage (adapter, msg);

        // Add the IDs to the list
        
        addIds (list);
        keys = list;
              
        for (;;) {
            tmp = (String) iterator.processMessage(new JtMessage (JtIterator.JtNEXT));
            if (tmp == null) 
                break;
            
            elem1 = findChild (children, tmp);
            
            //if (isID (list, tmp)) 
            //    continue;
                            
            attrMapping = new DAOMapping ();
            attrMapping.setAttribute(tmp);
                       
            handleColumnSubElement (elem1, attrMapping);
            
            column = null;
            if (elem1 != null) {
                column = elem1.getAttributeValue("column");
                attrMapping.setEnabled(true);
            }    
            
            if (column == null || column.equals(""))
                attrMapping.setColumn(tmp); //check
            else
                attrMapping.setColumn(column);
            
            mappingTable.put(tmp, attrMapping);
            //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 (null);
    }   
    private Object readDAODefinitionStream (InputStream inputStream) {

        JtMessage msg = new JtMessage (JDOMAdapter.GET_CHILDREN);

        JtMessage msg2 = new JtMessage (JDOMAdapter.FIND_ELEMENT);
        //JtFactory factory = new JtFactory ();
        Element elem, elem1;
        DAODefinitionForm daoDefinitionForm = new DAODefinitionForm ();
        List children;
        String tmp, column;
        DAOMapping attrMapping;
        LinkedList list = new LinkedList ();
        JtIterator iterator;
        //InputStream inputStream = null;
        //FormFile theFile;
               

        //if (form == null)
        //    return null;
        
        
        if (inputStream == null) {
            return (null);            
        }
/*     
        theFile = dform.getTheFile();
        
        handleTrace ("readDAODefinition:" + theFile.getFileName());
        
        try {
            inputStream = theFile.getInputStream();
        } catch (Exception e) {
            handleException (e);
        }
        
        if (inputStream == null) {
            return null;
        }   
*/
        
        /*
        if (form.getFileName() == null) {
            handleUIError ("Please enter a file name.");
            return null; 
        }    
        */
        
        msg2.setMsgContent("hibernate-mapping/class");
        
        //adapter.setPath(form.getFileName());
        adapter.setInputStream(inputStream);
        
        //daoDefinitionForm.setFileName(form.getFileName());
               
        //factory.sendMessage (adapter, new JtMessage (JDOMAdapter.READ_FILE));
        factory.sendMessage (adapter, new JtMessage (JDOMAdapter.READ_STREAM));
        
        if (adapter.getObjException() != null) {
            propagateException (adapter);
            return (null);
        }    
        
        elem = (Element) factory.sendMessage (adapter, msg2);
        
        
        if (elem == null) {
            handleError ("Invalid XML format.");
            return (null);
        }    
        
        daoDefinitionForm.setName(elem.getAttributeValue("name"));
        daoDefinitionForm.setTable(elem.getAttributeValue("table"));
        
        
        this.setClassName(elem.getAttributeValue("name"));
        
        iterator = ngetAttributes ();
        
        if (iterator == null) {
            
            return (daoDefinitionForm);// check
        }    
        
        
        msg.setMsgContent("hibernate-mapping/class");
        children = (List) factory.sendMessage (adapter, msg);

        // Add the IDs to the list
        
        addIds (list);
              
        for (;;) {
            tmp = (String) iterator.processMessage(new JtMessage (JtIterator.JtNEXT));
            if (tmp == null) 
                break;
            
            elem1 = findChild (children, tmp);
            
            if (isID (list, tmp)) 
                continue;
                            
            attrMapping = new DAOMapping ();
            attrMapping.setAttribute(tmp);
                       
            handleColumnSubElement (elem1, attrMapping);
            
            column = null;
            if (elem1 != null) {
                column = elem1.getAttributeValue("column");
                attrMapping.setEnabled(true);
            }    
            
            if (column == null || column.equals(""))
                attrMapping.setColumn(tmp); //check
            else
                attrMapping.setColumn(column);
            

⌨️ 快捷键说明

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