# HG changeset patch # User František Kučera # Date 1234387402 -3600 # Node ID 3df37f25b2862e2db88f9dca8f93e2c1327d12a6 # Parent d32edd5bcb8af71df7c458c41f863953c9596633 Opravena chyba související s protected metodami: pokud jsme dříve měli protected metodu, ve které jsme používali getSQL nebo getVlastnost a tuto metodu jsme volali z potomka, hledaly se SQL a Vlastnosti v XML souboru patřícímu potomkovi. Proto je v protected metodách potřeba zadávat kromě názvu požadované hodnoty i třídu, aby bylo jasné, že se mají hodnoty bráz z jejího XML souboru a ne ze souboru potomka. diff -r d32edd5bcb8a -r 3df37f25b286 java/SuperDAO/nbproject/build-impl.xml --- a/java/SuperDAO/nbproject/build-impl.xml Sun Nov 23 23:10:04 2008 +0100 +++ b/java/SuperDAO/nbproject/build-impl.xml Wed Feb 11 22:23:22 2009 +0100 @@ -152,7 +152,7 @@ - + diff -r d32edd5bcb8a -r 3df37f25b286 java/SuperDAO/nbproject/genfiles.properties --- a/java/SuperDAO/nbproject/genfiles.properties Sun Nov 23 23:10:04 2008 +0100 +++ b/java/SuperDAO/nbproject/genfiles.properties Wed Feb 11 22:23:22 2009 +0100 @@ -4,5 +4,5 @@ # This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. # Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. nbproject/build-impl.xml.data.CRC32=958f21fd -nbproject/build-impl.xml.script.CRC32=d53793de -nbproject/build-impl.xml.stylesheet.CRC32=e55b27f5 +nbproject/build-impl.xml.script.CRC32=e6e803c1 +nbproject/build-impl.xml.stylesheet.CRC32=65b8de21 diff -r d32edd5bcb8a -r 3df37f25b286 java/SuperDAO/nbproject/private/private.properties --- a/java/SuperDAO/nbproject/private/private.properties Sun Nov 23 23:10:04 2008 +0100 +++ b/java/SuperDAO/nbproject/private/private.properties Wed Feb 11 22:23:22 2009 +0100 @@ -4,4 +4,4 @@ javac.debug=true javadoc.preview=true jaxws.endorsed.dir=/usr/local/netbeans-6.5/java2/modules/ext/jaxws21/api:/usr/local/netbeans-6.5/ide10/modules/ext/jaxb/api -user.properties.file=/home/fiki/src/p\u00edskovi\u0161t\u011b/Graf1/build/testuserdir/build.properties +user.properties.file=/home/fiki/.netbeans/6.5/build.properties diff -r d32edd5bcb8a -r 3df37f25b286 java/SuperDAO/src/cz/frantovo/superDAO/SuperDAO.java --- a/java/SuperDAO/src/cz/frantovo/superDAO/SuperDAO.java Sun Nov 23 23:10:04 2008 +0100 +++ b/java/SuperDAO/src/cz/frantovo/superDAO/SuperDAO.java Wed Feb 11 22:23:22 2009 +0100 @@ -21,7 +21,7 @@ private static Map sql = Collections.synchronizedMap(new HashMap()); private static Map vlastnosti = Collections.synchronizedMap(new HashMap()); - private enum SQL { + private enum VLASTNOSTI { AHOJ } @@ -29,24 +29,43 @@ /** * Načítá SQL dotazy ze souboru, který se jmenuje stejně jako třída a má příponu sql.xml * Do těchto souborů patří pouze SQL dotazy - všechny ostatní parametry dáme do .xml souboru. + *

Pozor na použití v protected metodách, které mohou být volány z potomků – + * pak se použije XML soubor daného potomka a ne XML soubor třídy, ve které se protected metoda nachází. + * V takovém případě je potřeba použít parametr trida

