1. A method of processing an object-oriented query to retrieve data from a data source stored on a data storage device connected to a computer, comprising: receiving a Java Query Language (JQL) query including one or more JAVA features and arranged to match the syntax of a Structured Query Language (SQL) query, wherein the one or more JAVA features comprise any of: generic classes, imported static members, variable length argument lists, and predefined constant data types; using a JAVA compliant compiler for detecting any syntax error in the JQL query at compile time, prior to actual compiling and prior to processing the JQL query for execution, wherein using the JAVA compliant compiler further comprises performing compile-time checking without external tools, plug-ins or a modified JAVA compiler; and if a syntax error is detected, then providing a notification of the syntax error; otherwise if a syntax error is not detected, then processing the JQL query for retrieving data from the data source, wherein processing the JQL query for retrieval further comprises generating code from the JQL query, suitable for the data source.