Change dataset name
[jalview.git] / utils / jalopy / docs / wrapping.html
1
2     <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3   <html><head>
4       <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
5    <title>4.3.4.&nbsp;Wrapping</title><link rel="stylesheet" href="site.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.65.1"><link rel="home" href="manual.html" title="Jalopy User Manual"><link rel="up" href="printer.html" title="4.3.&nbsp;Printer"><link rel="previous" href="indentation.html" title="4.3.3.&nbsp;Indentation"><link rel="next" href="separation.html" title="4.3.5.&nbsp;Blank Lines"><link rel="preface" href="dedication.html" title="Dedication"><link rel="preface" href="acknowledge.html" title="Acknowledgements"><link rel="preface" href="introduction.html" title="Introduction"><link rel="part" href="part-core.html" title="Part&nbsp;I.&nbsp;Jalopy core"><link rel="chapter" href="installation.html" title="Chapter&nbsp;1.&nbsp;Installation"><link rel="chapter" href="build.html" title="Chapter&nbsp;2.&nbsp;Building"><link rel="chapter" href="usage.html" title="Chapter&nbsp;3.&nbsp;Usage"><link rel="chapter" href="settings.html" title="Chapter&nbsp;4.&nbsp;Settings"><link rel="part" href="part-plugins.html" title="Part&nbsp;II.&nbsp;Plug-ins"><link rel="chapter" href="plugin-ant.html" title="Chapter&nbsp;5.&nbsp;Ant Plug-in task"><link rel="chapter" href="plugin-console.html" title="Chapter&nbsp;6.&nbsp;Console Application"><link rel="chapter" href="plugin-eclipse.html" title="Chapter&nbsp;7.&nbsp;Eclipse Plug-in"><link rel="chapter" href="plugin-jbuilder.html" title="Chapter&nbsp;8.&nbsp;JBuilder OpenTool"><link rel="chapter" href="plugin-jdev.html" title="Chapter&nbsp;9.&nbsp;JDeveloper Extension"><link rel="chapter" href="plugin-jedit.html" title="Chapter&nbsp;10.&nbsp;jEdit Plug-in"><link rel="chapter" href="plugin-netbeans.html" title="Chapter&nbsp;11.&nbsp;NetBeans/Sun ONE Studio module"><link rel="appendix" href="dependencies.html" title="Appendix&nbsp;A.&nbsp;Library Dependencies"><link rel="appendix" href="license-bsd.html" title="Appendix&nbsp;B.&nbsp;The Jalopy BSD License"><link rel="appendix" href="license-antlr.html" title="Appendix&nbsp;C.&nbsp;ANTLR SOFTWARE RIGHTS"><link rel="appendix" href="license-apache.html" title="Appendix&nbsp;D.&nbsp;The Apache Software License, Version 1.1"><link rel="appendix" href="license-gnu.html" title="Appendix&nbsp;E.&nbsp;GNU GENERAL PUBLIC LICENSE Version 2, June 1991"><link rel="appendix" href="license-gnu-doc.html" title="Appendix&nbsp;F.&nbsp;GNU Free Documentation License Version 1.1, March 2000"><link rel="appendix" href="license-common-public.html" title="Appendix&nbsp;G.&nbsp;Common Public License Version 1.0"><link rel="appendix" href="license-sun-public.html" title="Appendix&nbsp;H.&nbsp;SUN PUBLIC LICENSE Version 1.0"><link rel="index" href="ix01.html" title="Index"><link rel="subsection" href="wrapping.html#wrap-general" title="4.3.4.1.&nbsp;General"><link rel="subsection" href="wrapping.html#wrap-always" title="4.3.4.2.&nbsp;Always"><link rel="subsection" href="wrapping.html#wrap-misc" title="4.3.4.3.&nbsp;Misc">
6       <meta name="description" content="Jalopy Java Source Code Formatter Beautifier Pretty Printer"> 
7       <meta http-equiv="pics-label" content='(pics-1.1 "http://www.icra.org/ratingsv02.html" l gen true for "http://jalopy.sf.net" r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true for "http://jalopy.sf.net" r (n 0 s 0 v 0 l 0))'> 
8     </head><body id="toppage" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table width="700" border="0" cellpadding="0" cellspacing="0" align="left"><tbody><tr><td><table cellpadding="0" cellspacing="0" width="100%" style="border:1px solid #336699"><tbody><tr><td height="16"></td></tr><tr><td bgcolor="#3399cc" height="1"></td></tr><tr style="border:none"><td style="border:none"><table border="0" cellspacing="0" cellpadding="0"><tbody><tr><td class="logo">JALOPY</td><td class="sublogo" valign="bottom">Java Source Code Formatter Beautifier Pretty Printer</td></tr></tbody></table></td></tr><tr><td bgcolor="#3399cc" height="1"></td></tr><tr><td height="10"></td></tr><tr><td bgcolor="#ff8000" height="4"></td></tr><tr><td height="20" bgcolor="#336699" style="color:#ffffff;padding-left:10px"><a href="./index.html" class="navlink">Overview</a> &#149;
9                     <a href="./download.html" class="navlink">Download</a> &#149;
10                     <a href="./docs.html" class="navlink">Documentation</a> &#149;
11                     <a href="./plugins.html" class="navlink">Plug-ins</a> &#149;
12                     <a href="./links.html" class="navlink">Links</a> &#149;
13                     <a href="./contact.html" class="navlink">Contact</a></td></tr><tr><td height="1" bgcolor="#ffffff"></td></tr></tbody></table></td></tr><tr valign="top"><td valign="top" bgcolor="#ffffff"><table border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td height="20" bgcolor="#faebd7" style="padding-left:15px"><a href="./features.html" class="navlink2">Features</a> |
14                     <a href="./history.html" class="navlink2">History</a> |
15                     <a href="./manual.html" class="navlink2">Manual</a> |
16                     <a href="./faq.html" class="navlink2">FAQ</a> |
17                     <a href="./api/index.html" class="navlink2">Javadoc</a></td></tr><tr><td height="20" bgcolor="#ffffff"></td></tr><tr><td bgcolor="#eeeecc" height="17" align="right" style="font-size:10px;padding-right:3px">
18                     This page generated: <strong>June 8 2004</strong></td></tr></tbody></table><table border="0" width="100%" cellspacing="0" cellpadding="5"><tr><td><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">4.3.4.&nbsp;Wrapping</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="indentation.html">Prev</a>&nbsp;</td><th width="60%" align="center">4.3.&nbsp;Printer</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="separation.html">Next</a></td></tr></table><hr></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="wrapping"></a>4.3.4.&nbsp;Wrapping</h3></div></div><div></div></div><a class="indexterm" name="d0e2657"></a><a class="indexterm" name="d0e2660"></a><p>
19 Controls when and how lines gets wrapped.
20 </p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="wrap-general"></a>4.3.4.1.&nbsp;General</h4></div></div><div></div></div><p>
21 Lets you control the general line wrapping options.
22 </p><div class="sect4" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="wrap-general-general"></a>4.3.4.1.1.&nbsp;General</h5></div></div><div></div></div><p>
23 Lets you control the general line wrapping options.
24 </p><div class="itemizedlist"><ul type="disc"><li><p><a name="wrap-use"></a>
25 Wrap lines
26 </p><p>
27 Enables or disables the automatic line wrapping.
28 </p></li><li><p><a name="wrap-sizes-line"></a>
29 Line length
30 </p><p>
31 Lets you specify the maximum line length. Jalopy tries (more or less) to limit
32 each line within the given length.
33 </p><a class="indexterm" name="d0e2686"></a><a class="indexterm" name="d0e2691"></a></li><li><p><a name="wrap-sizes-deep"></a>
34 Deep indent
35 </p><a class="indexterm" name="d0e2697"></a><a class="indexterm" name="d0e2702"></a><p>
36 Specifies the length after which a gap will be identified as "deep indented".
37 Jalopy tries to avoid these kind of gaps and will force a line break or apply
38 another indentation scheme, if this size is exceeded.
39 </p><div class="example"><a name="ex-wrap-sizes-deep"></a><p class="title"><b>Example&nbsp;4.65.&nbsp;Deep indent size (60) not exceeded</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
40                                                             |                  |
41     protected static synchronized File getANewDestinationFile(File dest,       |
42                                                             | String packageName,
43                                                             | String filename) |
44 |----------------- the gap ---------------------------|throws IOException      |
45     {                                                       |                  |
46     }                                                       |                  |
47                                                             |                  |
48                                                             60                 79
49 </pre></td></tr></table></div><p></p><div class="example"><a name="ex-wrap-sizes-deep-exceed"></a><p class="title"><b>Example&nbsp;4.66.&nbsp;Deep indent size (50) exeeded</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
50                                                   |                            |
51     protected static synchronized File getANewDestinationFile(File dest,       |
52                                                   |           String packageName,
53                                                   |           String filename) |
54 |----------------- the gap ---------------------------|throws IOException      |
55     {                                             |                            |
56     }                                             |                            |
57                                                   |                            |
58                                                   50                           79
59 </pre></td></tr></table></div></li></ul></div></div><div class="sect4" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="wrap-policy"></a>4.3.4.1.2.&nbsp;Policy</h5></div></div><div></div></div><a class="indexterm" name="d0e2721"></a><a class="indexterm" name="d0e2726"></a><p>
60 Lets you fine-control the wrapping behaviour.
61 </p><div class="itemizedlist"><ul type="disc"><li><p><a name="wrap-left-parenthesis"></a>
62 Wrap after left parenthesis
63 </p><p>
64 Lets you control the wrapping behaviour for statement and expression lists.
65 </p><p>
66 If left disabled, the first line break will be preferably inserted
67 behind the first parameter or expression and only occurs after the left
68 parenthesis if the maximum line length would be exceeded.</p><div class="example"><a name="ex-wrap-left-parenthesis-disabled"></a><p class="title"><b>Example&nbsp;4.67.&nbsp;Wrap after left parenthesis (disabled)</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
69                                                                                |
70 appServerReferencesVector.add<span class="bold"><b>(</b></span>new AppServerReference<span class="bold"><b>(</b></span>
71         "RemoteApplicationManager",                                            |
72         poa.create_reference_with_id<span class="bold"><b>(</b></span>         |
73             "RemoteApplicationManager".getBytes(),                             |
74             RemoteApplicationManagerHelper.id())));                            |
75                                                                                |
76 </pre></td></tr></table></div><p>
77 Otherwise the line break will always occur behind the left parenthesis.
78 </p><div class="example"><a name="ex-wrap-left-parenthesis-enabled"></a><p class="title"><b>Example&nbsp;4.68.&nbsp;Wrap after left parenthesis (enabled)</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
79 appServerReferencesVector.add<span class="bold"><b>(</b></span>
80     new AppServerReference<span class="bold"><b>(</b></span>
81         "RemoteApplicationManager",
82         poa.create_reference_with_id<span class="bold"><b>(</b></span>
83             "RemoteApplicationManager".getBytes(),
84             RemoteApplicationManagerHelper.id())));
85 </pre></td></tr></table></div><p>
86 This switch affects the output style of method/constructor declarations and
87 calls, creator statements and <tt class="literal">if-else</tt>, <tt class="literal">for</tt>,
88 <tt class="literal">while</tt> and <tt class="literal">do-while</tt> blocks.
89 </p><p>
90 As per default, the wrapped lines will be indended using
91 <a href="indentation.html#indentation-policy-standard">Standard indentation</a>, but you
92 may want to apply another indentation scheme. See
93 <a href="indentation.html#indentation-policy" title="4.3.3.1.1.&nbsp;Policy">Section&nbsp;4.3.3.1.1, &#8220;Policy&#8221;</a> for more information.
94 </p><p></p></li><li><p><a name="wrap-right-parenthesis"></a>
95 Wrap before right parenthesis
96 </p><p>
97 Forces a line break before the right parenthesis of parameter or expression lists.
98 The parenthesis will be intended according to the current indentation level.
99 Only takes action if at least one parameter/expression was indeed wrapped.
100 </p><p>
101 This switch affects the output style of method/constructor declarations and
102 calls, creator statements and <tt class="literal">if-else</tt>, <tt class="literal">for</tt>,
103 <tt class="literal">while</tt> and <tt class="literal">do-while</tt> blocks.
104 </p><div class="example"><a name="ex-wrap-right-parenthesis"></a><p class="title"><b>Example&nbsp;4.69.&nbsp;Right parenthesis (disabled)</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
105 public void severalParameters(String one,
106                               int two,
107                               String three,
108                               StringObject four,
109                               AnotherObject five<span class="bold"><b>)</b></span> {
110 }
111 </pre></td></tr></table></div><p></p><div class="example"><a name="ex-wrap-right-parenthesis-enabled"></a><p class="title"><b>Example&nbsp;4.70.&nbsp;Right parenthesis (enabled)</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
112 public void severalParameters(String one,
113                               int two,
114                               String three,
115                               StringObject four,
116                               AnotherObject five
117 <span class="bold"><b>)</b></span> {
118 }
119 </pre></td></tr></table></div><p>
120 Both switches combined, looks like the following example:
121 </p><div class="example"><a name="ex-wrap-left-right-parenthesis"></a><p class="title"><b>Example&nbsp;4.71.&nbsp;Left and right parenthesis</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
122 appServerReferencesVector.add<span class="bold"><b>(</b></span>
123     new AppServerReference<span class="bold"><b>(</b></span>
124         "RemoteApplicationManager",
125         poa.create_reference_with_id<span class="bold"><b>(</b></span>
126             "RemoteApplicationManager".getBytes(),
127             RemoteApplicationManagerHelper.id()
128         <span class="bold"><b>)</b></span>
129     <span class="bold"><b>)</b></span>
130 <span class="bold"><b>)</b></span>;
131 </pre></td></tr></table></div><p>
132 For blocks the output may go like this:
133 </p><div class="example"><a name="ex-wrap-left-right-parenthesis-wrapped-continue"></a><p class="title"><b>Example&nbsp;4.72.&nbsp;Left and right parenthesis (wrapped)</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
134 if <span class="bold"><b>(</b></span>
135     "pick".equals(m.getName()) &amp;&amp; m.isStatic() &amp;&amp; m.isPublic()
136 <span class="bold"><b>)</b></span> {
137     pickFound = true;
138 }
139 else if <span class="bold"><b>(</b></span>
140     "pick".equals(m.getName()) &amp;&amp; m.isStatic() &amp;&amp; m.isPublic()
141 <span class="bold"><b>)</b></span> {
142     pickFound = true;
143 }
144 </pre></td></tr></table></div><p></p></li><li><p><a name="wrap-grouping-paren"></a>
145 Wrap grouping parentheses
146 </p><p>
147 Lets you control the wrapping behaviour for grouping parentheses. If enabled,
148 linebreaks are inserted after left and before right parentheses of grouped
149 expressions to let the expression(s) stand out.
150 </p><div class="example"><a name="ex-wrap-grouping-no"></a><p class="title"><b>Example&nbsp;4.73.&nbsp;Grouping parentheses (standard indented)</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
151 if (
152     !<span class="bold"><b>(</b></span>(bankverbindung instanceof ObjectValue)
153     || (bankverbindung instanceof PrimitiveValue<span class="bold"><b>)</b></span>)
154 ) {
155     throw new RuntimeException();
156 }
157 </pre></td></tr></table></div><p></p><div class="example"><a name="ex-wrap-grouping"></a><p class="title"><b>Example&nbsp;4.74.&nbsp;Wrapped grouping parentheses (standard indented)</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
158 if (
159     !<span class="bold"><b>(</b></span>
160         (bankverbindung instanceof ObjectValue)
161         || (bankverbindung instanceof TkPrimitiveValue)
162     <span class="bold"><b>)</b></span>
163 ) {
164     throw new RuntimeException();
165 }
166 </pre></td></tr></table></div><p></p></li><li><p><a name="wrap-after-assignment"></a>
167 Wrap after assignments
168 </p><p>
169 Lets you control the way wrapping takes action for assignments. If left disabled,
170 line wrapping preferably occurs as part of the expression printing. Otherwise
171 wrapping will be performed right after the assignment.
172 </p><div class="example"><a name="ex-wrap-assignment-no"></a><p class="title"><b>Example&nbsp;4.75.&nbsp;Don't wrap after assignment</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
173 this.interessentenNr = new InteressentenNr(
174         Fachschluesselerzeugung.createService()
175         .getNeuerFachschluessel(
176             FachschluesselerzeugungService.FACHSCHLUESSEL_KZ_INTERESSENT
177         )
178     );
179 </pre></td></tr></table></div><p></p><div class="example"><a name="ex-wrap-assignment"></a><p class="title"><b>Example&nbsp;4.76.&nbsp;Wrap after assignment</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
180 this.interessentenNr =
181     new InteressentenNr(
182         Fachschluesselerzeugung.createService()
183         .getNeuerFachschluessel(
184             FachschluesselerzeugungService.FACHSCHLUESSEL_KZ_INTERESSENT
185         )
186     );
187 </pre></td></tr></table></div><p></p></li></ul></div><p>
188 Line wrapping will often occur with statements that consist of several (possibly long)
189 expressions. Here you specify whether line wrapping should occur
190 before or after the expression operator.
191 </p><div class="itemizedlist"><ul type="disc"><li><p><a name="wrap-before"></a>
192 Wrap before operators
193 </p><a class="indexterm" name="d0e2926"></a><p>
194 If enabled, lines will be wrapped before the operator. The operator will be
195 printed with the continuation line.
196 </p><div class="example"><a name="ex-wrap-before"></a><p class="title"><b>Example&nbsp;4.77.&nbsp;Wrap before operators</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
197 if ((condition1 &amp;&amp; condition2)
198     || (condition3 &amp;&amp; condition4)
199     || !(condition5 &amp;&amp; condition6))
200 {
201     doSomethingAboutIt();
202 }
203 </pre></td></tr></table></div><p></p></li><li><p><a name="wrap-after"></a>
204 Wrap after operators
205 </p><a class="indexterm" name="d0e2942"></a><p>
206 If enabled, lines will be wrapped after the operator.
207 </p><div class="example"><a name="ex-wrap-after"></a><p class="title"><b>Example&nbsp;4.78.&nbsp;Wrap after operators</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
208 if ((condition1 &amp;&amp; condition2) ||
209     (condition3 &amp;&amp; condition4) ||
210     !(condition5 &amp;&amp; condition6))
211 {
212     doSomethingAboutIt();
213 }
214 </pre></td></tr></table></div><p>
215 If you happen to use Sun Brace styling, you might want to enable
216 <a href="indentation.html#indentation-misc-continuation-if">continuation indentation</a>
217 to let the statement body stand out.
218 </p><p></p></li></ul></div></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="wrap-always"></a>4.3.4.2.&nbsp;Always</h4></div></div><div></div></div><p>
219 Lets you choose the statements/expressions that are to be wrapped always.
220 </p><div class="sect4" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="wrap-always-pane"></a>4.3.4.2.1.&nbsp;Wrap always</h5></div></div><div></div></div><p>
221 For certain cases, the need may arise to force line wrapping to achieve a
222 consistent, uniform look. If you enable any of the following switches, line wrapping
223 will occur for the specified cases no matter whether you have enabled general
224 line wrapping or not.
225 </p><div class="itemizedlist"><ul type="disc"><li><p><a name="wrap-before-extends"></a>
226 Before extends keyword
227 </p><p>
228 Forces a line break before the extends keyword of a class/interface declaration.
229 </p><div class="example"><a name="ex-wrap-before-extends"></a><p class="title"><b>Example&nbsp;4.79.&nbsp;Class/Interface extends keyword</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
230 public interface Channel extends Puttable, Takable
231 {
232     ...
233 }
234 </pre></td></tr></table></div><p></p><div class="example"><a name="ex-wrap-before-extends-wrapped"></a><p class="title"><b>Example&nbsp;4.80.&nbsp;Class/Interface extends keyword (wrapped)</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
235 public interface Channel
236     extends Puttable, Takable
237 {
238     ...
239 }
240 </pre></td></tr></table></div><p>
241 You can control the space printed before the keyword with the
242 <a href="indentation.html#indentation-sizes-extends">Extends Indent</a> setting.
243 If you leave the switch disabled, the clause will be printed with
244 <a href="indentation.html#indentation-sizes-general">standard indentation</a>.
245 </p></li><li><p>
246 After extends types
247 </p><p>
248 Forces a line wrap after each type name of the extended classes.
249 </p><div class="example"><a name="ex-wrap-after-extends"></a><p class="title"><b>Example&nbsp;4.81.&nbsp;Class/Interface extends types</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
250 public interface Channel extends Puttable, Takable
251 {
252     ...
253 }
254 </pre></td></tr></table></div><p></p><div class="example"><a name="ex-wrap-after-extends-wrapped"></a><p class="title"><b>Example&nbsp;4.82.&nbsp;Class/Interface extends types (wrapped)</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
255 public interface Channel extends Puttable,
256                                  Takable
257 {
258     ...
259 }
260 </pre></td></tr></table></div><p></p></li><li><p><a name="wrap-before-implements"></a>
261 Before implements keyword
262 </p><p>
263 Forces a line break before the implements keyword of a class declaration.
264 </p><div class="example"><a name="ex-wrap-before-implements"></a><p class="title"><b>Example&nbsp;4.83.&nbsp;implements keyword</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
265 public class SynchronizedBoolean implements Comparable, Cloneable
266 {
267     ...
268 }
269 </pre></td></tr></table></div><p></p><div class="example"><a name="ex-wrap-before-implements-wrapped"></a><p class="title"><b>Example&nbsp;4.84.&nbsp;implements keyword (wrapped)</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
270 public class SynchronizedBoolean
271     implements Comparable, Cloneable
272 {
273     ...
274 }
275 </pre></td></tr></table></div><p>
276 You can control the space printed before the keyword with the
277 <a href="indentation.html#indentation-sizes-implements">Implements Indent</a> setting.
278 If you leave the switch disabled, the clause will be printed with
279 <a href="indentation.html#indentation-sizes-general">standard indentation</a>.
280 </p></li><li><p><a name="wrap-after-implements"></a>
281 After implements types
282 </p><p>
283 Forces a line wrap after each type name of the implemented classes.
284 </p><div class="example"><a name="ex-wrap-implements-types"></a><p class="title"><b>Example&nbsp;4.85.&nbsp;Class implements types</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
285 public class SynchronizedBoolean implements Comparable, Cloneable
286 {
287     ...
288 }
289 </pre></td></tr></table></div><p></p><div class="example"><a name="ex-wrap-implements-types-wrapped"></a><p class="title"><b>Example&nbsp;4.86.&nbsp;Class implements types (wrapped)</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
290 public class SynchronizedBoolean implements Comparable,
291                                             Cloneable
292 {
293     ...
294 }
295 </pre></td></tr></table></div><p></p></li><li><p><a name="wrap-before-throws"></a>
296 Before throws keyword
297 </p><p>
298 Forces a line break before the throws keyword of a method/constructor declaration.
299 </p><div class="example"><a name="ex-wrap-before-throws"></a><p class="title"><b>Example&nbsp;4.87.&nbsp;throws keyword</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
300 private File getDestinationFile(File dest, String packageName,
301                                 String filename) throws IOException
302 {
303     ...
304 }
305 </pre></td></tr></table></div><p></p><div class="example"><a name="ex-wrap-before-throws-wrapped"></a><p class="title"><b>Example&nbsp;4.88.&nbsp;throws keyword (wrapped)</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
306 private File getDestinationFile(File dest, String packageName,
307                                 String filename)
308                          throws IOException
309 {
310     ...
311 }
312 </pre></td></tr></table></div><p>
313 You can control the space printed before the keyword with the
314 <a href="indentation.html#indentation-sizes-throws">Throws Indent</a> setting. If you
315 leave the switch disabled, Jalopy tries to align the throws clause with the
316 method/constructor parameters as with the above example. If no alignment is
317 possible, the clause will be printed with
318 <a href="indentation.html#indentation-sizes-general">standard indentation</a>.
319 </p></li><li><p><a name="wrap-after-throws"></a>
320 After throws types
321 </p><p>
322 Forces a line wrap after each type name of the throws clause of a method/constructor declaration.
323 </p><div class="example"><a name="ex-wrap-after-throws-types"></a><p class="title"><b>Example&nbsp;4.89.&nbsp;throws types</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
324 private File getDestinationFile(File dest, String packageName,
325                                 String filename)
326                          throws IOException, FooException
327 {
328     ...
329 }
330 </pre></td></tr></table></div><p></p><div class="example"><a name="ex-wrap-after-throws-types-wrapped"></a><p class="title"><b>Example&nbsp;4.90.&nbsp;throws types (wrapped)</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
331 private File getDestinationFile(File dest, String packageName,
332                                 String filename)
333                          throws IOException,
334                                 FooException
335 {
336     ...
337 }
338 </pre></td></tr></table></div><p></p><div class="example"><a name="ex-wrap-after-throws-types-wrapped-standard"></a><p class="title"><b>Example&nbsp;4.91.&nbsp;throws types (standard indented)</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
339 private static final File getDestinationFile(File dest, String packageName,
340                                              String filename)
341     throws IOException,
342           FooException
343 {
344     ...
345 }
346 </pre></td></tr></table></div><p></p></li><li><p><a name="wrap-method-params"></a>
347 Method Def parameters
348 </p><a class="indexterm" name="d0e3103"></a><a class="indexterm" name="d0e3106"></a><p>
349 Forces a line wrap after each parameter of a method or constructor declaration.
350 </p><div class="example"><a name="ex-wrap-method-params"></a><p class="title"><b>Example&nbsp;4.92.&nbsp;Method declaration parameters</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
351 public static File create(File file, File directory, int backupLevel)
352                    throws IOException
353 {
354     ...
355 }
356 </pre></td></tr></table></div><p></p><div class="example"><a name="ex-wrap-method-params-wrapped"></a><p class="title"><b>Example&nbsp;4.93.&nbsp;Method declaration parameters (wrapped)</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
357 public static File create(File file,
358                           File directory,
359                           int backupLevel)
360                    throws IOException
361 {
362     ...
363 }
364 </pre></td></tr></table></div></li><li><p><a name="wrap-call-chained"></a>
365 Method Call chains
366 </p><p>
367 Forces a line wrap after each chained method call.
368 </p><div class="example"><a name="ex-wrap-call-chained"></a><p class="title"><b>Example&nbsp;4.94.&nbsp;Chained Method Call</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
369 message.format(ERROR_SOURCE_ADDRESS).param (m_session.getAimName()).send();
370 </pre></td></tr></table></div><p></p><div class="example"><a name="ex-wrap-call-chained-wrapped"></a><p class="title"><b>Example&nbsp;4.95.&nbsp;Chained Method Call (wrapped)</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
371 message.format(ERROR_SOURCE_ADDRESS)
372        .param (m_session.getAimName())
373        .send();
374 </pre></td></tr></table></div><p></p></li><li><p><a name="wrap-method-call-params"></a>
375 Method Call parameters
376 </p><p>
377 Forces a line wrap after each parameter of a method call.
378 </p><div class="example"><a name="ex-wrap-method-call"></a><p class="title"><b>Example&nbsp;4.96.&nbsp;Method call</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
379 doSomething();
380 _userDatabase.addUser("Name", encryptPassword("password", _secretKey),
381                       "123 fake address");
382 doSomethingElse();
383 </pre></td></tr></table></div><p></p><div class="example"><a name="ex-wrap-method-call-wrapped"></a><p class="title"><b>Example&nbsp;4.97.&nbsp;Method call (wrapped)</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
384 doSomething();
385 _userDatabase.addUser("Name",
386                       encryptPassword("password",
387                                       _secretKey),
388                       "123 fake address");
389 doSomethingElse();
390 </pre></td></tr></table></div><p></p></li><li><p>
391 Method Call parameters if nested
392 </p><p>
393 Forces a line wrap after each parameter of a method call if at least one
394 parameter is a method call itself. This option can prove especially useful if
395 one prefers to nest method calls as parameters rather than adding local
396 variables just to hold those parameters.
397 </p><div class="example"><a name="ex-wrap-method-call-nested-wrapped"></a><p class="title"><b>Example&nbsp;4.98.&nbsp;Method call if nested (wrapped)</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
398 doSomething();
399 _userDatabase.addUser("Name",
400                       encryptPassword("password", _secretKey),
401                       "123 fake address");
402 doSomethingElse();
403 </pre></td></tr></table></div><p></p></li><li><p>
404 Ternary expression question mark (<tt class="literal">?</tt>)
405 </p><p>
406 Forces a line wrap after the first operand.
407 </p><div class="example"><a name="ex-wrap-ternary-expr"></a><p class="title"><b>Example&nbsp;4.99.&nbsp;Ternary expression question mark (deep indented)</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
408 String comma = spaceAfterComma
409                ? COMMA_SPACE : COMMA;
410 </pre></td></tr></table></div><p>
411 Indentation for consecutive lines depends on the used <a href="indentation.html#indentation-policy" title="4.3.3.1.1.&nbsp;Policy">indenatation policy</a>.
412 You may further want to use <a href="indentation.html#indentation-misc-ternary-if-else">continuation indentation</a>.
413 </p></li><li><p><a name="wrap-ternary-colon"></a>
414 Ternary expression colon (<tt class="literal">:</tt>)
415 </p><p>
416 Forces a line wrap after the second operand.
417 </p><div class="example"><a name="ex-wrap-ternary-values"></a><p class="title"><b>Example&nbsp;4.100.&nbsp;Ternary expression colon</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
418 String comma = spaceAfterComma ? COMMA_SPACE
419                                : COMMA;
420 </pre></td></tr></table></div><p>
421 If both switches are disabled, ternary expressions are printed in one line (if everything fits in one line, that is).
422 </p><div class="example"><a name="ex-wrap-ternary"></a><p class="title"><b>Example&nbsp;4.101.&nbsp;Ternary expressions</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
423 String comma = spaceAfterComma ? COMMA_SPACE : COMMA;
424 </pre></td></tr></table></div><p>
425 If both switches are enabled, you can force a style like the following:
426 </p><div class="example"><a name="ex-wrap-ternary-continued"></a><p class="title"><b>Example&nbsp;4.102.&nbsp;Ternary expressions (continued)</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
427 String comma = spaceAfterComma
428     ? COMMA_SPACE
429     : COMMA;
430 </pre></td></tr></table></div><p></p></li><li><p><a name="wrap-always-label"></a>
431 Labels
432 </p><a class="indexterm" name="d0e3222"></a><a class="indexterm" name="d0e3225"></a><p>
433 Forces a line wrap after labels.
434 </p><div class="example"><a name="ex-wrap-always-label"></a><p class="title"><b>Example&nbsp;4.103.&nbsp;Label</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
435 // advance to the first CLASS_DEF or INTERFACE_DEF
436 LOOP:   for (AST child = tree.getFirstChild();
437              child != null;
438              child = child.getNextSibling())
439         {
440             switch (child.getType())
441             {
442                 case JavaTokenTypes.CLASS_DEF :
443                 case JavaTokenTypes.INTERFACE_DEF :
444                     next = child;
445                     break LOOP;
446
447                 default :
448                     break;
449             }
450         }
451 </pre></td></tr></table></div><p></p><div class="example"><a name="ex-wraping-always-label-wrapped"></a><p class="title"><b>Example&nbsp;4.104.&nbsp;Label (wrapped)</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
452 // advance to the first CLASS_DEF or INTERFACE_DEF
453 LOOP:
454         for (AST child = tree.getFirstChild();
455              child != null;
456              child = child.getNextSibling())
457         {
458             switch (child.getType())
459             {
460                 case JavaTokenTypes.CLASS_DEF :
461                 case JavaTokenTypes.INTERFACE_DEF :
462                     next = child;
463                     break LOOP;
464
465                 default :
466                     break;
467             }
468         }
469 </pre></td></tr></table></div><p></p></li></ul></div></div><div class="sect4" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="wrap-always-exceed"></a>4.3.4.2.2.&nbsp;Wrap always when exceed</h5></div></div><div></div></div><p>
470 Lets you force wrapping for <span class="emphasis"><em>all</em></span> parameter or expressions if
471 the parameter or expression list would otherwise exceed the maximal line length.
472 If you enable any of the following switches, line wrapping
473 may occur for the specified cases no matter whether you have enabled general
474 line wrapping or not.
475 </p><div class="itemizedlist"><ul type="disc"><li><p><a name="wrap-always-extends"></a>
476 After extends types
477 </p><p>
478 Forces a line wrap after each type name of the <tt class="literal">extends</tt> clause of a
479 class/interface declaration if the whole clause does not fit in one line.
480 </p><div class="example"><a name="ex-wrap-always-extends"></a><p class="title"><b>Example&nbsp;4.105.&nbsp;Extends types wrapped as needed (standard indented)</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
481 public interface VeryImportantInterface                        |
482     extends LeastImportantInterface, LessImportantInterface,   |
483         ImportantInterface                                     |
484 }                                                              |
485     ...                                                        |
486 }                                                              |
487 </pre></td></tr></table></div><p></p><div class="example"><a name="wrap-always-extends-enabled"></a><p class="title"><b>Example&nbsp;4.106.&nbsp;Extends types wrapping forced (standard indented)</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
488 public interface VeryImportantInterface                        |
489     extends LeastImportantInterface,                           |
490         LessImportantInterface,                                |
491         ImportantInterface                                     |
492 }                                                              |
493     ...                                                        |
494 }                                                              |
495 </pre></td></tr></table></div></li><li><p><a name="wrap-always-implements"></a>
496 After implements types
497 </p><p>
498 Forces a line wrap after each type name of the <tt class="literal">implements</tt> clause of a
499 class/interface declaration if the whole clause does not fit in one line.
500 </p><div class="example"><a name="ex-wrap-always-implements"></a><p class="title"><b>Example&nbsp;4.107.&nbsp;Implements types wrapped as needed (standard indented)</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
501 public class ImportantClass                                    |
502     implements ImportantInterface, Serializable, Comparable,   |
503         Cloneable                                              |
504 }                                                              |
505     ...                                                        |
506 }                                                              |
507 </pre></td></tr></table></div><p></p><div class="example"><a name="wrap-always-implements-enabled"></a><p class="title"><b>Example&nbsp;4.108.&nbsp;Implements types wrapping forced (standard indented)</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
508 public class ImportantClass                                    |
509     implements ImportantInterface,                             |
510         Serializable,                                          |
511         Comparable,                                            |
512         Cloneable                                              |
513 }                                                              |
514     ...                                                        |
515 }                                                              |
516 </pre></td></tr></table></div></li><li><p><a name="wrap-always-throws"></a>
517 After throws types
518 </p><p>
519 Forces a line wrap after each type name of the <tt class="literal">throws</tt> clause of a
520 method/constructor declaration if the whole clause does not fit in one line.
521 </p><div class="example"><a name="ex-wrap-always-throws"></a><p class="title"><b>Example&nbsp;4.109.&nbsp;Throws types wrapped as needed (deep indented)</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
522 private File getDestinationFile(File dest, String packageName, |
523                                 String filename)               |
524                          throws IOException, FooException,     |
525                                 FooBarException                |
526 {                                                              |
527     ...                                                        |
528 }                                                              |
529 </pre></td></tr></table></div><p></p><div class="example"><a name="wrap-always-throws-enabled"></a><p class="title"><b>Example&nbsp;4.110.&nbsp;Throws types wrapping forced (deep indented)</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
530 private File getDestinationFile(File dest, String packageName, |
531                                 String filename)               |
532                          throws IOException,                   |
533                                 FooException,                  |
534                                 FooBarException                |
535 {                                                              |
536     ...                                                        |
537 }                                                              |
538 </pre></td></tr></table></div></li><li><p><a name="wrap-always-param"></a>
539 After parameters/expressions
540 </p><p>
541 If enabled, this switch will cause all parameters/expressions to be
542 wrapped, if and only if the first parameter/expression of the list has been
543 wrapped.
544 </p><div class="example"><a name="ex-wrap-all"></a><p class="title"><b>Example&nbsp;4.111.&nbsp;Expression list (all wrapped)</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
545 if (
546     "pick".equals(m.getName()) &amp;&amp;
547     m.isStatic() &amp;&amp;
548     m.isPublic()
549 ) {
550     pickFound = true;
551 }
552 else if (
553     "pick".equals(m.getName()) &amp;&amp;
554     m.isStatic() &amp;&amp;
555     m.isPublic()
556 ) {
557     pickFound = true;
558 }
559 </pre></td></tr></table></div><p></p></li></ul></div></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="wrap-misc"></a>4.3.4.3.&nbsp;Misc</h4></div></div><div></div></div><p>Lets you control miscellaneous wrapping settings.</p><div class="sect4" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="wrap-misc-arrays"></a>4.3.4.3.1.&nbsp;Arrays</h5></div></div><div></div></div><p>Contains options to control the wrapping for arrays.</p><div class="itemizedlist"><ul type="disc"><li><p>Wrap as needed</p><p>Enabling this options means array elements will be wrapped so that they
560 will be limited within the current <a href="wrapping.html#wrap-sizes-line">line length</a> setting.</p><div class="example"><a name="ex-wrap-arrays-as-needed"></a><p class="title"><b>Example&nbsp;4.112.&nbsp;Wrap as needed</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
561 String[] constraints = {                                               |
562     "patternPanel.top=form.top", "patternPanel.hcenter=form.hcenter",  |
563     "okButton.top=patternPanel.bottom+20",                             |
564     "okButton.right=form.hcenter-10", "cancelButton.vcenter=10",       |
565     "cancelButton.left=10"                                             |
566 };                                                                     |
567 </pre></td></tr></table></div><p></p></li><li><p>Wrap after element</p><p>Forces a newline after every  n-th element.</p><div class="example"><a name="ex-wrap-arrays-after-one"></a><p class="title"><b>Example&nbsp;4.113.&nbsp;Wrap after element 1</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
568 String[] constraints = {                                               |
569     "patternPanel.top=form.top",                                       |
570     "patternPanel.hcenter=form.hcenter",                               |
571     "okButton.top=patternPanel.bottom+20",                             |
572     "okButton.right=form.hcenter-10",                                  |
573     "cancelButton.vcenter=10",                                         |
574     "cancelButton.left=10"                                             |
575 };                                                                     |
576 </pre></td></tr></table></div><p></p><div class="example"><a name="ex-wrap-arrays-after-two"></a><p class="title"><b>Example&nbsp;4.114.&nbsp;Wrap after element 2</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
577 String[] constraints = {                                               |
578     "patternPanel.top=form.top", "patternPanel.hcenter=form.hcenter",
579     "okButton.top=patternPanel.bottom+20", "okButton.right=form.hcenter-10",
580     "cancelButton.vcenter=10", "cancelButton.left=10"                  |
581 };                                                                     |
582 </pre></td></tr></table></div><p>
583 If both options are left disabled, the array elements will be printed in one
584 line, right after the left curly brace.
585 </p></li></ul></div></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="indentation.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="printer.html">Up</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="separation.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">4.3.3.&nbsp;Indentation&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;4.3.5.&nbsp;Blank Lines</td></tr></table></div></td></tr></table></td></tr><tr><td bgcolor="#eeeecc" height="17" style="font-size:9px;padding-left:5px"><a href="#toppage">to top</a></td></tr><tr><td height="30"><br></td></tr><tr><td height="3"></td></tr><tr><td bgcolor="#336699" height="1"></td></tr><tr><td height="1"></td></tr><tr><td bgcolor="#336699" height="16"></td></tr><tr><td bgcolor="#ff9966" height="4"></td></tr><tr><td class="footer" align="center" height="15" valign="middle">
586             Copyright &copy; 2001-2004, <a class="footer" href="./contact.html">Marco Hunsicker</a>. All rights reserved. Hosted by <a href="http://sourceforge.net">SourceForge.net</a></td></tr></tbody></table><img src="http://sourceforge.net/sflogo.php?group_id=45216&amp;type=1" width="1" height="1" border="0" hspace="0" vspace="0" alt=""></body></html>