private HennaTreeTable() { _hennaTrees = new FastMap>(); int classId = 0; int count = 0; java.sql.Connection con = null; try { con = L2DatabaseFactory.getInstance().getConnection(); PreparedStatement statement = con.prepareStatement("SELECT class_name, id, parent_id FROM class_list ORDER BY id"); ResultSet classlist = statement.executeQuery(); List list; //int parentClassId; //L2Henna henna; while (classlist.next()) { list = new FastList(); classId = classlist.getInt("id"); PreparedStatement statement2 = con.prepareStatement("SELECT class_id, symbol_id FROM henna_trees where class_id=? ORDER BY symbol_id"); statement2.setInt(1, classId); ResultSet hennatree = statement2.executeQuery(); while (hennatree.next()) { int id = hennatree.getInt("symbol_id"); //String name = hennatree.getString("name"); L2Henna template = HennaTable.getInstance().getTemplate(id); if(template == null) { hennatree.close(); statement2.close(); classlist.close(); statement.close(); return; } L2HennaInstance temp = new L2HennaInstance(template); temp.setSymbolId(id); temp.setItemIdDye(template.getDyeId()); temp.setAmountDyeRequire(template.getAmountDyeRequire()); temp.setPrice(template.getPrice()); temp.setStatINT(template.getStatINT()); temp.setStatSTR(template.getStatSTR()); temp.setStatCON(template.getStatCON()); temp.setStatMEM(template.getStatMEM()); temp.setStatDEX(template.getStatDEX()); temp.setStatWIT(template.getStatWIT()); list.add(temp); } _hennaTrees.put(ClassId.values()[classId], list); hennatree.close(); statement2.close(); count += list.size(); _log.fine("Henna Tree for Class: " + classId + " has " + list.size() + " Henna Templates."); } classlist.close(); statement.close(); } catch (Exception e) { _log.warning("error while creating henna tree for classId "+classId + " "+e); e.printStackTrace(); } finally { try { con.close(); } catch (Exception e) {} } _log.config("HennaTreeTable: Loaded " + count + " Henna Tree Templates."); }