@ tefigel |-- | Generate different code blocks for findClassProperty methods | according to the REQUEST parameter. |-- interface(REQUEST) for FINDJPROP=~list_contents(JAVA_SEARCH_KEYS) set FINDJPTYPE=~java/property_type(FINDJPROP) set FINDJPID=~java/property_id(FINDJPROP) set UFINDJPID=~java/property_id(FINDJPROP,AbcDef) if REQUEST=dbmanager set FINDER_ITEM=find&UFINDJPID else set FINDER_ITEM=FINDJPID endif case FINDJPTYPE when=String set JAVA_OBJ_COMPARISON=JAVA_OBJ_INSTANCE.get&UFINDJPID().toUpperCase().indexOf(FINDER_ITEM.toUpperCase()) > -1 when=int set JAVA_OBJ_COMPARISON=JAVA_OBJ_INSTANCE.get&UFINDJPID() == FINDJPID endcase case REQUEST when=declare @ text public Collection find&JAVA_CLASS&UFINDJPID(FINDJPTYPE FINDJPID) throws DAOException; @ endtext when=implement @ text public Collection find&JAVA_CLASS&UFINDJPID(FINDJPTYPE FINDJPID) { Collection hits = new ArrayList(); Collection c = JAVA_LIST_INSTANCE.values(); for (Iterator it = c.iterator(); it.hasNext();) { JAVA_CLASS JAVA_OBJ_INSTANCE = (JAVA_CLASS)it.next(); if (JAVA_OBJ_COMPARISON) { hits.add(JAVA_OBJ_INSTANCE); } } return hits; } @ endtext when=dbmanager @ text public Collection find&JAVA_CLASS&UFINDJPID(FINDJPTYPE FINDER_ITEM) throws DAOException { Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; error = null; Collection c = new ArrayList(); try { conn = dataSource.getConnection(); logger.info("Database&JAVA_CLASS&Manager.find&JAVA_CLASS&UFINDJPID, FINDJPID=" + FINDER_ITEM); // Prepare a statement to delete a record String sql = "SELECT * FROM JAVA_OBJ_INSTANCE"; pstmt = conn.prepareStatement(sql); rs = pstmt.executeQuery(sql); while (rs.next()) { @ java/copy_properties JAVA_CLASS JAVA_OBJ_INSTANCE = new JAVA_CLASS(JAVA_PROP_ID_LIST); if (JAVA_OBJ_COMPARISON) { c.add(JAVA_OBJ_INSTANCE); } } } catch (SQLException e) { error = e; message = "Find failed"; } closeResult(rs); closePrep(pstmt); closeConnection(conn); checkOK(); return c; } @ endtext when=unittest @ text public void testfind&FINDJPID() throws DAOException { @ unit_test/mk_test_code(declare_key) JAVA_CLASS JAVA_OBJ_INSTANCE; Collection c; @ unit_test/mk_test_code(finder) } @ endtext endcase endfor