update author list in license for (JAL-826)
[jalview.git] / utils / jalopy / docs / wrapping.html
1
2 <!--
3  * Jalview - A Sequence Alignment Editor and Viewer (Version 2.5)
4  * Copyright (C) 2011 J Procter, AM Waterhouse, J Engelhardt, LM Lui, G Barton, M Clamp, S Searle
5  * 
6  * This file is part of Jalview.
7  * 
8  * Jalview is free software: you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License 
10  * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
11  * 
12  * Jalview is distributed in the hope that it will be useful, but 
13  * WITHOUT ANY WARRANTY; without even the implied warranty 
14  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
15  * PURPOSE.  See the GNU General Public License for more details.
16  * 
17  * You should have received a copy of the GNU General Public License along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
18 -->
19     <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
20   <html><head>
21       <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
22    <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">
23       <meta name="description" content="Jalopy Java Source Code Formatter Beautifier Pretty Printer"> 
24       <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))'> 
25     </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;
26                     <a href="./download.html" class="navlink">Download</a> &#149;
27                     <a href="./docs.html" class="navlink">Documentation</a> &#149;
28                     <a href="./plugins.html" class="navlink">Plug-ins</a> &#149;
29                     <a href="./links.html" class="navlink">Links</a> &#149;
30                     <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> |
31                     <a href="./history.html" class="navlink2">History</a> |
32                     <a href="./manual.html" class="navlink2">Manual</a> |
33                     <a href="./faq.html" class="navlink2">FAQ</a> |
34                     <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">
35                     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>
36 Controls when and how lines gets wrapped.
37 </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>
38 Lets you control the general line wrapping options.
39 </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>
40 Lets you control the general line wrapping options.
41 </p><div class="itemizedlist"><ul type="disc"><li><p><a name="wrap-use"></a>
42 Wrap lines
43 </p><p>
44 Enables or disables the automatic line wrapping.
45 </p></li><li><p><a name="wrap-sizes-line"></a>
46 Line length
47 </p><p>
48 Lets you specify the maximum line length. Jalopy tries (more or less) to limit
49 each line within the given length.
50 </p><a class="indexterm" name="d0e2686"></a><a class="indexterm" name="d0e2691"></a></li><li><p><a name="wrap-sizes-deep"></a>
51 Deep indent
52 </p><a class="indexterm" name="d0e2697"></a><a class="indexterm" name="d0e2702"></a><p>
53 Specifies the length after which a gap will be identified as "deep indented".
54 Jalopy tries to avoid these kind of gaps and will force a line break or apply
55 another indentation scheme, if this size is exceeded.
56 </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">
57                                                             |                  |
58     protected static synchronized File getANewDestinationFile(File dest,       |
59                                                             | String packageName,
60                                                             | String filename) |
61 |----------------- the gap ---------------------------|throws IOException      |
62     {                                                       |                  |
63     }                                                       |                  |
64                                                             |                  |
65                                                             60                 79
66 </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">
67                                                   |                            |
68     protected static synchronized File getANewDestinationFile(File dest,       |
69                                                   |           String packageName,
70                                                   |           String filename) |
71 |----------------- the gap ---------------------------|throws IOException      |
72     {                                             |                            |
73     }                                             |                            |
74                                                   |                            |
75                                                   50                           79
76 </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>
77 Lets you fine-control the wrapping behaviour.
78 </p><div class="itemizedlist"><ul type="disc"><li><p><a name="wrap-left-parenthesis"></a>
79 Wrap after left parenthesis
80 </p><p>
81 Lets you control the wrapping behaviour for statement and expression lists.
82 </p><p>
83 If left disabled, the first line break will be preferably inserted
84 behind the first parameter or expression and only occurs after the left
85 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">
86                                                                                |
87 appServerReferencesVector.add<span class="bold"><b>(</b></span>new AppServerReference<span class="bold"><b>(</b></span>
88         "RemoteApplicationManager",                                            |
89         poa.create_reference_with_id<span class="bold"><b>(</b></span>         |
90             "RemoteApplicationManager".getBytes(),                             |
91             RemoteApplicationManagerHelper.id())));                            |
92                                                                                |
93 </pre></td></tr></table></div><p>
94 Otherwise the line break will always occur behind the left parenthesis.
95 </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">
96 appServerReferencesVector.add<span class="bold"><b>(</b></span>
97     new AppServerReference<span class="bold"><b>(</b></span>
98         "RemoteApplicationManager",
99         poa.create_reference_with_id<span class="bold"><b>(</b></span>
100             "RemoteApplicationManager".getBytes(),
101             RemoteApplicationManagerHelper.id())));
102 </pre></td></tr></table></div><p>
103 This switch affects the output style of method/constructor declarations and
104 calls, creator statements and <tt class="literal">if-else</tt>, <tt class="literal">for</tt>,
105 <tt class="literal">while</tt> and <tt class="literal">do-while</tt> blocks.
106 </p><p>
107 As per default, the wrapped lines will be indended using
108 <a href="indentation.html#indentation-policy-standard">Standard indentation</a>, but you
109 may want to apply another indentation scheme. See
110 <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.
111 </p><p></p></li><li><p><a name="wrap-right-parenthesis"></a>
112 Wrap before right parenthesis
113 </p><p>
114 Forces a line break before the right parenthesis of parameter or expression lists.
115 The parenthesis will be intended according to the current indentation level.
116 Only takes action if at least one parameter/expression was indeed wrapped.
117 </p><p>
118 This switch affects the output style of method/constructor declarations and
119 calls, creator statements and <tt class="literal">if-else</tt>, <tt class="literal">for</tt>,
120 <tt class="literal">while</tt> and <tt class="literal">do-while</tt> blocks.
121 </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">
122 public void severalParameters(String one,
123                               int two,
124                               String three,
125                               StringObject four,
126                               AnotherObject five<span class="bold"><b>)</b></span> {
127 }
128 </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">
129 public void severalParameters(String one,
130                               int two,
131                               String three,
132                               StringObject four,
133                               AnotherObject five
134 <span class="bold"><b>)</b></span> {
135 }
136 </pre></td></tr></table></div><p>
137 Both switches combined, looks like the following example:
138 </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">
139 appServerReferencesVector.add<span class="bold"><b>(</b></span>
140     new AppServerReference<span class="bold"><b>(</b></span>
141         "RemoteApplicationManager",
142         poa.create_reference_with_id<span class="bold"><b>(</b></span>
143             "RemoteApplicationManager".getBytes(),
144             RemoteApplicationManagerHelper.id()
145         <span class="bold"><b>)</b></span>
146     <span class="bold"><b>)</b></span>
147 <span class="bold"><b>)</b></span>;
148 </pre></td></tr></table></div><p>
149 For blocks the output may go like this:
150 </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">
151 if <span class="bold"><b>(</b></span>
152     "pick".equals(m.getName()) &amp;&amp; m.isStatic() &amp;&amp; m.isPublic()
153 <span class="bold"><b>)</b></span> {
154     pickFound = true;
155 }
156 else if <span class="bold"><b>(</b></span>
157     "pick".equals(m.getName()) &amp;&amp; m.isStatic() &amp;&amp; m.isPublic()
158 <span class="bold"><b>)</b></span> {
159     pickFound = true;
160 }
161 </pre></td></tr></table></div><p></p></li><li><p><a name="wrap-grouping-paren"></a>
162 Wrap grouping parentheses
163 </p><p>
164 Lets you control the wrapping behaviour for grouping parentheses. If enabled,
165 linebreaks are inserted after left and before right parentheses of grouped
166 expressions to let the expression(s) stand out.
167 </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">
168 if (
169     !<span class="bold"><b>(</b></span>(bankverbindung instanceof ObjectValue)
170     || (bankverbindung instanceof PrimitiveValue<span class="bold"><b>)</b></span>)
171 ) {
172     throw new RuntimeException();
173 }
174 </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">
175 if (
176     !<span class="bold"><b>(</b></span>
177         (bankverbindung instanceof ObjectValue)
178         || (bankverbindung instanceof TkPrimitiveValue)
179     <span class="bold"><b>)</b></span>
180 ) {
181     throw new RuntimeException();
182 }
183 </pre></td></tr></table></div><p></p></li><li><p><a name="wrap-after-assignment"></a>
184 Wrap after assignments
185 </p><p>
186 Lets you control the way wrapping takes action for assignments. If left disabled,
187 line wrapping preferably occurs as part of the expression printing. Otherwise
188 wrapping will be performed right after the assignment.
189 </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">
190 this.interessentenNr = new InteressentenNr(
191         Fachschluesselerzeugung.createService()
192         .getNeuerFachschluessel(
193             FachschluesselerzeugungService.FACHSCHLUESSEL_KZ_INTERESSENT
194         )
195     );
196 </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">
197 this.interessentenNr =
198     new InteressentenNr(
199         Fachschluesselerzeugung.createService()
200         .getNeuerFachschluessel(
201             FachschluesselerzeugungService.FACHSCHLUESSEL_KZ_INTERESSENT
202         )
203     );
204 </pre></td></tr></table></div><p></p></li></ul></div><p>
205 Line wrapping will often occur with statements that consist of several (possibly long)
206 expressions. Here you specify whether line wrapping should occur
207 before or after the expression operator.
208 </p><div class="itemizedlist"><ul type="disc"><li><p><a name="wrap-before"></a>
209 Wrap before operators
210 </p><a class="indexterm" name="d0e2926"></a><p>
211 If enabled, lines will be wrapped before the operator. The operator will be
212 printed with the continuation line.
213 </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">
214 if ((condition1 &amp;&amp; condition2)
215     || (condition3 &amp;&amp; condition4)
216     || !(condition5 &amp;&amp; condition6))
217 {
218     doSomethingAboutIt();
219 }
220 </pre></td></tr></table></div><p></p></li><li><p><a name="wrap-after"></a>
221 Wrap after operators
222 </p><a class="indexterm" name="d0e2942"></a><p>
223 If enabled, lines will be wrapped after the operator.
224 </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">
225 if ((condition1 &amp;&amp; condition2) ||
226     (condition3 &amp;&amp; condition4) ||
227     !(condition5 &amp;&amp; condition6))
228 {
229     doSomethingAboutIt();
230 }
231 </pre></td></tr></table></div><p>
232 If you happen to use Sun Brace styling, you might want to enable
233 <a href="indentation.html#indentation-misc-continuation-if">continuation indentation</a>
234 to let the statement body stand out.
235 </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>
236 Lets you choose the statements/expressions that are to be wrapped always.
237 </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>
238 For certain cases, the need may arise to force line wrapping to achieve a
239 consistent, uniform look. If you enable any of the following switches, line wrapping
240 will occur for the specified cases no matter whether you have enabled general
241 line wrapping or not.
242 </p><div class="itemizedlist"><ul type="disc"><li><p><a name="wrap-before-extends"></a>
243 Before extends keyword
244 </p><p>
245 Forces a line break before the extends keyword of a class/interface declaration.
246 </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">
247 public interface Channel extends Puttable, Takable
248 {
249     ...
250 }
251 </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">
252 public interface Channel
253     extends Puttable, Takable
254 {
255     ...
256 }
257 </pre></td></tr></table></div><p>
258 You can control the space printed before the keyword with the
259 <a href="indentation.html#indentation-sizes-extends">Extends Indent</a> setting.
260 If you leave the switch disabled, the clause will be printed with
261 <a href="indentation.html#indentation-sizes-general">standard indentation</a>.
262 </p></li><li><p>
263 After extends types
264 </p><p>
265 Forces a line wrap after each type name of the extended classes.
266 </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">
267 public interface Channel extends Puttable, Takable
268 {
269     ...
270 }
271 </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">
272 public interface Channel extends Puttable,
273                                  Takable
274 {
275     ...
276 }
277 </pre></td></tr></table></div><p></p></li><li><p><a name="wrap-before-implements"></a>
278 Before implements keyword
279 </p><p>
280 Forces a line break before the implements keyword of a class declaration.
281 </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">
282 public class SynchronizedBoolean implements Comparable, Cloneable
283 {
284     ...
285 }
286 </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">
287 public class SynchronizedBoolean
288     implements Comparable, Cloneable
289 {
290     ...
291 }
292 </pre></td></tr></table></div><p>
293 You can control the space printed before the keyword with the
294 <a href="indentation.html#indentation-sizes-implements">Implements Indent</a> setting.
295 If you leave the switch disabled, the clause will be printed with
296 <a href="indentation.html#indentation-sizes-general">standard indentation</a>.
297 </p></li><li><p><a name="wrap-after-implements"></a>
298 After implements types
299 </p><p>
300 Forces a line wrap after each type name of the implemented classes.
301 </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">
302 public class SynchronizedBoolean implements Comparable, Cloneable
303 {
304     ...
305 }
306 </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">
307 public class SynchronizedBoolean implements Comparable,
308                                             Cloneable
309 {
310     ...
311 }
312 </pre></td></tr></table></div><p></p></li><li><p><a name="wrap-before-throws"></a>
313 Before throws keyword
314 </p><p>
315 Forces a line break before the throws keyword of a method/constructor declaration.
316 </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">
317 private File getDestinationFile(File dest, String packageName,
318                                 String filename) throws IOException
319 {
320     ...
321 }
322 </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">
323 private File getDestinationFile(File dest, String packageName,
324                                 String filename)
325                          throws IOException
326 {
327     ...
328 }
329 </pre></td></tr></table></div><p>
330 You can control the space printed before the keyword with the
331 <a href="indentation.html#indentation-sizes-throws">Throws Indent</a> setting. If you
332 leave the switch disabled, Jalopy tries to align the throws clause with the
333 method/constructor parameters as with the above example. If no alignment is
334 possible, the clause will be printed with
335 <a href="indentation.html#indentation-sizes-general">standard indentation</a>.
336 </p></li><li><p><a name="wrap-after-throws"></a>
337 After throws types
338 </p><p>
339 Forces a line wrap after each type name of the throws clause of a method/constructor declaration.
340 </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">
341 private File getDestinationFile(File dest, String packageName,
342                                 String filename)
343                          throws IOException, FooException
344 {
345     ...
346 }
347 </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">
348 private File getDestinationFile(File dest, String packageName,
349                                 String filename)
350                          throws IOException,
351                                 FooException
352 {
353     ...
354 }
355 </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">
356 private static final File getDestinationFile(File dest, String packageName,
357                                              String filename)
358     throws IOException,
359           FooException
360 {
361     ...
362 }
363 </pre></td></tr></table></div><p></p></li><li><p><a name="wrap-method-params"></a>
364 Method Def parameters
365 </p><a class="indexterm" name="d0e3103"></a><a class="indexterm" name="d0e3106"></a><p>
366 Forces a line wrap after each parameter of a method or constructor declaration.
367 </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">
368 public static File create(File file, File directory, int backupLevel)
369                    throws IOException
370 {
371     ...
372 }
373 </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">
374 public static File create(File file,
375                           File directory,
376                           int backupLevel)
377                    throws IOException
378 {
379     ...
380 }
381 </pre></td></tr></table></div></li><li><p><a name="wrap-call-chained"></a>
382 Method Call chains
383 </p><p>
384 Forces a line wrap after each chained method call.
385 </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">
386 message.format(ERROR_SOURCE_ADDRESS).param (m_session.getAimName()).send();
387 </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">
388 message.format(ERROR_SOURCE_ADDRESS)
389        .param (m_session.getAimName())
390        .send();
391 </pre></td></tr></table></div><p></p></li><li><p><a name="wrap-method-call-params"></a>
392 Method Call parameters
393 </p><p>
394 Forces a line wrap after each parameter of a method call.
395 </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">
396 doSomething();
397 _userDatabase.addUser("Name", encryptPassword("password", _secretKey),
398                       "123 fake address");
399 doSomethingElse();
400 </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">
401 doSomething();
402 _userDatabase.addUser("Name",
403                       encryptPassword("password",
404                                       _secretKey),
405                       "123 fake address");
406 doSomethingElse();
407 </pre></td></tr></table></div><p></p></li><li><p>
408 Method Call parameters if nested
409 </p><p>
410 Forces a line wrap after each parameter of a method call if at least one
411 parameter is a method call itself. This option can prove especially useful if
412 one prefers to nest method calls as parameters rather than adding local
413 variables just to hold those parameters.
414 </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">
415 doSomething();
416 _userDatabase.addUser("Name",
417                       encryptPassword("password", _secretKey),
418                       "123 fake address");
419 doSomethingElse();
420 </pre></td></tr></table></div><p></p></li><li><p>
421 Ternary expression question mark (<tt class="literal">?</tt>)
422 </p><p>
423 Forces a line wrap after the first operand.
424 </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">
425 String comma = spaceAfterComma
426                ? COMMA_SPACE : COMMA;
427 </pre></td></tr></table></div><p>
428 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>.
429 You may further want to use <a href="indentation.html#indentation-misc-ternary-if-else">continuation indentation</a>.
430 </p></li><li><p><a name="wrap-ternary-colon"></a>
431 Ternary expression colon (<tt class="literal">:</tt>)
432 </p><p>
433 Forces a line wrap after the second operand.
434 </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">
435 String comma = spaceAfterComma ? COMMA_SPACE
436                                : COMMA;
437 </pre></td></tr></table></div><p>
438 If both switches are disabled, ternary expressions are printed in one line (if everything fits in one line, that is).
439 </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">
440 String comma = spaceAfterComma ? COMMA_SPACE : COMMA;
441 </pre></td></tr></table></div><p>
442 If both switches are enabled, you can force a style like the following:
443 </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">
444 String comma = spaceAfterComma
445     ? COMMA_SPACE
446     : COMMA;
447 </pre></td></tr></table></div><p></p></li><li><p><a name="wrap-always-label"></a>
448 Labels
449 </p><a class="indexterm" name="d0e3222"></a><a class="indexterm" name="d0e3225"></a><p>
450 Forces a line wrap after labels.
451 </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">
452 // advance to the first CLASS_DEF or INTERFACE_DEF
453 LOOP:   for (AST child = tree.getFirstChild();
454              child != null;
455              child = child.getNextSibling())
456         {
457             switch (child.getType())
458             {
459                 case JavaTokenTypes.CLASS_DEF :
460                 case JavaTokenTypes.INTERFACE_DEF :
461                     next = child;
462                     break LOOP;
463
464                 default :
465                     break;
466             }
467         }
468 </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">
469 // advance to the first CLASS_DEF or INTERFACE_DEF
470 LOOP:
471         for (AST child = tree.getFirstChild();
472              child != null;
473              child = child.getNextSibling())
474         {
475             switch (child.getType())
476             {
477                 case JavaTokenTypes.CLASS_DEF :
478                 case JavaTokenTypes.INTERFACE_DEF :
479                     next = child;
480                     break LOOP;
481
482                 default :
483                     break;
484             }
485         }
486 </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>
487 Lets you force wrapping for <span class="emphasis"><em>all</em></span> parameter or expressions if
488 the parameter or expression list would otherwise exceed the maximal line length.
489 If you enable any of the following switches, line wrapping
490 may occur for the specified cases no matter whether you have enabled general
491 line wrapping or not.
492 </p><div class="itemizedlist"><ul type="disc"><li><p><a name="wrap-always-extends"></a>
493 After extends types
494 </p><p>
495 Forces a line wrap after each type name of the <tt class="literal">extends</tt> clause of a
496 class/interface declaration if the whole clause does not fit in one line.
497 </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">
498 public interface VeryImportantInterface                        |
499     extends LeastImportantInterface, LessImportantInterface,   |
500         ImportantInterface                                     |
501 }                                                              |
502     ...                                                        |
503 }                                                              |
504 </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">
505 public interface VeryImportantInterface                        |
506     extends LeastImportantInterface,                           |
507         LessImportantInterface,                                |
508         ImportantInterface                                     |
509 }                                                              |
510     ...                                                        |
511 }                                                              |
512 </pre></td></tr></table></div></li><li><p><a name="wrap-always-implements"></a>
513 After implements types
514 </p><p>
515 Forces a line wrap after each type name of the <tt class="literal">implements</tt> clause of a
516 class/interface declaration if the whole clause does not fit in one line.
517 </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">
518 public class ImportantClass                                    |
519     implements ImportantInterface, Serializable, Comparable,   |
520         Cloneable                                              |
521 }                                                              |
522     ...                                                        |
523 }                                                              |
524 </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">
525 public class ImportantClass                                    |
526     implements ImportantInterface,                             |
527         Serializable,                                          |
528         Comparable,                                            |
529         Cloneable                                              |
530 }                                                              |
531     ...                                                        |
532 }                                                              |
533 </pre></td></tr></table></div></li><li><p><a name="wrap-always-throws"></a>
534 After throws types
535 </p><p>
536 Forces a line wrap after each type name of the <tt class="literal">throws</tt> clause of a
537 method/constructor declaration if the whole clause does not fit in one line.
538 </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">
539 private File getDestinationFile(File dest, String packageName, |
540                                 String filename)               |
541                          throws IOException, FooException,     |
542                                 FooBarException                |
543 {                                                              |
544     ...                                                        |
545 }                                                              |
546 </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">
547 private File getDestinationFile(File dest, String packageName, |
548                                 String filename)               |
549                          throws IOException,                   |
550                                 FooException,                  |
551                                 FooBarException                |
552 {                                                              |
553     ...                                                        |
554 }                                                              |
555 </pre></td></tr></table></div></li><li><p><a name="wrap-always-param"></a>
556 After parameters/expressions
557 </p><p>
558 If enabled, this switch will cause all parameters/expressions to be
559 wrapped, if and only if the first parameter/expression of the list has been
560 wrapped.
561 </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">
562 if (
563     "pick".equals(m.getName()) &amp;&amp;
564     m.isStatic() &amp;&amp;
565     m.isPublic()
566 ) {
567     pickFound = true;
568 }
569 else if (
570     "pick".equals(m.getName()) &amp;&amp;
571     m.isStatic() &amp;&amp;
572     m.isPublic()
573 ) {
574     pickFound = true;
575 }
576 </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
577 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">
578 String[] constraints = {                                               |
579     "patternPanel.top=form.top", "patternPanel.hcenter=form.hcenter",  |
580     "okButton.top=patternPanel.bottom+20",                             |
581     "okButton.right=form.hcenter-10", "cancelButton.vcenter=10",       |
582     "cancelButton.left=10"                                             |
583 };                                                                     |
584 </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">
585 String[] constraints = {                                               |
586     "patternPanel.top=form.top",                                       |
587     "patternPanel.hcenter=form.hcenter",                               |
588     "okButton.top=patternPanel.bottom+20",                             |
589     "okButton.right=form.hcenter-10",                                  |
590     "cancelButton.vcenter=10",                                         |
591     "cancelButton.left=10"                                             |
592 };                                                                     |
593 </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">
594 String[] constraints = {                                               |
595     "patternPanel.top=form.top", "patternPanel.hcenter=form.hcenter",
596     "okButton.top=patternPanel.bottom+20", "okButton.right=form.hcenter-10",
597     "cancelButton.vcenter=10", "cancelButton.left=10"                  |
598 };                                                                     |
599 </pre></td></tr></table></div><p>
600 If both options are left disabled, the array elements will be printed in one
601 line, right after the left curly brace.
602 </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">
603             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>