JoSQL relies on a particular concept to do it's work, an "accessor". An accessor is basically a way of accessing information held with an object (this is performed by using Java Reflection). The accessor provides a textual way of representing the public methods names or fields that are accessed, separated by ".". The basic rule however is that each part of the accessor must reference a no-argument public method or a public field (static methods and fields can be referenced). Accessors generally follow the Java-bean naming convention, i.e. that access methods start with "get" or "is" and are followed by a value with the first letter capitalised. However, since in real programming this convention is rarely followed exactly accessors also allow for method names that DON'T start with "get" or "is".

For example, class java.io.File:
  • To access the getName method, use: name or getName
  • To access the lastModified method, use: lastModified
  • To access the length of the path for the File use: path.length
The level to which you are "drill" is up to you, however of course the methods/fields MUST be present in the class of the returned object, for example the path accessor returns an instance of java.lang.String, therefore only methods that are available in the java.lang.String class are exposed. So to return the length of a "trimmed" version of the path (this is only done for demonstration purposes!), use: path.trim.length.

Accessors basically convert the object to a pure data structure, similar to C data structures.