2017-02-10 8 views
2

の内部で使用されていることを確認するために:私は、このクラスは、「データマネージャー」パッケージ(またはサブパッケージ)の内部で使用されていることを望んJsonRequestBuilderのCheckstyleは、我々はユーティリティクラスを持っている特定のクラスにのみ、特定のパッケージまたはサブパッケージ

を、そしてありません内部のコードなど。

のでJsonRequestBuilderは

be.knarf.datamanager 
be.knarf.datamanager.special it is also ok 

のようなパッケージに使用することができる。しかし

be.knarf.screens 

のようなパッケージには誰もがこれを行う方法を知っているではありませんか?これは、正規表現チェックの1つで行うことができますか?

答えて

1

、これは一般的にImportControlチェックを使用して達成されます。基本的にどのパッケージにどのインポートが許可されているのかを指定し、コードベースでそれをチェックします。

1つの注意点は、コード内のクラスへの完全修飾参照が見つからないことです。インポートのみをチェックします。しかし、それはまだかなり役に立ちます。

1

申し訳ありませんが、をbe.knarf.datamanagerパッケージに入れて、public修飾子をクラスから削除することはできません。そうすればパッケージプライベートにする必要があります。 Checkstyleで

+0

パッケージツリーがあまりにも複雑になっている可能性があります。 –

+0

これは機能しません。パッケージプライベートは、サブパッケージでも表示されないことを意味します。 –

+0

JsonRequestBuilderは実際に私たちの複数のプロジェクトで使用されている自己書庫ライブラリのクラスです。これらのプロジェクトの中には、datamanagerパッケージがあります。そして、JsonRequestBuilderは、それらのパッケージ(またはそれらのサブパッケージ)内でのみ使用する必要があります。Mad Physicistの言うように、パッケージツリーは複雑すぎます。 – Knarf