EricHolsinger.com

Instantiating an iReport Collection parameter from an Array in one line

While working with iReport, I wanted to test my report with a default Collection value for my Hibernate Query.

The HQL is something like this,


SELECT person.fullName as personName
FROM Person person
WHERE person.id in ($P{people})

The Person.id is a long.
The report parameter $P{people} is a Collection.

To add a default value for testing, I had to rediscover instantiating a Collection from an Array. I was trying to find Arrays.asList(), and the like, but couldn’t remember it at the time.

While searching for what I needed, I found a lot of forums where people would ask how to do instantiation of a Collection from an Array without looping.

If you already have an array (perhaps named ‘myArray’), you could do something like the following.

new ArrayList(Arrays.asList(myArray));

In my case, I didn’t have an array, yet. I also wanted to initialize the array, too. Initializing an array of objects is easy enough.

new Long[] {new Long(521), new Long(423)};

So, combining the two, my default parameter would get


new ArrayList(Arrays.asList(
new Long[] {new Long(521), new Long(423)}
));

Hopefully this will help someone who needs to just instantiate a collection from an array, or someone who needs to figure out how to add a default value for a collection in iReport.

If you enjoyed this post, make sure you subscribe to my RSS feed!

Category: Programming

Tagged: , ,

Viewed:1

2 Responses

  1. anonim says:

    thanks!! very helpfull

  2. softboxkid says:

    i’ve got the problem. I have reports that produces an output based on parameter. Let say i’ve got 3 param. User didnt enter any value in 2nd param, but the 1st n 3rd param have value. How the report’s SQL statement will be looks like? is thare any solution for this kind of problem?

Leave a Reply

Contact Information

Eric Holsinger
Saco, ME 04072
ph: 207 . 749 . 1703
eM: eric.holsinger@gmail.com

My Twitter noise...

Posting tweet...

Powered by Twitter Tools

Categories