Skip to content

Commit 7b15ce9

Browse files
committed
Use StringBuilder instead of concatenation
Pointed out by ctrueden: string concatenation has been showed to have significant overhead in time and space, thus we should be using StringBuilder. This also removes the potential for a null header value.
1 parent b00d3ba commit 7b15ce9

File tree

2 files changed

+5
-8
lines changed

2 files changed

+5
-8
lines changed

src/main/java/org/scijava/script/DefaultScriptHeaderService.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -50,17 +50,15 @@ public class DefaultScriptHeaderService extends
5050

5151
@Override
5252
public String getHeader(final ScriptLanguage language) {
53-
String header = null;
53+
StringBuilder header = new StringBuilder();
5454
for (final ScriptHeader scriptHeader : getInstances()) {
5555
if (scriptHeader.supports(language)) {
56-
if (header == null) {
57-
header = "";
58-
}
59-
header += scriptHeader.getHeader() + "\n";
56+
header.append(scriptHeader.getHeader());
57+
header.append("\n");
6058
}
6159
}
6260

63-
return header;
61+
return header.toString();
6462
}
6563

6664
// -- HandlerService methods --

src/main/java/org/scijava/script/ScriptHeaderService.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,7 @@ public interface ScriptHeaderService extends
5555
* {@link ScriptHeader#getHeader()} output to a single string.
5656
*
5757
* @param language - Language to look up
58-
* @return The combined header text to insert at the top of a script, or null
59-
* if no {@link ScriptHeader}s were found.
58+
* @return The combined header text to insert at the top of a script.
6059
*/
6160
String getHeader(final ScriptLanguage language);
6261
}

0 commit comments

Comments
 (0)