just had to create a cartesian product in java when i dont know how many elements will be being joined.
private List<String> cartProduct(List<List<String>> fragments)
{
if (fragments.size()<2)
{
return fragments.get(0);
}
List<String> frag1 = fragments.get(0);
List<String> frag2 = fragments.get(1);
List<String> newFragments = new ArrayList<String>();
for (String s1 : frag1)
{
for (String s2 : frag2)
{
newFragments.add(s1 + " " + s2);
}
}
fragments.set(1, newFragments);
fragments.remove(0);
return cartProduct(fragments);
}