+Controls when and how lines gets wrapped.
+
+Lets you control the general line wrapping options.
+
+Lets you control the general line wrapping options.
+
+Wrap lines
+
+Enables or disables the automatic line wrapping.
+
+Line length
+
+Lets you specify the maximum line length. Jalopy tries (more or less) to limit
+each line within the given length.
+
+Deep indent
+
+Specifies the length after which a gap will be identified as "deep indented".
+Jalopy tries to avoid these kind of gaps and will force a line break or apply
+another indentation scheme, if this size is exceeded.
+ Example 4.65. Deep indent size (60) not exceeded
+ | |
+ protected static synchronized File getANewDestinationFile(File dest, |
+ | String packageName,
+ | String filename) |
+|----------------- the gap ---------------------------|throws IOException |
+ { | |
+ } | |
+ | |
+ 60 79
+ |
Example 4.66. Deep indent size (50) exeeded
+ | |
+ protected static synchronized File getANewDestinationFile(File dest, |
+ | String packageName,
+ | String filename) |
+|----------------- the gap ---------------------------|throws IOException |
+ { | |
+ } | |
+ | |
+ 50 79
+ |
+Lets you fine-control the wrapping behaviour.
+
+Wrap after left parenthesis
+
+Lets you control the wrapping behaviour for statement and expression lists.
+
+If left disabled, the first line break will be preferably inserted
+behind the first parameter or expression and only occurs after the left
+parenthesis if the maximum line length would be exceeded. Example 4.67. Wrap after left parenthesis (disabled)
+ |
+appServerReferencesVector.add(new AppServerReference(
+ "RemoteApplicationManager", |
+ poa.create_reference_with_id( |
+ "RemoteApplicationManager".getBytes(), |
+ RemoteApplicationManagerHelper.id()))); |
+ |
+ |
+Otherwise the line break will always occur behind the left parenthesis.
+ Example 4.68. Wrap after left parenthesis (enabled)
+appServerReferencesVector.add(
+ new AppServerReference(
+ "RemoteApplicationManager",
+ poa.create_reference_with_id(
+ "RemoteApplicationManager".getBytes(),
+ RemoteApplicationManagerHelper.id())));
+ |
+This switch affects the output style of method/constructor declarations and
+calls, creator statements and if-else, for,
+while and do-while blocks.
+
+As per default, the wrapped lines will be indended using
+Standard indentation, but you
+may want to apply another indentation scheme. See
+Section 4.3.3.1.1, “Policy” for more information.
+
+Wrap before right parenthesis
+
+Forces a line break before the right parenthesis of parameter or expression lists.
+The parenthesis will be intended according to the current indentation level.
+Only takes action if at least one parameter/expression was indeed wrapped.
+
+This switch affects the output style of method/constructor declarations and
+calls, creator statements and if-else, for,
+while and do-while blocks.
+ Example 4.69. Right parenthesis (disabled)
+public void severalParameters(String one,
+ int two,
+ String three,
+ StringObject four,
+ AnotherObject five) {
+}
+ |
Example 4.70. Right parenthesis (enabled)
+public void severalParameters(String one,
+ int two,
+ String three,
+ StringObject four,
+ AnotherObject five
+) {
+}
+ |
+Both switches combined, looks like the following example:
+ Example 4.71. Left and right parenthesis
+appServerReferencesVector.add(
+ new AppServerReference(
+ "RemoteApplicationManager",
+ poa.create_reference_with_id(
+ "RemoteApplicationManager".getBytes(),
+ RemoteApplicationManagerHelper.id()
+ )
+ )
+);
+ |
+For blocks the output may go like this:
+ Example 4.72. Left and right parenthesis (wrapped)
+if (
+ "pick".equals(m.getName()) && m.isStatic() && m.isPublic()
+) {
+ pickFound = true;
+}
+else if (
+ "pick".equals(m.getName()) && m.isStatic() && m.isPublic()
+) {
+ pickFound = true;
+}
+ |
+Wrap grouping parentheses
+
+Lets you control the wrapping behaviour for grouping parentheses. If enabled,
+linebreaks are inserted after left and before right parentheses of grouped
+expressions to let the expression(s) stand out.
+ Example 4.73. Grouping parentheses (standard indented)
+if (
+ !((bankverbindung instanceof ObjectValue)
+ || (bankverbindung instanceof PrimitiveValue))
+) {
+ throw new RuntimeException();
+}
+ |
Example 4.74. Wrapped grouping parentheses (standard indented)
+if (
+ !(
+ (bankverbindung instanceof ObjectValue)
+ || (bankverbindung instanceof TkPrimitiveValue)
+ )
+) {
+ throw new RuntimeException();
+}
+ |
+Wrap after assignments
+
+Lets you control the way wrapping takes action for assignments. If left disabled,
+line wrapping preferably occurs as part of the expression printing. Otherwise
+wrapping will be performed right after the assignment.
+ Example 4.75. Don't wrap after assignment
+this.interessentenNr = new InteressentenNr(
+ Fachschluesselerzeugung.createService()
+ .getNeuerFachschluessel(
+ FachschluesselerzeugungService.FACHSCHLUESSEL_KZ_INTERESSENT
+ )
+ );
+ |
Example 4.76. Wrap after assignment
+this.interessentenNr =
+ new InteressentenNr(
+ Fachschluesselerzeugung.createService()
+ .getNeuerFachschluessel(
+ FachschluesselerzeugungService.FACHSCHLUESSEL_KZ_INTERESSENT
+ )
+ );
+ |
+Line wrapping will often occur with statements that consist of several (possibly long)
+expressions. Here you specify whether line wrapping should occur
+before or after the expression operator.
+
+Wrap before operators
+
+If enabled, lines will be wrapped before the operator. The operator will be
+printed with the continuation line.
+ Example 4.77. Wrap before operators
+if ((condition1 && condition2)
+ || (condition3 && condition4)
+ || !(condition5 && condition6))
+{
+ doSomethingAboutIt();
+}
+ |
+Wrap after operators
+
+If enabled, lines will be wrapped after the operator.
+ Example 4.78. Wrap after operators
+if ((condition1 && condition2) ||
+ (condition3 && condition4) ||
+ !(condition5 && condition6))
+{
+ doSomethingAboutIt();
+}
+ |
+If you happen to use Sun Brace styling, you might want to enable
+continuation indentation
+to let the statement body stand out.
+
+Lets you choose the statements/expressions that are to be wrapped always.
+
+For certain cases, the need may arise to force line wrapping to achieve a
+consistent, uniform look. If you enable any of the following switches, line wrapping
+will occur for the specified cases no matter whether you have enabled general
+line wrapping or not.
+
+Before extends keyword
+
+Forces a line break before the extends keyword of a class/interface declaration.
+ Example 4.79. Class/Interface extends keyword
+public interface Channel extends Puttable, Takable
+{
+ ...
+}
+ |
Example 4.80. Class/Interface extends keyword (wrapped)
+public interface Channel
+ extends Puttable, Takable
+{
+ ...
+}
+ |
+You can control the space printed before the keyword with the
+Extends Indent setting.
+If you leave the switch disabled, the clause will be printed with
+standard indentation.
+
+After extends types
+
+Forces a line wrap after each type name of the extended classes.
+ Example 4.81. Class/Interface extends types
+public interface Channel extends Puttable, Takable
+{
+ ...
+}
+ |
Example 4.82. Class/Interface extends types (wrapped)
+public interface Channel extends Puttable,
+ Takable
+{
+ ...
+}
+ |
+Before implements keyword
+
+Forces a line break before the implements keyword of a class declaration.
+ Example 4.83. implements keyword
+public class SynchronizedBoolean implements Comparable, Cloneable
+{
+ ...
+}
+ |
Example 4.84. implements keyword (wrapped)
+public class SynchronizedBoolean
+ implements Comparable, Cloneable
+{
+ ...
+}
+ |
+You can control the space printed before the keyword with the
+Implements Indent setting.
+If you leave the switch disabled, the clause will be printed with
+standard indentation.
+
+After implements types
+
+Forces a line wrap after each type name of the implemented classes.
+ Example 4.85. Class implements types
+public class SynchronizedBoolean implements Comparable, Cloneable
+{
+ ...
+}
+ |
Example 4.86. Class implements types (wrapped)
+public class SynchronizedBoolean implements Comparable,
+ Cloneable
+{
+ ...
+}
+ |
+Before throws keyword
+
+Forces a line break before the throws keyword of a method/constructor declaration.
+ Example 4.87. throws keyword
+private File getDestinationFile(File dest, String packageName,
+ String filename) throws IOException
+{
+ ...
+}
+ |
Example 4.88. throws keyword (wrapped)
+private File getDestinationFile(File dest, String packageName,
+ String filename)
+ throws IOException
+{
+ ...
+}
+ |
+You can control the space printed before the keyword with the
+Throws Indent setting. If you
+leave the switch disabled, Jalopy tries to align the throws clause with the
+method/constructor parameters as with the above example. If no alignment is
+possible, the clause will be printed with
+standard indentation.
+
+After throws types
+
+Forces a line wrap after each type name of the throws clause of a method/constructor declaration.
+ Example 4.89. throws types
+private File getDestinationFile(File dest, String packageName,
+ String filename)
+ throws IOException, FooException
+{
+ ...
+}
+ |
Example 4.90. throws types (wrapped)
+private File getDestinationFile(File dest, String packageName,
+ String filename)
+ throws IOException,
+ FooException
+{
+ ...
+}
+ |
Example 4.91. throws types (standard indented)
+private static final File getDestinationFile(File dest, String packageName,
+ String filename)
+ throws IOException,
+ FooException
+{
+ ...
+}
+ |
+Method Def parameters
+
+Forces a line wrap after each parameter of a method or constructor declaration.
+ Example 4.92. Method declaration parameters
+public static File create(File file, File directory, int backupLevel)
+ throws IOException
+{
+ ...
+}
+ |
Example 4.93. Method declaration parameters (wrapped)
+public static File create(File file,
+ File directory,
+ int backupLevel)
+ throws IOException
+{
+ ...
+}
+ |
+Method Call chains
+
+Forces a line wrap after each chained method call.
+ Example 4.94. Chained Method Call
+message.format(ERROR_SOURCE_ADDRESS).param (m_session.getAimName()).send();
+ |
Example 4.95. Chained Method Call (wrapped)
+message.format(ERROR_SOURCE_ADDRESS)
+ .param (m_session.getAimName())
+ .send();
+ |
+Method Call parameters
+
+Forces a line wrap after each parameter of a method call.
+ Example 4.96. Method call
+doSomething();
+_userDatabase.addUser("Name", encryptPassword("password", _secretKey),
+ "123 fake address");
+doSomethingElse();
+ |
Example 4.97. Method call (wrapped)
+doSomething();
+_userDatabase.addUser("Name",
+ encryptPassword("password",
+ _secretKey),
+ "123 fake address");
+doSomethingElse();
+ |
+Method Call parameters if nested
+
+Forces a line wrap after each parameter of a method call if at least one
+parameter is a method call itself. This option can prove especially useful if
+one prefers to nest method calls as parameters rather than adding local
+variables just to hold those parameters.
+ Example 4.98. Method call if nested (wrapped)
+doSomething();
+_userDatabase.addUser("Name",
+ encryptPassword("password", _secretKey),
+ "123 fake address");
+doSomethingElse();
+ |
+Ternary expression question mark (?)
+
+Forces a line wrap after the first operand.
+ Example 4.99. Ternary expression question mark (deep indented)
+String comma = spaceAfterComma
+ ? COMMA_SPACE : COMMA;
+ |
+Indentation for consecutive lines depends on the used indenatation policy.
+You may further want to use continuation indentation.
+
+Ternary expression colon (:)
+
+Forces a line wrap after the second operand.
+ Example 4.100. Ternary expression colon
+String comma = spaceAfterComma ? COMMA_SPACE
+ : COMMA;
+ |
+If both switches are disabled, ternary expressions are printed in one line (if everything fits in one line, that is).
+ Example 4.101. Ternary expressions
+String comma = spaceAfterComma ? COMMA_SPACE : COMMA;
+ |
+If both switches are enabled, you can force a style like the following:
+ Example 4.102. Ternary expressions (continued)
+String comma = spaceAfterComma
+ ? COMMA_SPACE
+ : COMMA;
+ |
+Labels
+
+Forces a line wrap after labels.
+ Example 4.103. Label
+// advance to the first CLASS_DEF or INTERFACE_DEF
+LOOP: for (AST child = tree.getFirstChild();
+ child != null;
+ child = child.getNextSibling())
+ {
+ switch (child.getType())
+ {
+ case JavaTokenTypes.CLASS_DEF :
+ case JavaTokenTypes.INTERFACE_DEF :
+ next = child;
+ break LOOP;
+
+ default :
+ break;
+ }
+ }
+ |
Example 4.104. Label (wrapped)
+// advance to the first CLASS_DEF or INTERFACE_DEF
+LOOP:
+ for (AST child = tree.getFirstChild();
+ child != null;
+ child = child.getNextSibling())
+ {
+ switch (child.getType())
+ {
+ case JavaTokenTypes.CLASS_DEF :
+ case JavaTokenTypes.INTERFACE_DEF :
+ next = child;
+ break LOOP;
+
+ default :
+ break;
+ }
+ }
+ |
4.3.4.2.2. Wrap always when exceed
+Lets you force wrapping for all parameter or expressions if
+the parameter or expression list would otherwise exceed the maximal line length.
+If you enable any of the following switches, line wrapping
+may occur for the specified cases no matter whether you have enabled general
+line wrapping or not.
+
+After extends types
+
+Forces a line wrap after each type name of the extends clause of a
+class/interface declaration if the whole clause does not fit in one line.
+ Example 4.105. Extends types wrapped as needed (standard indented)
+public interface VeryImportantInterface |
+ extends LeastImportantInterface, LessImportantInterface, |
+ ImportantInterface |
+} |
+ ... |
+} |
+ |
Example 4.106. Extends types wrapping forced (standard indented)
+public interface VeryImportantInterface |
+ extends LeastImportantInterface, |
+ LessImportantInterface, |
+ ImportantInterface |
+} |
+ ... |
+} |
+ |
+After implements types
+
+Forces a line wrap after each type name of the implements clause of a
+class/interface declaration if the whole clause does not fit in one line.
+ Example 4.107. Implements types wrapped as needed (standard indented)
+public class ImportantClass |
+ implements ImportantInterface, Serializable, Comparable, |
+ Cloneable |
+} |
+ ... |
+} |
+ |
Example 4.108. Implements types wrapping forced (standard indented)
+public class ImportantClass |
+ implements ImportantInterface, |
+ Serializable, |
+ Comparable, |
+ Cloneable |
+} |
+ ... |
+} |
+ |
+After throws types
+
+Forces a line wrap after each type name of the throws clause of a
+method/constructor declaration if the whole clause does not fit in one line.
+ Example 4.109. Throws types wrapped as needed (deep indented)
+private File getDestinationFile(File dest, String packageName, |
+ String filename) |
+ throws IOException, FooException, |
+ FooBarException |
+{ |
+ ... |
+} |
+ |
Example 4.110. Throws types wrapping forced (deep indented)
+private File getDestinationFile(File dest, String packageName, |
+ String filename) |
+ throws IOException, |
+ FooException, |
+ FooBarException |
+{ |
+ ... |
+} |
+ |
+After parameters/expressions
+
+If enabled, this switch will cause all parameters/expressions to be
+wrapped, if and only if the first parameter/expression of the list has been
+wrapped.
+ Example 4.111. Expression list (all wrapped)
+if (
+ "pick".equals(m.getName()) &&
+ m.isStatic() &&
+ m.isPublic()
+) {
+ pickFound = true;
+}
+else if (
+ "pick".equals(m.getName()) &&
+ m.isStatic() &&
+ m.isPublic()
+) {
+ pickFound = true;
+}
+ |
Lets you control miscellaneous wrapping settings. Contains options to control the wrapping for arrays. Wrap as needed Enabling this options means array elements will be wrapped so that they
+will be limited within the current line length setting. Example 4.112. Wrap as needed
+String[] constraints = { |
+ "patternPanel.top=form.top", "patternPanel.hcenter=form.hcenter", |
+ "okButton.top=patternPanel.bottom+20", |
+ "okButton.right=form.hcenter-10", "cancelButton.vcenter=10", |
+ "cancelButton.left=10" |
+}; |
+ |
Wrap after element Forces a newline after every n-th element. Example 4.113. Wrap after element 1
+String[] constraints = { |
+ "patternPanel.top=form.top", |
+ "patternPanel.hcenter=form.hcenter", |
+ "okButton.top=patternPanel.bottom+20", |
+ "okButton.right=form.hcenter-10", |
+ "cancelButton.vcenter=10", |
+ "cancelButton.left=10" |
+}; |
+ |
Example 4.114. Wrap after element 2
+String[] constraints = { |
+ "patternPanel.top=form.top", "patternPanel.hcenter=form.hcenter",
+ "okButton.top=patternPanel.bottom+20", "okButton.right=form.hcenter-10",
+ "cancelButton.vcenter=10", "cancelButton.left=10" |
+}; |
+ |
+If both options are left disabled, the array elements will be printed in one
+line, right after the left curly brace.
+
|