* @param klic Enum konstnanta z dané třídy + * @param trida třída, jejíž XML soubor budeme hledat. * @return SQL dotaz nebo null v případě chyby */ + protected String getSQL(Enum klic, Class trida) { + return getHodnota(sql, "sql.xml", klic, trida); + } + + /** + * @see getSQL(Enum klic, Class trida) + */ protected String getSQL(Enum klic) { - - - - return getHodnota(sql, "sql.xml", klic); + return getSQL(klic, null); } /** * Načítá textové hodnoty (vlastnosti) ze souboru, který se jmenuje stejně jako třída a má příponu xml * Sem patří všechny parametry tříd kromě SQL dotazů. + *

Pozor na použití v protected metodách, které mohou být volány z potomků – + * pak se použije XML soubor daného potomka a ne XML soubor třídy, ve které se protected metoda nachází. + * V takovém případě je potřeba použít parametr trida

* @param klic Enum konstnanta z dané třídy + * @param trida třída, jejíž XML soubor budeme hledat. * @return textová hodnota nebo null v případě chyby */ + protected String getVlastnost(Enum klic, Class trida) { + return getHodnota(vlastnosti, "xml", klic, trida); + } + + /** + * @see getVlastnost(Enum klic, Class trida) + */ protected String getVlastnost(Enum klic) { - return getHodnota(vlastnosti, "xml", klic); + return getVlastnost(klic, null); } /** @@ -54,23 +73,27 @@ * @param klic Enum konstnanta z dané třídy * @return textová hodnota nebo null v případě chyby */ - private String getHodnota(Map mezipamet, String pripona, Enum klic) { + private String getHodnota(Map mezipamet, String pripona, Enum klic, Class trida) { - if (mezipamet.get(getClass()) == null) { + if (trida == null) { + trida = getClass(); + } + + if (mezipamet.get(trida) == null) { /** Ještě nemáme načteno ze souboru */ - mezipamet.put(getClass(), getHodnoty(pripona)); + mezipamet.put(trida, getHodnoty(pripona, trida)); - if (mezipamet.get(getClass()) == null) { + if (mezipamet.get(trida) == null) { /** Došlo k chybě --> už to příště nebudeme zkoušet načítat */ - mezipamet.put(getClass(), new Properties()); + mezipamet.put(trida, new Properties()); } } - return mezipamet.get(getClass()).getProperty(klic.toString()); + return mezipamet.get(trida).getProperty(klic.toString()); } public static void main(String[] args) { - System.out.println(new SuperDAO().getSQL(SQL.AHOJ)); + System.out.println(new SuperDAO().getSQL(VLASTNOSTI.AHOJ)); } @@ -80,20 +103,18 @@ * @param pripona přípona souboru - obvykle "sql.xml" nebo "xml" (bez tečky) * @return načtené vlastnosti nebo null v případě chyby */ - private Properties getHodnoty(String pripona) { - Class trida = getClass(); + private Properties getHodnoty(String pripona, Class trida) { String soubor = trida.getSimpleName() + "." + pripona; - Properties hodnoty = null; try { + Properties hodnoty = new Properties(); InputStream fis = trida.getResourceAsStream(soubor); - hodnoty = new Properties(); hodnoty.loadFromXML(fis); + return hodnoty; } catch (Exception e) { log.log(Level.SEVERE, "Chyba při načítání vlastností: " + soubor, e); + return null; } - - return hodnoty; } /** @@ -102,7 +123,7 @@ * @param prikaz DB dotaz * @param vysledek DB výsledek */ - protected void zavri(Connection spojeni, Statement prikaz, ResultSet vysledek) { + protected static void zavri(Connection spojeni, Statement prikaz, ResultSet vysledek) { if (vysledek != null) { try { vysledek.close(); @@ -122,4 +143,16 @@ } } } + + /** + * @param jndi původní řetězec + * @return U JNDI jmen nemá smysl, aby měli na začátku nebo na konci bílé znaky (mezery…) + */ + public static String orizniJNDI(String jndi) { + if (jndi == null) { + return null; + } else { + return jndi.trim(); + } + } } \ No newline at end of file diff -r d32edd5bcb8a -r 3df37f25b286 java/SuperDAOplugin/nbproject/build-impl.xml --- a/java/SuperDAOplugin/nbproject/build-impl.xml Sun Nov 23 23:10:04 2008 +0100 +++ b/java/SuperDAOplugin/nbproject/build-impl.xml Wed Feb 11 22:23:22 2009 +0100 @@ -4,8 +4,11 @@ *** EDIT ../build.xml INSTEAD *** --> - - + + + You must set 'suite.dir' to point to your containing module suite + + diff -r d32edd5bcb8a -r 3df37f25b286 java/SuperDAOplugin/nbproject/genfiles.properties --- a/java/SuperDAOplugin/nbproject/genfiles.properties Sun Nov 23 23:10:04 2008 +0100 +++ b/java/SuperDAOplugin/nbproject/genfiles.properties Wed Feb 11 22:23:22 2009 +0100 @@ -1,8 +1,8 @@ -build.xml.data.CRC32=2d88a397 +build.xml.data.CRC32=60287c28 build.xml.script.CRC32=ca10ceb8 build.xml.stylesheet.CRC32=79c3b980 # This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. # Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. -nbproject/build-impl.xml.data.CRC32=2d88a397 -nbproject/build-impl.xml.script.CRC32=e97ccad3 +nbproject/build-impl.xml.data.CRC32=60287c28 +nbproject/build-impl.xml.script.CRC32=8c7cd5f9 nbproject/build-impl.xml.stylesheet.CRC32=deb65f65 diff -r d32edd5bcb8a -r 3df37f25b286 java/SuperDAOplugin/nbproject/project.xml --- a/java/SuperDAOplugin/nbproject/project.xml Sun Nov 23 23:10:04 2008 +0100 +++ b/java/SuperDAOplugin/nbproject/project.xml Wed Feb 11 22:23:22 2009 +0100 @@ -4,7 +4,7 @@ cz.frantovo.superDAO - + cz.frantovo.superDAO