Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Working with long strings (heredocs) in Java - the readable approach? [duplicate]

I need to work with long strings containing line breaks in Java. Those are for HTML generation, but it is not the most important here.

I'm aware Java is cripple in a way it doesn't have heredocs. But there are other mechanisms I could use:

1) String concatenation (or StringBuilders), not very readable and copy-pasteable.

2) Storing strings in .properties files, either not very readable, but with higher copypasteability.

3) Storing each "heredoc" in seperate .txt file, quite readable and copypasteable, but resulting in a horde of txt files.

4) Template engines, like Velocity or Freemarker - moves design out of Java, requires a lot of map operations, it would be quite good, but the Velocity syntax and loop/if abilities aren't as readable as for example those from Smarty

Each have pros and contras, I'd like to choose 3 but the management prefers 1 because of pure ideological reasons. I'd like to have some standard for working with heredocs in Java, possibly library that makes things easier. I'd be gratefull for any suggestions (with good arguments) how to work with heredocs.

Thanx

like image 889
FolksLord Avatar asked May 29 '12 21:05

FolksLord


2 Answers

I hate to be "that guy", who suggests that you take a completely different approach than what you asked about, but have you looked at Groovy? It's JVM language, can be mixed freely with Java, and in addition to a bunch of other really nice language features, it has heredocs.

like image 119
GreyBeardedGeek Avatar answered Nov 16 '22 02:11

GreyBeardedGeek


Try Rythm template engine, which is built as a high performance Java template engine with Razor like clean syntax.

Links:

  • Check the full featured demonstration
  • read a brief introduction to Rythm
  • download the latest package or
  • fork it

Updates

Rythm now has a web site: http://rythmengine.org, and a fiddle site: http://fiddle.rythmengine.org

like image 42
Gelin Luo Avatar answered Nov 16 '22 01:11

Gelin Luo