The QuaereLibrary? -- a "LanguageIntegratedQueryProject" for the JavaLanguage.
Anders Norås introduced the QuaereLibrary? at the September 2007 JavaZone? conference.
It uses static methods and MethodChaining to define an internal DomainSpecificLanguage for querying collections (but not yet databases) in the JavaLanguage.
It was inspired by MicrosoftCorporation's LINQ (LanguageIntegratedQueryProject) project.
For more information on the QuaereLibrary? see:
As another option, consider the JoSql library, which enables you to run SQL syntax queries against collections of objects.
I don't know too much about LINQ. How do the HiberNate Criteria classes for building queries compare to LINQ? Is it closer to how you query and index XML node collections in XpathLanguage?
It is similar, but with LINQ you can do queries even over transient (not persistent) objects. One of the advantages is that since the filtering is declarative, the compiler is free to do parallel optimization, while with a typical loop, stuff needs to be run sequentially an in the order specified by the developer.
I smell GreencoddsTenthRuleOfProgramming slowly worming it's way into existing tools and languages as collection-orientation finally gets attention again after its OOP-hype-caused sabbatical in the late 80's. Too bad I'll be near retirement when it reaches its peak again. --top
Too bad? Sounds great! It means you'll have plenty of free time to devote to contributing to the field.