jFluent - a new library that provides a fluent interface over Javacore packages

S

shinya

Hi folks!
I wrote a little library, just as an exercise to grasp techniques
around DSLs and fluent interfaces, that provides a fluent layer upon
java.util.List and java.lang.String(and StringBuilder).

The project can be reached here: http://code.google.com/p/jfluent/
Here's an example of what you can do with the library, in pure Java:

import static com.jfluent.builders.BuilderFacade.*;
import com.jfluent.base.*;

public class FluentSimpleTest {
public static void main(String[] args) {
string("o hai!")
.append(" ")
.append(
list("i", "can", "has", "cheezburger", "plz", "?")
.map(new Function<String, String>() {
public String apply(String element) {
return element + " ";
}
})
.get())
.append("\n")
.append(
list(range('A', 'Z'))
.reverse()
.filter(new Predicate<Character>() {
public boolean apply(Character c) {
return c > 'M';
}
})
.join(","))
.println(System.out);
}
}

Output:

o hai! i can has cheezburger plz ?
Z,Y,X,W,V,U,T,S,R,Q,P,O,N


I don't know if it's a dream or a nightmare for you :) but i'd like to
hear any kind of opinions, critics, possible improvements, etc...
The library is in ALPHA stage, it lacks lots of documentation, but
your IDE should be enough since intellisense should guide you through.
Most methods are just wrapped on the java's ones.

Thanks for listening!
 
S

Stefan Ram

shinya said:
around DSLs and fluent interfaces, that provides a fluent layer upon

See also

http://stephan.reposita.org/archives/2007/10/17/creating-a-fluent-interface-for-google-collections/

When I first heard of »fluent interface«, I misunderstood the
meaning of the term somewhat: I thought, it was about trying
to make an expression or statement of a programming language
to be a legible English language phrase or sentence, too.

For example, IIRC Sun Microsystems, Inc. uses code like:

value.add( other );

while with my own big number class, I use:

value.plus( other );

which to me sounds more like a legible English phrase.

http://google.to/search?q="one+*+one+makes+two"
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,995
Messages
2,570,236
Members
46,821
Latest member
AleidaSchi

Latest Threads

Top