OLD | NEW |
1 <html><head> | 1 <html><head> |
2 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> | 2 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> |
3 <title>第8章 フィルターフ
449;イル</title><meta name="generator" content="DocBook XSL Styleshe
ets V1.76.1"><link rel="home" href="index.html" title="FindBugs™ マ&
#12491;ュアル"><link rel="up" href="index.html" title="FindBug
s™ マニュアル"><link rel="prev" href="eclips
e.html" title="第7章 FindBugs™ Eclipse プラグ
;インの使用方法"><link rel="next" href
="analysisprops.html" title="第9章 分析プロ&
#12497;ティー"></head><body bgcolor="white" text="black" link=
"#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="1
00%" summary="Navigation header"><tr><th colspan="3" align="center">第8
1456; フィルターファイル</
th></tr><tr><td width="20%" align="left"><a accesskey="p" href="eclipse.html">&#
25147;る</a> </td><th width="60%" align="center"> </th><td width
="20%" align="right"> <a accesskey="n" href="analysisprops.html">次&#
12408;</a></td></tr></table><hr></div><div class="chapter" title="第8ĺ
56; フィルターファイル"><d
iv class="titlepage"><div><div><h2 class="title"><a name="filter"></a>第8&
#31456; フィルターファイル
</h2></div></div></div><div class="toc"><p><b>目次</b></p><dl><dt><s
pan class="sect1"><a href="filter.html#d0e1843">1. フィル|
79;ーファイルの概要</a></span></
dt><dt><span class="sect1"><a href="filter.html#d0e1893">2. マッ
481;ング条件の種類</a></span></dt><dt>
<span class="sect1"><a href="filter.html#d0e2157">3. Java 要素ࡧ
7;マッチング</a></span></dt><dt><span class="sect1
"><a href="filter.html#d0e2185">4. 留意事項</a></span></
dt><dt><span class="sect1"><a href="filter.html#d0e2215">5. 例</a></span><
/dt><dt><span class="sect1"><a href="filter.html#d0e2278">6. 完全
2394;例</a></span></dt></dl></div><p>フィルタ}
40;ファイルを使用する{
71;とで、特定のクラス|
20;メソッドをバグ報告{
95;含めたりバグ報告か|
25;除外したりすること{
64;できます。この章で{
99;、フィルターファイ}
23;の使用方法を説明し|
14;す。</p><div class="note" title="計画され
ている機能" style="margin-left: 0.5in; margin-righ
t: 0.5in;"><table border="0" summary="Note: 計画され
390;いる機能"><tr><td rowspan="2" align="center" valign=
"top" width="25"><img alt="[注記]" src="note.png"></td><th align="le
ft">計画されている機能</th
></tr><tr><td align="left" valign="top"><p>フィルタ}
40;は現在、コマンドラ|
52;ンインタフェースで{
98;みサポートされてい|
14;す。最終的には、フ|
51;ルターのサポートは GUI
にも追加される予定で
す。</p></td></tr></table></div><p> | 3 <title>第8章 フィルターフ
449;イル</title><meta name="generator" content="DocBook XSL Styleshe
ets V1.78.1"><link rel="home" href="index.html" title="FindBugs™ マ&
#12491;ュアル"><link rel="up" href="index.html" title="FindBug
s™ マニュアル"><link rel="prev" href="eclips
e.html" title="第7章 FindBugs™ Eclipse プラグ
;インの使用方法"><link rel="next" href
="analysisprops.html" title="第9章 分析プロ&
#12497;ティー"></head><body bgcolor="white" text="black" link=
"#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="1
00%" summary="Navigation header"><tr><th colspan="3" align="center">第8
1456; フィルターファイル</
th></tr><tr><td width="20%" align="left"><a accesskey="p" href="eclipse.html">&#
25147;る</a> </td><th width="60%" align="center"> </th><td width
="20%" align="right"> <a accesskey="n" href="analysisprops.html">次&#
12408;</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage
"><div><div><h1 class="title"><a name="filter"></a>第8章 フ
2451;ルターファイル</h1></div></div></
div><div class="toc"><p><b>目次</b></p><dl class="toc"><dt><span cla
ss="sect1"><a href="filter.html#d0e1843">1. フィルタ
540;ファイルの概要</a></span></dt><dt>
<span class="sect1"><a href="filter.html#d0e1893">2. マッチ
2531;グ条件の種類</a></span></dt><dt><span c
lass="sect1"><a href="filter.html#d0e2157">3. Java 要素名}
10;ッチング</a></span></dt><dt><span class="sect1"><a hr
ef="filter.html#d0e2185">4. 留意事項</a></span></dt><dt>
<span class="sect1"><a href="filter.html#d0e2215">5. 例</a></span></dt><dt
><span class="sect1"><a href="filter.html#d0e2278">6. 完全な&#
20363;</a></span></dt></dl></div><p>フィルター
501;ァイルを使用するこ
392;で、特定のクラスや
513;ソッドをバグ報告に
547;めたりバグ報告から&
500;外したりすることが
391;きます。この章では
289;フィルターファイル
398;使用方法を説明しま
377;。</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in
;"><table border="0" summary="Note: 計画されて
356;る機能"><tr><td rowspan="2" align="center" valign="top" wi
dth="25"><img alt="[注記]" src="note.png"></td><th align="left">#
336;画されている機能</th></tr><t
r><td align="left" valign="top"><p>フィルター{
99;現在、コマンドライ}
31;インタフェースでの|
15;サポートされていま{
77;。最終的には、フィ}
23;ターのサポートは GUI に
も追加される予定です
。</p></td></tr></table></div><p> |
4 </p><div class="sect1" title="1. フィルターフ
;ァイルの概要"><div class="titlepage"><div><
div><h2 class="title" style="clear: both"><a name="d0e1843"></a>1. フ|
51;ルターファイルの概Š
01;</h2></div></div></div><p>概念的に言え
2400;、フィルターはバグ
6908;索結果をある基準と
9031;合します。フィルタ
2540;を定義することで、 &#
29305;別な取り扱いをする&#
12496;グ検索結果を選択す&#
12427;ことができます。例&#
12360;ば、あるバグ検索結&#
26524;をバグ報告に含めた&#
12426;、バグ報告から除外&#
12375;たりすることができ&#
12414;す。</p><p>フィルターフ
2449;イルは、 <a class="ulink" href="http://www.w3.org/X
ML/" target="_top">XML</a> 文書です。最Ç
78;位要素が <code class="literal">FindBugsFilter<
/code> 要素 であり、その子
要素として <code class="literal">Match</code> #
201;素を複数個定義しま
377;。それぞれの <code class="literal">Match
</code> 要素は、生成された
バグ検索結果に適用さ
れる述部にあたります
。通常、フィルターは
バグ検索結果を除外す
るために使用します。
次に、例を示します:</p><pr
e class="screen"> | 4 </p><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style=
"clear: both"><a name="d0e1843"></a>1. フィルター&
#12501;ァイルの概要</h2></div></div></div><p
>概念的に言えば、フィ
;ルターはバグ検索結果
;をある基準と照合しま
;す。フィルターを定義
;することで、 特別なࡢ
2;り扱いをするバグ検ಃ
4;結果を選択することӔ
4;できます。例えば、ӓ
4;るバグ検索結果をバӞ
4;報告に含めたり、バӞ
4;報告から除外したりӕ
7;ることができます。</p><p
>フィルターファイルは
;、 <a class="ulink" href="http://www.w3.org/XML/" target="_top">XML</a> &
#25991;書です。最上位要素&
#12364; <code class="literal">FindBugsFilter</code> 要素 
391;あり、その子要素と
375;て <code class="literal">Match</code> 要素を複
数個定義します。それ
ぞれの <code class="literal">Match</code> 要素
399;、生成されたバグ検 
034;結果に適用される述%
096;にあたります。通常
289;フィルターはバグ検 
034;結果を除外するため
395;使用します。次に、
363;を示します:</p><pre class="screen"> |
5 <code class="prompt">$ </code><span class="command"><strong>findbugs -textui -ex
clude <em class="replaceable"><code>myExcludeFilter.xml</code></em> <em class="r
eplaceable"><code>myApp.jar</code></em></strong></span> | 5 <code class="prompt">$ </code><span class="command"><strong>findbugs -textui -ex
clude <em class="replaceable"><code>myExcludeFilter.xml</code></em> <em class="r
eplaceable"><code>myApp.jar</code></em></strong></span> |
6 </pre><p>また一方で、的をし
;ぼった報告を得るため
;にバグ報告結果を選択
;するためにフィルター
;を使用することも考え
;られます :</p><pre class="screen"> | 6 </pre><p>また一方で、的をし
;ぼった報告を得るため
;にバグ報告結果を選択
;するためにフィルター
;を使用することも考え
;られます :</p><pre class="screen"> |
7 <code class="prompt">$ </code><span class="command"><strong>findbugs -textui -in
clude <em class="replaceable"><code>myIncludeFilter.xml</code></em> <em class="r
eplaceable"><code>myApp.jar</code></em></strong></span> | 7 <code class="prompt">$ </code><span class="command"><strong>findbugs -textui -in
clude <em class="replaceable"><code>myIncludeFilter.xml</code></em> <em class="r
eplaceable"><code>myApp.jar</code></em></strong></span> |
8 </pre><p> | 8 </pre><p> |
9 </p><p> | 9 </p><p> |
10 <code class="literal">Match</code> 要素は子要ŀ
32;を持ちます。それら{
98;子要素は論理積で述Ų
96;になります。つまりz
89;述部が真であるため{
95;は、すべての子要素{
64;真である必要があり|
14;す。</p></div><div class="sect1" title="2. マッӠ
1;ング条件の種類"><div class="titlepag
e"><div><div><h2 class="title" style="clear: both"><a name="d0e1893"></a>2. 
510;ッチング条件の種類</h2
></div></div></div><div class="variablelist"><dl><dt><span class="term"><code cl
ass="literal"><Bug></code></span></dt><dd><p>この要ŀ
32;は、バグパターンをý
51;定して照合します。<code
class="literal">pattern</code> 属性には、コ
ンマ区切りでバグパタ
ーン類型のリストを指
定します。どの警告が
どのバグパターン類型
にあたるかは、 <span class="command"><
strong>-xml</strong></span> オプションを
388;かって出力されたも
398; (<code class="literal">BugInstance</code> 要素の <code cl
ass="literal">type</code> 属性) を見るか
289;または、 <a class="ulink" href="../../bugDescription
s.html" target="_top">バグ解説ドキュ&#
12513;ント</a>を参照してくӖ
4;さい。</p><p>もっと粒度の
;粗い照合を行いたいと
;きは、 <code class="literal">code</code> 属性
434;使用してください。
496;グ略称のコンマ区切
426;のリストで指定でき
414;す。さらに粒度の粗
356;照合を行いたいとき
399;、 <code class="literal">category</code> 属性をË
51;用してください。次{
95;示す、バグカテゴリ}
40;名のコンマ区切りの}
22;ストで指定できます : <c
ode class="literal">CORRECTNESS</code>, <code class="literal">MT_CORRECTNESS</co
de>, <code class="literal">BAD_PRACTICICE</code>, <code class="literal">PERFORMA
NCE</code>, <code class="literal">STYLE</code>.</p><p>同じ <code cla
ss="literal"><Bug></code> 要素に上記の
属性を複数指定した場
合は、バグパターン名
、バグ略称、バグカテ
ゴリーのいずれか1つで
;も該当すれば、バグパ
;ターンは合致すると判
;定されます。</p><p>下位互
換性を持たせたい場合
は、 <code class="literal"><Bug></code> 要素ӗ
8;代わりに <code class="literal"><BugPattern></cod
e> 要素および <code class="literal"><BugCode>
;</code> 要素を使用してくだ
;さい。これらの要素は
;それぞれ、 <code class="literal">name</code> 
646;性で値のリストを指
450;します。これらの要 
032;は、将来サポートさ
428;なくなる可能性があ
426;ます。</p></dd><dt><span class="term"><code class="literal
"><Confidence></code></span></dt><dd><p> | 10 <code class="literal">Match</code> 要素は子要ŀ
32;を持ちます。それら{
98;子要素は論理積で述Ų
96;になります。つまりz
89;述部が真であるため{
95;は、すべての子要素{
64;真である必要があり|
14;す。</p></div><div class="sect1"><div class="titlepage"><div><div
><h2 class="title" style="clear: both"><a name="d0e1893"></a>2. マッ
チング条件の種類</h2></div></div
></div><div class="variablelist"><dl class="variablelist"><dt><span class="term"
><code class="literal"><Bug></code></span></dt><dd><p>この#
201;素は、バグパターン
434;指定して照合します
290;<code class="literal">pattern</code> 属性には、
;コンマ区切りでバグパ
;ターン類型のリストを
;指定します。どの警告
;がどのバグパターン類
;型にあたるかは、 <span class="c
ommand"><strong>-xml</strong></span> オプション
2434;つかって出力された
2418;の (<code class="literal">BugInstance</code> 要素の
<code class="literal">type</code> 属性) を見る
2363;、または、 <a class="ulink" href="../../bugDe
scriptions.html" target="_top">バグ解説ドキ&
#12517;メント</a>を参照して{
67;ださい。</p><p>もっと粒ॷ
0;の粗い照合を行いたӓ
6;ときは、 <code class="literal">code</code> 属
4615;を使用してください
2290;バグ略称のコンマ区
0999;りのリストで指定で
2365;ます。さらに粒度の
1895;い照合を行いたいと
2365;は、 <code class="literal">category</code> 属性
434;使用してください。
425;に示す、バグカテゴ
522;ー名のコンマ区切り
398;リストで指定できま
377; : <code class="literal">CORRECTNESS</code>, <code class="literal">MT_CORREC
TNESS</code>, <code class="literal">BAD_PRACTICICE</code>, <code class="literal"
>PERFORMANCE</code>, <code class="literal">STYLE</code>.</p><p>同じ
<code class="literal"><Bug></code> 要素に上記
;の属性を複数指定した
;場合は、バグパターン
;名、バグ略称、バグカ
;テゴリーのいずれか1Ӗ
8;でも該当すれば、バӞ
4;パターンは合致するӗ
2;判定されます。</p><p>下位
;互換性を持たせたい場
;合は、 <code class="literal"><Bug></code> 要ŀ
32;の代わりに <code class="literal"><BugPattern
></code> 要素および <code class="literal"><B
ugCode></code> 要素を使用してӔ
7;ださい。これらの要ಃ
2;はそれぞれ、 <code class="literal">name</c
ode> 属性で値のリストを
5351;定します。これらの
5201;素は、将来サポート
2373;れなくなる可能性が
2354;ります。</p></dd><dt><span class="term"><code class
="literal"><Confidence></code></span></dt><dd><p> |
11 この要素は、特定
398;バグ信頼度をもつ警
578;を照合します。 | 11 この要素は、特定
398;バグ信頼度をもつ警
578;を照合します。 |
12 <code class="literal">value</code> 属性には&
#12289;整数値を指定します&
#12290;すなわち 1 は信頼度(ƌ
40;) 、また、 2 は信頼度(中
;) 、 3 は信頼度(低) を示し
;ます。 | 12 <code class="literal">value</code> 属性には&
#12289;整数値を指定します&
#12290;すなわち 1 は信頼度(ƌ
40;) 、また、 2 は信頼度(中
;) 、 3 は信頼度(低) を示し
;ます。 |
13 <Confidence> は 2.0.0 リリース&#
12363;ら <Priority> の後継として
取って代わりました。 | 13 <Confidence> は 2.0.0 リリース&#
12363;ら <Priority> の後継として
取って代わりました。 |
14 </p></dd><dt><span class="term"><code class="literal"><Priority></
code></span></dt><dd><p> | 14 </p></dd><dt><span class="term"><code class="literal"><Priority></
code></span></dt><dd><p> |
15 <code class="literal"><Confidence></code> と同
968;です。下位互換性を
445;つため残されていま
377;。 | 15 <code class="literal"><Confidence></code> と同
968;です。下位互換性を
445;つため残されていま
377;。 |
16 </p></dd><dt><span class="term"><code class="literal"><Rank></code
></span></dt><dd><p> | 16 </p></dd><dt><span class="term"><code class="literal"><Rank></code
></span></dt><dd><p> |
17 この要素は、特定
398;バグランクをもつ警
578;を照合します。 | 17 この要素は、特定
398;バグランクをもつ警
578;を照合します。 |
18 <code class="literal">value</code> 属性には&
#12289; 1 から 20 の整数値を指&#
23450;します。 | 18 <code class="literal">value</code> 属性には&
#12289; 1 から 20 の整数値を指&#
23450;します。 |
19 1 から 4 は最も恐ろし
;いバグ、 5 から 9 は恐ろ&
#12375;いバグ、 10 から 14 は厄&
#20171;なバグ, | 19 1 から 4 は最も恐ろし
;いバグ、 5 から 9 は恐ろ&
#12375;いバグ、 10 から 14 は厄&
#20171;なバグ, |
20 そして 15 から 20 は不
433;なバグを示します。 | 20 そして 15 から 20 は不
433;なバグを示します。 |
21 </p></dd><dt><span class="term"><code class="literal"><Package></c
ode></span></dt><dd><p>この要素は、 <code cl
ass="literal">name</code> 属性で指定しӖ
3;特定のパッケージ内ӗ
5;あるクラスに関連しӖ
3;警告を照合します。ࠣ
7;れ子のパッケージはࡪ
7;まれません (Java import 文に従
っています) 。しかしӗ
4;がら、正規表現を使ӓ
8;と複数パッケージにӣ
0;ッチさせることは簡ࡕ
6;にできます。</p></dd><dt><span class="term
"><code class="literal"><Class></code></span></dt><dd><p>この&
#35201;素は、特定のクラス&
#12395;関連した警告を照合&
#12375;ます。<code class="literal">name</code> 属性
;を使用して、照合する
;クラス名をクラス名そ
;のものか、または、正
;規表現で指定します。
;</p><p>下位互換性を持たせ
たい場合は、この要素
の代わりに <code class="literal">Match</code> #
201;素を使用してくださ
356;。クラス名そのもの
398;指定は <code class="literal">class</code> 属性
を、クラス名を正規表
現で指定する場合は <code c
lass="literal">classregex</code> 属性をそれぞ
;れ使用してください</p><p>
もし <code class="literal">Match</code> 要素に <co
de class="literal">Class</code> 要素が無かっ
たり、 <code class="literal">class</code> / <code class="liter
al">classregex</code> 属性が無かった&#
12426;した場合は、すべて&#
12398;クラスに適用されま&#
12377;。その場合、想定外&#
12395;多くのバグ検索結果&#
12364;一致してしまうこと&#
12364;あり得ます。その場&#
21512;は、適当なメソッド&#
12420;フィールドで絞り込&#
12435;でください。</p></dd><dt><span class="
term"><code class="literal"><Source></code></span></dt><dd><p> | 21 </p></dd><dt><span class="term"><code class="literal"><Package></c
ode></span></dt><dd><p>この要素は、 <code cl
ass="literal">name</code> 属性で指定しӖ
3;特定のパッケージ内ӗ
5;あるクラスに関連しӖ
3;警告を照合します。ࠣ
7;れ子のパッケージはࡪ
7;まれません (Java import 文に従
っています) 。しかしӗ
4;がら、正規表現を使ӓ
8;と複数パッケージにӣ
0;ッチさせることは簡ࡕ
6;にできます。</p></dd><dt><span class="term
"><code class="literal"><Class></code></span></dt><dd><p>この&
#35201;素は、特定のクラス&
#12395;関連した警告を照合&
#12375;ます。<code class="literal">name</code> 属性
;を使用して、照合する
;クラス名をクラス名そ
;のものか、または、正
;規表現で指定します。
;</p><p>下位互換性を持たせ
たい場合は、この要素
の代わりに <code class="literal">Match</code> #
201;素を使用してくださ
356;。クラス名そのもの
398;指定は <code class="literal">class</code> 属性
を、クラス名を正規表
現で指定する場合は <code c
lass="literal">classregex</code> 属性をそれぞ
;れ使用してください</p><p>
もし <code class="literal">Match</code> 要素に <co
de class="literal">Class</code> 要素が無かっ
たり、 <code class="literal">class</code> / <code class="liter
al">classregex</code> 属性が無かった&#
12426;した場合は、すべて&#
12398;クラスに適用されま&#
12377;。その場合、想定外&#
12395;多くのバグ検索結果&#
12364;一致してしまうこと&#
12364;あり得ます。その場&#
21512;は、適当なメソッド&#
12420;フィールドで絞り込&#
12435;でください。</p></dd><dt><span class="
term"><code class="literal"><Source></code></span></dt><dd><p> |
22 この要素は、特定
398;ソースファイルに関$
899;した警告を照合しま
377;。 | 22 この要素は、特定
398;ソースファイルに関$
899;した警告を照合しま
377;。 |
23 <code class="literal">name</code> 属性を使&#
29992;して、照合するソー&#
12473;ファイル名をソース&#
12501;ァイル名そのものか&#
12289;または、正規表現で&#
25351;定します。 | 23 <code class="literal">name</code> 属性を使&#
29992;して、照合するソー&#
12473;ファイル名をソース&#
12501;ァイル名そのものか&#
12289;または、正規表現で&#
25351;定します。 |
24 </p></dd><dt><span class="term"><code class="literal"><Method></co
de></span></dt><dd><p>この要素は、メ&#
12477;ッドを指定します。<c
ode class="literal">name</code> 属性を使用し
て、照合するメソッド
名をメソッド名そのも
のか、または、正規表
現で指定します。<code class="lit
eral">params</code> 属性には、コン
510;区切りでメソッド引
968;の型のリストを指定
375;ます。<code class="literal">returns</code> 属性
;にはメソッドの戻り値
;の型を指定します。<code c
lass="literal">params</code> および <code class="literal">retu
rns</code> においては、クラ|
73;名は完全修飾名であ|
27;必要があります。(例
360;ば、単に "String" ではなく "
java.lang.String" としてくださいӍ
0;) <code class="literal">params</code> <code class="literal">returns</code> 
2398;どちらか一方を指定
2375;た場合は、もう一方
2398;属性の指定も必須で
2377;。なぜならば、メソ
2483;ドシグニチャーを構
1689;のために必要だから
2391;す。<code class="literal">name</code> 属性、<
code class="literal">params</code> 属性 および <co
de class="literal">returns</code> 属性または 3 
2388;の 属性すべて、のど&#
12428;かを条件とすること&#
12391;きることを意味して&#
12356;ます。このように、&#
21517;前とシグニチャーに&#
22522;づく様々な種類の条&#
20214;を規定できます。</p></dd><
dt><span class="term"><code class="literal"><Field></code></span></dt><dd>
<p>この要素は、フィー}
23;ドを指定します。<code class="
literal">name</code> 属性を使用して
2289;照合するフィールド
1517;をフィールド名その
2418;のか、または、正規
4920;現で指定します。ま
2383;、フィールドのシグ
2491;チャーに照らしたフ
2451;ルタリングをするこ
2392;ができます。 <code class="literal">type
</code> 属性を使用して、フ
ィールドの型を完全修
飾名で指定してくださ
い。名前とシグニチャ
ーに基づく条件を規定
するために、その2つの
;属性を両方とも指定す
;ることができます。</p></d
d><dt><span class="term"><code class="literal"><Local></code></span></dt><
dd><p>この要素は、ローカ&#
12523;変数を指定します。<c
ode class="literal">name</code> 属性を使用し
て、照合するローカル
変数名をローカル変数
名そのものか、または
、正規表現で指定しま
す。ローカル変数とは
、メソッド内で定義し
た変数です。</p></dd><dt><span class="term">
<code class="literal"><Or></code></span></dt><dd><p>このව
1;素は、論理和として <code
class="literal">Match</code> 条項を結合し&#
12414;す。すなわち、2つの
<code class="literal">Method</code> 要素を <code class="litera
l">Or</code> 条項に入れること
2391;、どちらか一方のメ
2477;ッドでマッチさせる
2371;とができます。</p></dd><dt><span
class="term"><code class="literal"><And></code></span></dt><dd><p> | 24 </p></dd><dt><span class="term"><code class="literal"><Method></co
de></span></dt><dd><p>この要素は、メ&#
12477;ッドを指定します。<c
ode class="literal">name</code> 属性を使用し
て、照合するメソッド
名をメソッド名そのも
のか、または、正規表
現で指定します。<code class="lit
eral">params</code> 属性には、コン
510;区切りでメソッド引
968;の型のリストを指定
375;ます。<code class="literal">returns</code> 属性
;にはメソッドの戻り値
;の型を指定します。<code c
lass="literal">params</code> および <code class="literal">retu
rns</code> においては、クラ|
73;名は完全修飾名であ|
27;必要があります。(例
360;ば、単に "String" ではなく "
java.lang.String" としてくださいӍ
0;) <code class="literal">params</code> <code class="literal">returns</code> 
2398;どちらか一方を指定
2375;た場合は、もう一方
2398;属性の指定も必須で
2377;。なぜならば、メソ
2483;ドシグニチャーを構
1689;のために必要だから
2391;す。<code class="literal">name</code> 属性、<
code class="literal">params</code> 属性 および <co
de class="literal">returns</code> 属性または 3 
2388;の 属性すべて、のど&#
12428;かを条件とすること&#
12391;きることを意味して&#
12356;ます。このように、&#
21517;前とシグニチャーに&#
22522;づく様々な種類の条&#
20214;を規定できます。</p></dd><
dt><span class="term"><code class="literal"><Field></code></span></dt><dd>
<p>この要素は、フィー}
23;ドを指定します。<code class="
literal">name</code> 属性を使用して
2289;照合するフィールド
1517;をフィールド名その
2418;のか、または、正規
4920;現で指定します。ま
2383;、フィールドのシグ
2491;チャーに照らしたフ
2451;ルタリングをするこ
2392;ができます。 <code class="literal">type
</code> 属性を使用して、フ
ィールドの型を完全修
飾名で指定してくださ
い。名前とシグニチャ
ーに基づく条件を規定
するために、その2つの
;属性を両方とも指定す
;ることができます。</p></d
d><dt><span class="term"><code class="literal"><Local></code></span></dt><
dd><p>この要素は、ローカ&#
12523;変数を指定します。<c
ode class="literal">name</code> 属性を使用し
て、照合するローカル
変数名をローカル変数
名そのものか、または
、正規表現で指定しま
す。ローカル変数とは
、メソッド内で定義し
た変数です。</p></dd><dt><span class="term">
<code class="literal"><Or></code></span></dt><dd><p>このව
1;素は、論理和として <code
class="literal">Match</code> 条項を結合し&#
12414;す。すなわち、2つの
<code class="literal">Method</code> 要素を <code class="litera
l">Or</code> 条項に入れること
2391;、どちらか一方のメ
2477;ッドでマッチさせる
2371;とができます。</p></dd><dt><span
class="term"><code class="literal"><And></code></span></dt><dd><p> |
25 この要素は、論理積{
92;して <code class="literal">Match</code> 条項を&
#32080;合します。 | 25 この要素は、論理積{
92;して <code class="literal">Match</code> 条項を&
#32080;合します。 |
26 すなわち、 <code class="literal">Bug</code> &#
12362;よび <code class="literal">Confidence</code> 要素&
#12434; <code class="literal">And</code> 条項内に指
;定することで | 26 すなわち、 <code class="literal">Bug</code> &#
12362;よび <code class="literal">Confidence</code> 要素&
#12434; <code class="literal">And</code> 条項内に指
;定することで |
27 特定の信頼度の特定{
98;バグのみ照合するこ{
92;ができます。 | 27 特定の信頼度の特定{
98;バグのみ照合するこ{
92;ができます。 |
28 </p></dd><dt><span class="term"><code class="literal"><Not></code></spa
n></dt><dd><p> | 28 </p></dd><dt><span class="term"><code class="literal"><Not></code></spa
n></dt><dd><p> |
29 この要素は、内包す|
27;子 <code class="literal">Match</code> を反転し&
#12414;す。 | 29 この要素は、内包す|
27;子 <code class="literal">Match</code> を反転し&
#12414;す。 |
30 すなわち、 <code class="literal">Bug</code> 
5201;素を <code class="literal">Not</code> 条項内&
#12395;指定することで指定&
#12375;たバグ以外のすべて&
#12398;バグと照合します。 | 30 すなわち、 <code class="literal">Bug</code> 
5201;素を <code class="literal">Not</code> 条項内&
#12395;指定することで指定&
#12375;たバグ以外のすべて&
#12398;バグと照合します。 |
31 </p></dd></dl></div></div><div class="sect1" title="3. Java 要素&
#21517;マッチング"><div class="titlepage"><div><di
v><h2 class="title" style="clear: both"><a name="d0e2157"></a>3. Java 要&#
32032;名マッチング</h2></div></div></div><p> | 31 </p></dd></dl></div></div><div class="sect1"><div class="titlepage"><div><div
><h2 class="title" style="clear: both"><a name="d0e2157"></a>3. Java 要
2032;名マッチング</h2></div></div></div><p> |
32 <code class="literal">Class</code> 、 <code class="literal">Source</code>
、 <code class="literal">Method</code> または <code clas
s="literal">Field</code> の <code class="literal">name</code> 属
615;が文字 ~ で始まってい&
#12427;場合は、 | 32 <code class="literal">Class</code> 、 <code class="literal">Source</code>
、 <code class="literal">Method</code> または <code clas
s="literal">Field</code> の <code class="literal">name</code> 属
615;が文字 ~ で始まってい&
#12427;場合は、 |
33 属性値の残りの部分を
Java の正規表現として解&#
37320;します。 | 33 属性値の残りの部分を
Java の正規表現として解&#
37320;します。 |
34 そうして、当該 Java 要素&#
12398;名前に対しての照合&#
12364;行われます。 | 34 そうして、当該 Java 要素&#
12398;名前に対しての照合&#
12364;行われます。 |
35 </p><p>パターンの照合は要&
#32032;の名前全体に対して&
#34892;われることに注意し&
#12390;ください。そのため&
#12289;部分一致照合を行い&
#12383;い場合はパターン文&
#23383;列の前後に .* を付加{
75;て使用する必要があ|
26;ます。</p><p>パターンのઔ
3;文規則に関しては、 <a cl
ass="ulink" href="http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/regex/
Pattern.html" target="_top"><code class="literal">java.util.regex.Pattern</code>
</a> のドキュメントを参
9031;してください。</p></div><div clas
s="sect1" title="4. 留意事項"><div class="titlepage"><di
v><div><h2 class="title" style="clear: both"><a name="d0e2185"></a>4. 留&#
24847;事項</h2></div></div></div><p> | 35 </p><p>パターンの照合は要&
#32032;の名前全体に対して&
#34892;われることに注意し&
#12390;ください。そのため&
#12289;部分一致照合を行い&
#12383;い場合はパターン文&
#23383;列の前後に .* を付加{
75;て使用する必要があ|
26;ます。</p><p>パターンのઔ
3;文規則に関しては、 <a cl
ass="ulink" href="http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/regex/
Pattern.html" target="_top"><code class="literal">java.util.regex.Pattern</code>
</a> のドキュメントを参
9031;してください。</p></div><div clas
s="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"
><a name="d0e2185"></a>4. 留意事項</h2></div></div></div
><p> |
36 <code class="literal">Match</code> 条項は、バ|
64;検索結果に実際に含|
14;れている情報にのみÇ
68;致します。すべての|
96;グ検索結果はクラス|
34;持っています。した{
64;って、一般的に言っ{
90;、バグを除外するた|
17;にはクラスを用いてŜ
92;うとうまくいくこと{
64;多いです。</p><p>バグ検ಃ
4;結果の中には、2個以Ç
78;のクラスを保持して{
56;るものもあります。Ë
63;えば、 DE (dropped exception : 例外の
961;視) バグは、 例外の無&
#35222;が発生したメソッド&
#12434;持っているクラスと&
#12289; 無視された例外の型
を表すクラスの両方を
含んだ形で報告されま
す。<code class="literal">Match</code> 条項と{
99;、 <span class="emphasis"><em>1番目</em></span> (主)
のクラスのみが照合さ
れます。したがって、
例えば、クラス "com.foobar.A" 、
"com.foobar.B" 間での IC (initialization circularity : ࠶
1;期化時の処理循環) バ
464;報告を抑止したい場
512;、以下に示すように 2&#
12388;の <code class="literal">Match</code> 条項を߳
1;用します :</p><pre class="programlisting"> | 36 <code class="literal">Match</code> 条項は、バ|
64;検索結果に実際に含|
14;れている情報にのみÇ
68;致します。すべての|
96;グ検索結果はクラス|
34;持っています。した{
64;って、一般的に言っ{
90;、バグを除外するた|
17;にはクラスを用いてŜ
92;うとうまくいくこと{
64;多いです。</p><p>バグ検ಃ
4;結果の中には、2個以Ç
78;のクラスを保持して{
56;るものもあります。Ë
63;えば、 DE (dropped exception : 例外の
961;視) バグは、 例外の無&
#35222;が発生したメソッド&
#12434;持っているクラスと&
#12289; 無視された例外の型
を表すクラスの両方を
含んだ形で報告されま
す。<code class="literal">Match</code> 条項と{
99;、 <span class="emphasis"><em>1番目</em></span> (主)
のクラスのみが照合さ
れます。したがって、
例えば、クラス "com.foobar.A" 、
"com.foobar.B" 間での IC (initialization circularity : ࠶
1;期化時の処理循環) バ
464;報告を抑止したい場
512;、以下に示すように 2&#
12388;の <code class="literal">Match</code> 条項を߳
1;用します :</p><pre class="programlisting"> |
37 <Match> | 37 <Match> |
38 <Class name="com.foobar.A" /> | 38 <Class name="com.foobar.A" /> |
39 <Bug code="IC" /> | 39 <Bug code="IC" /> |
40 </Match> | 40 </Match> |
41 | 41 |
42 <Match> | 42 <Match> |
43 <Class name="com.foobar.B" /> | 43 <Class name="com.foobar.B" /> |
44 <Bug code="IC" /> | 44 <Bug code="IC" /> |
45 </Match> | 45 </Match> |
46 </pre><p>明示的に両方のクラ
;スで照合することによ
;って、循環しているど
;ちらのクラスがバグ検
;索結果の 1 番目になっ
390;いるかに関係なく一!
268;させることができま
377;。(もちろんこの方法
2399;、処理循環が "com.foobar.A" 、 "c
om.foobar.B" に加えて3番目のク&#
12521;スも含んでいる場合&#
12399;図らずも失敗してし&#
12414;う恐れがあります。)<
/p><p>多くの種類のバグ報&#
21578;は、自身が出現した&#
12513;ソッドを報告します&#
12290;それらのバグ検索結&#
26524;に対しては、 <code class="literal">Met
hod</code> 条項を <code class="literal">Match</code> 要&
#32032;に加えると期待通り&
#12398;動作をするでしょう&
#12290;</p></div><div class="sect1" title="5. 例"><div class="titlepage"><
div><div><h2 class="title" style="clear: both"><a name="d0e2215"></a>5. 例
</h2></div></div></div><p>1. 特定のクラス
2395;対するすべてのバグ
2577;告に一致させます。</p
><pre class="programlisting"> | 46 </pre><p>明示的に両方のクラ
;スで照合することによ
;って、循環しているど
;ちらのクラスがバグ検
;索結果の 1 番目になっ
390;いるかに関係なく一!
268;させることができま
377;。(もちろんこの方法
2399;、処理循環が "com.foobar.A" 、 "c
om.foobar.B" に加えて3番目のク&#
12521;スも含んでいる場合&#
12399;図らずも失敗してし&#
12414;う恐れがあります。)<
/p><p>多くの種類のバグ報&#
21578;は、自身が出現した&#
12513;ソッドを報告します&#
12290;それらのバグ検索結&#
26524;に対しては、 <code class="literal">Met
hod</code> 条項を <code class="literal">Match</code> 要&
#32032;に加えると期待通り&
#12398;動作をするでしょう&
#12290;</p></div><div class="sect1"><div class="titlepage"><div><div><h2 class="
title" style="clear: both"><a name="d0e2215"></a>5. 例</h2></div></div></d
iv><p>1. 特定のクラスに対す
;るすべてのバグ報告に
;一致させます。</p><pre class="program
listing"> |
47 | 47 |
48 <Match> | 48 <Match> |
49 <Class name="com.foobar.MyClass" /> | 49 <Class name="com.foobar.MyClass" /> |
50 </Match> | 50 </Match> |
51 | 51 |
52 </pre><p> | 52 </pre><p> |
53 | 53 |
54 </p><p>2. バグ略称を指定しӗ
0;、特定のクラスに対ӕ
7;る特定の検査項目にߌ
8;致させます。</p><pre class="programlisting
"> | 54 </p><p>2. バグ略称を指定しӗ
0;、特定のクラスに対ӕ
7;る特定の検査項目にߌ
8;致させます。</p><pre class="programlisting
"> |
55 | 55 |
56 <Match> | 56 <Match> |
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
176 </p><pre class="programlisting"> | 176 </p><pre class="programlisting"> |
177 | 177 |
178 <?xml version="1.0" encoding="UTF-8"?> | 178 <?xml version="1.0" encoding="UTF-8"?> |
179 <FindBugsFilter> | 179 <FindBugsFilter> |
180 <Match> | 180 <Match> |
181 <Source name="~.*\.groovy" /> | 181 <Source name="~.*\.groovy" /> |
182 </Match> | 182 </Match> |
183 </FindBugsFilter> | 183 </FindBugsFilter> |
184 | 184 |
185 </pre><p> | 185 </pre><p> |
186 </p></div><div class="sect1" title="6. 完全な例"><div cl
ass="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e2278
"></a>6. 完全な例</h2></div></div></div><pre class="prog
ramlisting"> | 186 </p></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title"
style="clear: both"><a name="d0e2278"></a>6. 完全な例</h
2></div></div></div><pre class="programlisting"> |
187 | 187 |
188 <FindBugsFilter> | 188 <FindBugsFilter> |
189 <Match> | 189 <Match> |
190 <Class name="com.foobar.ClassNotToBeAnalyzed" /> | 190 <Class name="com.foobar.ClassNotToBeAnalyzed" /> |
191 </Match> | 191 </Match> |
192 | 192 |
193 <Match> | 193 <Match> |
194 <Class name="com.foobar.ClassWithSomeBugsMatched" /> | 194 <Class name="com.foobar.ClassWithSomeBugsMatched" /> |
195 <Bug code="DE,UrF,SIC" /> | 195 <Bug code="DE,UrF,SIC" /> |
196 </Match> | 196 </Match> |
(...skipping 26 matching lines...) Expand all Loading... |
223 <Match> | 223 <Match> |
224 <Class name="~.*\.*Test" /> | 224 <Class name="~.*\.*Test" /> |
225 <Not> | 225 <Not> |
226 <Bug code="IJU" /> | 226 <Bug code="IJU" /> |
227 </Not> | 227 </Not> |
228 </Match> | 228 </Match> |
229 | 229 |
230 </FindBugsFilter> | 230 </FindBugsFilter> |
231 | 231 |
232 </pre></div></div><div class="navfooter"><hr><table width="100%" summary="Naviga
tion footer"><tr><td width="40%" align="left"><a accesskey="p" href="eclipse.htm
l">戻る</a> </td><td width="20%" align="center"> </td><td
width="40%" align="right"> <a accesskey="n" href="analysisprops.html">Ē
25;へ</a></td></tr><tr><td width="40%" align="left" valign="top">第7
章 <span class="application">FindBugs</span>™ Eclipse プӤ
1;グインの使用方法 </td><td
width="20%" align="center"><a accesskey="h" href="index.html">ホー&
#12512;</a></td><td width="40%" align="right" valign="top"> 第9౉
6; 分析プロパティー</td></tr></t
able></div></body></html> | 232 </pre></div></div><div class="navfooter"><hr><table width="100%" summary="Naviga
tion footer"><tr><td width="40%" align="left"><a accesskey="p" href="eclipse.htm
l">戻る</a> </td><td width="20%" align="center"> </td><td
width="40%" align="right"> <a accesskey="n" href="analysisprops.html">Ē
25;へ</a></td></tr><tr><td width="40%" align="left" valign="top">第7
章 <span class="application">FindBugs</span>™ Eclipse プӤ
1;グインの使用方法 </td><td
width="20%" align="center"><a accesskey="h" href="index.html">ホー&
#12512;</a></td><td width="40%" align="right" valign="top"> 第9౉
6; 分析プロパティー</td></tr></t
able></div></body></html> |
OLD | NEW |