Java INtegrated Query in parlance with LINQ is an ultra minimalistic library for Java inspired from and mimicking the .NET LINQ. While LINQ is a language construct, JINQ is composed of types - classes and methods, but to the same effect.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
src
.gitignore
README.md
pom.xml

README.md

JINQ

Java INtegrated Query in parlance with LINQ is an ultra minimalistic library for Java inspired from and mimicking the .NET LINQ. While LINQ is a language construct, JINQ is composed of types - classes and methods, but to the same effect.

JINQ allows you to rewrite conventional and nested loop based data processing code into query oriented and highly readable code.

Here is a typical loop based data processing code:

List<ProductDisplayInfo> getDisplayList(Product[] products) {
	List<ProductDisplayInfo> pdiList = new ArrayList<>();

	for (int index = 0; index < products.length; ++index) {
		Product p = products[index];

		if (product.getCategory() == 2 || product.getCategory() == 5) {
			boolean yes = isProductUnderDiscount(product);

			if (!yes) {
				ProductDisplayInfo pdi = new ProductDisplayInfo();
				// whatever you want to populate pdi with ...

				pdiList.add(pdi);
			}
		}
	}

	return pdiList;
}

Here is a C# LINQ snippet:

var query = from p in products
	where p.getCategory == 2 || p.getCategory == 5 && isProductUnderDiscount(p)
	select new ProductDisplayInfo(p);

var pdiList = query.ToList();

Here is JINQ in action:

final Iterable<ProductDisplayInfo> query = new Enumerable<>(products)
	.where(p -> p.getCategory == 2 || p.getCategory == 5 && isProductUnderDiscount(p))
	.select(p -> { new ProductDisplayInfo(p); } ); // or select(ProductDisplayInfo::new);

final List<ProductDisplayInfo> pdiList = query.toList();

or

for (ProductDisplayInfo pdi : pdiList) {
	System.out.println(pdi);
}

Elaboration of JINQ is in progress. Until then you can try the related blog post.