Skip to content

alansferreira/coollection

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Coollection

A cool way to manipulate collections in Java.

Iterate over a collection is a medieval way to filtering, mapping and ordering. And with Java we are used to work like that. Coollection changes that, is the future, while closures don't arrives for Java.

"Download Coollection 0.2.0":http://github.com/downloads/wagnerandrade/coollection/coollection-0.2.0.jar

How it works?

It's easy to use. Just import the collection static methods in your class and... More nothing!

import static org.simple.coollection.Coollection.*;

How to use this?

public class Animal {
  private String name;
  private Specime specime;
  
}

List<Animal> animals;
  

1 - Filter

First you need a Collection. Here we create a Animal List, and we called it animals.

List<Animal> animals;

Later you goes add a lot of animals in this list.

Now, you want to take all cats, it's easy for Coollections! In this case, name is a method (@animal.name()@).

from(animals).where("name", eq("Cat")).all();

Or, would the first animal with 2 year old? Easy too!

from(animals).where("age", eq(2)).first();

2 - Filter specification

You can be more specific in your query, adding more specifications, like and and or.

from(animals).where("name", eq("Lion")).and("age", eq(2)).all();
from(animals).where("name", eq("Dog")).or("age", eq(5)).all();

3 - Matchers

There are other matchers to be precise!

eq("Cat")
eqIgnoreCase("Cat")
contains("og")
greaterThan(3)
lessThan(10)
isNull()

Or a special matcher, called not.

not(eq("Bird"))
not(contains("at"))
not(isNull())

4 - Order

Order is a very interesting feature to sort your collection.

from(animals).where("name", eq("Cat")).orderBy("age").all();
from(animals).where("age", eq(5)).orderBy("name", Order.DESC).first();

5 - Select

Select field from expression.

from(animals).select("name").all();
from(animals).select("toString").all();
from(animals).select("specime").all();
from(animals).<Specime>select("specime").all();

You can use just order, without filter.

from(animals).orderBy("name");

To Maven Integration

import project from git to your workspace and add dependency

  <dependency>
    <groupId>coollection</groupId>
    <artifactId>coollection</artifactId>
    <version>1.0.0-MASTER</version>
  </dependency>

Be happy!