public Collection<T> readAll() {
		SQLStrings.INSTANCE.getReadAllElementsString();
		
		
        Collection<T> result = null;
		Connection conn = hsqlh.createConnection();
		
		try {
			/*
		    PreparedStatement prep_stmt = conn.prepareStatement(SQLStrings.INSTANCE.getReadAllElementsString());
		    prep_stmt.clearParameters();
		    
		    for (Integer position : ORMReflectionsMapper.INSTANCE.getFieldPositionMap().keySet()) {
		    	String fieldName = ORMReflectionsMapper.INSTANCE.getFieldPositionMap().get(position);
		    	Field f = clazz.getDeclaredField( fieldName );		    	
		    	Method prep_stmt_setter = ORMReflectionsMapper.INSTANCE.getFieldAccessorMethodMap().get( f ).get("set");		    	
		    	f.setAccessible(true);
		    	Object toSet = f.get(data);		    	
		    	prep_stmt_setter.invoke(prep_stmt, position, toSet);		    		
		    }*/
		    
		    Statement stmt = conn.createStatement();
		    ResultSet rs = stmt.executeQuery(SQLStrings.INSTANCE.getReadAllElementsString());         
            		    		    
		    //if (rs!=null) {
//		    System.out.println("HsqlDAO:366 "+rs.toString());
		    Collection<T> lResult = new ArrayList<T>();
		    //}
            Collection<String> fieldsOrdered = ORMReflectionsMapper.INSTANCE.getFieldPositionMap().values();
            while (rs.next()) {                	
            	T data_new = clazz.newInstance();
            	for (String fieldName: fieldsOrdered  ) {                	
                	Field f = ORMReflectionsMapper.INSTANCE.getFieldMap().get(fieldName);
                	Method method = ORMReflectionsMapper.INSTANCE.getFieldAccessorMethodMap().get(f).get("get");	                
            		f.setAccessible(true);
            		Object toSet = method.invoke(rs, f.getName());
            		f.set(data_new, toSet );
            	}
            	lResult.add(data_new);
            }
            if (!lResult.isEmpty()) result = lResult;	
            rs.close();
            stmt.close();
        }
        catch (SQLException e) {
           System.err.println(this.getClass().getName()+".readAll(): failed to retrieve any element with \n"+e);
           e.printStackTrace();
        } catch (InstantiationException e) {
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			e.printStackTrace();
		} catch (IllegalArgumentException e) {
			e.printStackTrace();
		} catch (InvocationTargetException e) {
			e.printStackTrace();
		} catch (SecurityException e) {
			e.printStackTrace();
		}
        finally {
        	hsqlh.closeConnection(conn);
        }
        return result;		
	}