CoverageData (クラス)
public final serializable CoverageData
パッケージ: CURL.IDE.COVERAGE

複数のソース ファイルの Curl コード カバレッジ データを格納します。


コンストラクタ
default:オブジェクトを初期化します。
ファクトリ public {CoverageData.default
data-url:#Url = null,
test-name:#String = null,
efficient-size:int = -1,
add-curl-url-maps?:bool = true,
...:FileCoverageData
}:CoverageData
from-stream:ストリームからデータを読み込みます。
ファクトリ deprecated public {CoverageData.from-stream
in:TextInputStream,
url:#Url = null
}:CoverageData
from-url:指定の URL からデータを読み込みます。
ファクトリ public {CoverageData.from-url url:Url}:CoverageData
object-deserialize:シリアル化されたストリームから逆シリアル化します。
コンストラクタ public {CoverageData.object-deserialize in:SerializeInputStream}

プロパティ
data-url:データが読み取られた URL (存在する場合)。
フィールド public CoverageData.data-url:#Url
size:格納されている FileCoverageData オブジェクトの数。
アクセサ public final CoverageData.size:int
statistics:このデータのカバレッジ統計を算出します。
アクセサ public CoverageData.statistics:CoverageStatistics
test-name:このデータを生成したテストの名前。
フィールド public CoverageData.test-name:#String
url-maps:このデータに関連する URL マッピングです。
フィールド public constant CoverageData.url-maps:UrlMaps

クラス変数と定数
file-extension:CoverageData ファイルの標準ファイル拡張子。
public constant CoverageData.file-extension:String =".curlcov"

メソッド
add-data:このオブジェクトにファイル データを追加します。
public final {CoverageData.add-data
data:FileCoverageData,
clone-counters?:bool = true
}:void
add-package-file:ソース ファイルとパッケージの関係を記録します。
public inline {CoverageData.add-package-file
package-name:String,
package-url:Url,
package-file:Url
}:void
clone:このオブジェクトのクローンを返します。
public {CoverageData.clone
deep?:bool = true,
filter:#{proc-type {data:FileCoverageData}:bool} = null
}:CoverageData
clone-with-mapped-urls:変換された URLでクローンを作成します。
public {CoverageData.clone-with-mapped-urls
clone-counters?:bool = false
}:CoverageData
filter-data:filter-proc を使用してデータにフィルタを適用します。
public final {CoverageData.filter-data
filter-proc:{proc-type {data:FileCoverageData}:bool}
}:void
filter-packages:パッケージ単位でデータにフィルターをかけます。
public final {CoverageData.filter-packages
filter:{proc-type {data:PackageCoverageData}:bool},
filter-file-data?:bool = true
}:void
get:urlFileCoverageData を返します。
public final inline {CoverageData.get url:Url}:FileCoverageData
get-if-exists:urlFileCoverageData か null を返します。
public final {CoverageData.get-if-exists
url:Url
}:(FileCoverageData, found?:bool)
get-package-data:情報をパッケージ単位で変換します。
public final {CoverageData.get-package-data
}:{FastArray-of PackageCoverageData}
keys-to-Iterator:このオブジェクトで格納されるデータの URL の反復子を返します。
public final {CoverageData.keys-to-Iterator}:{Iterator-of Url}
merge:data のコンテンツをこのオブジェクトにマージします。
public final {CoverageData.merge
data:CoverageData,
clone?:bool = true
}:void
object-serialize:クラス インスタンスが書き込まれるときに、シリアル化コードで呼び出されます。
public sealed {CoverageData.object-serialize}:void
pretty-print:判読可能なフォーマットでデータを出力します。
public {CoverageData.pretty-print
out:TextOutputStream,
min-count:int = 0,
max-count:int = max-int
}:void
subtract-counts-from:other からカウントを減算します。
public final {CoverageData.subtract-counts-from}:void
write-to-stream:内部フォーマットでストリームにデータを書き込みます。
deprecated public {CoverageData.write-to-stream}:void
write-to-url:オブジェクトをファイルとして書き込みます。
public {CoverageData.write-to-url url:Url}:void
メソッド 継承 Object: object-describe, object-describe-for-debugging



コンストラクタ詳細
default (ファクトリ)
public {CoverageData.default
data-url:#Url = null,
test-name:#String = null,
efficient-size:int = -1,
add-curl-url-maps?:bool = true,
...:FileCoverageData
}:CoverageData

オブジェクトを初期化します。

test-name: データを生成したテストの名前。
efficient-size: スペースを割り当てるデータ オブジェクトの数。
add-curl-url-maps?: 基本的な "curl:" URL に関して、マッピングを url-maps に追加するかどうかを規定します。詳細は、add-curl-maps を参照してください。
...: 異なるファイルのカバレッジ情報を格納する FileCoverageData オブジェクトを複数記述できます。同じファイルを指定しているオブジェクトはマージされます。


from-stream (ファクトリ)
deprecated public {CoverageData.from-stream
in:TextInputStream,
url:#Url = null
}:CoverageData

ストリームからデータを読み込みます。

説明

データは write-to-stream または write-to-url メソッドを使用して書き込まれなければなりません。その url はエラー メッセージでのみ使用されます。 このメソッドは非推奨なので、将来のリリースで削除されます。代わりに、可能であれば from-url#factory を使用してください。


from-url (ファクトリ)
public {CoverageData.from-url url:Url}:CoverageData

指定の URL からデータを読み込みます。

説明

データは write-to-stream または write-to-url メソッドを使用して書き込まれなければなりません。決まりごととして、そのようなファイルは ".curlcov"(CoverageData.file-extension)拡張子を使用します。 これは、ファイルに書き込まれた最初のオブジェクトを読み込むので、write-to-stream が複数オブジェクトを書き込むために使用された場合、最初のみがこのファクトリによって返されます。


object-deserialize (コンストラクタ)
public {CoverageData.object-deserialize in:SerializeInputStream}

シリアル化されたストリームから逆シリアル化します。

説明

SerializeInputStream から逆シリアル化することで新しいインスタンスを作成します。
導入: バージョン 6.0



プロパティ詳細
data-url (フィールド)
public CoverageData.data-url:#Url

データが読み取られた URL (存在する場合)。



size (アクセサ)
アクセサ public final CoverageData.size:int

格納されている FileCoverageData オブジェクトの数。



statistics (アクセサ)
アクセサ public CoverageData.statistics:CoverageStatistics

このデータのカバレッジ統計を算出します。



test-name (フィールド)
public CoverageData.test-name:#String

このデータを生成したテストの名前。



url-maps (フィールド)
public constant CoverageData.url-maps:UrlMaps

このデータに関連する URL マッピングです。

説明

clone-with-mapped-urls メソッドを参照してください。
導入: バージョン 6.0



クラス変数と定数の詳細
file-extension (クラス定数)
public constant CoverageData.file-extension:String =".curlcov"

CoverageData ファイルの標準ファイル拡張子。





メソッド詳細
add-data (メソッド)
public final {CoverageData.add-data
data:FileCoverageData,
clone-counters?:bool = true
}:void

このオブジェクトにファイル データを追加します。

data: 追加されるファイル データ。
clone-counters?: マージする際に、data オブジェクトから CoverageCounter オブジェクトを複製するかどうかを規定します。これを false に設定することで速くなりますが、結果的に data のカウンタが共有され、何かが修正された場合に望ましくありません。

説明

指定されたファイルのデータが既にある場合、データは data にマージされます。


add-package-file (メソッド)
public inline {CoverageData.add-package-file
package-name:String,
package-url:Url,
package-file:Url
}:void

ソース ファイルとパッケージの関係を記録します。

package-name: ソースファイルを含むパッケージ名です。(Component.name から取得します。)
package-url: パッケージのソース URL です。(Component.source-url から取得します。)
package-file: パッケージに含まれるソース ファイルの URL です。

説明

設定された package-url に対応する PackageCoverageData オブジェクトを探し、必要であれば新しいものを作成し、package-file をその files リストに追加します。 この情報は、get-package-data メソッドを通じてアクセス可能です。
導入: バージョン 6.0


clone (メソッド)
public {CoverageData.clone
deep?:bool = true,
filter:#{proc-type {data:FileCoverageData}:bool} = null
}:CoverageData

このオブジェクトのクローンを返します。

deep?: true(既定)の場合、元となるFileCoverageData オブジェクトは同様にクローンされます。そうでなければ、クローンは同じ FileCoverageData オブジェクトを元のオブジェクトと共有します。
filter: 元となる FileCoverageData オブジェクトに適用されるオプションのフィルタを規定します。filter プロシージャが true を返すオブジェクトだけが新しいオブジェクトに含まれます。


clone-with-mapped-urls (メソッド)
public {CoverageData.clone-with-mapped-urls
clone-counters?:bool = false
}:CoverageData

変換された URLでクローンを作成します。

clone-counters?: 元となる CoverageCounter も閉じられるかどうかを規定します。

説明

CoverageData.url-maps のコンテンツによって変換された全ての URLでクローンを作成します。:
  1. ローカル ファイル システムに to ロケーションが存在しない UrlMap オブジェクトをフィルターにかけて取り除きます。
  2. 残っているマップに、このオブジェクトとサブ オブジェクトを含む URL を適用します。
元のオブジェクトは変更されませんが、clone-counters? が false の場合、古いオブジェクトと新しいオブジェクトは同じ CoverageCounter オブジェクトを共有します。変更がない場合、現在のオブジェクトを返します。

プログラミング注意事項

元のソースのロケーションが異なるホストに記録され、異なるファイル パスで現在のホストで利用可能な場合にのみ、これは便利です。 たとえば、同じネットワークにあってもディレクトリが linux マシンでは "/projects" でアクセス可能であっても、Windows マシンでは "p:/" でアクセス可能なことをサポートします。linux の URL を含む CoverageData オブジェクトが設定されれば、次のようにすることで Windows マシンでデータがアクセス可能になります。
let data:CoverageData =
    {CoverageData.from-url {url "data.curlcov"}}

{data.url-maps.add-map
    {UrlMap {url "file:///projects"}, {url "file:///p:"}}
}

set data = {data.clone-with-mapped-urls}
導入: バージョン 6.0


filter-data (メソッド)
public final {CoverageData.filter-data
filter-proc:{proc-type {data:FileCoverageData}:bool}
}:void

filter-proc を使用してデータにフィルタを適用します。

説明

filter-proc が false を返すと、データを削除します。


filter-packages (メソッド)
public final {CoverageData.filter-packages
filter:{proc-type {data:PackageCoverageData}:bool},
filter-file-data?:bool = true
}:void

パッケージ単位でデータにフィルターをかけます。

説明

filter が false を返すこのオブジェクトに含まれる PackageCoverageData を取り除きます。 filter-file-data? が true の場合、残っている PackageCoverageData に関係のない FileCoverageData も取り除かれます。
導入: バージョン 6.0


get (メソッド)
public final inline {CoverageData.get url:Url}:FileCoverageData

urlFileCoverageData を返します。

説明

データ オブジェクトが url に対応していない場合は、例外をスローします。


get-if-exists (メソッド)
public final {CoverageData.get-if-exists
url:Url
}:(FileCoverageData, found?:bool)

urlFileCoverageData か null を返します。

説明

url に対応するデータがない場合、null と false を返します。
導入: バージョン 6.0


get-package-data (メソッド)
public final {CoverageData.get-package-data
}:{FastArray-of PackageCoverageData}

情報をパッケージ単位で変換します。

説明

パッケージ名でソートされた PackageCoverageData の配列を返します。異なる URL で始まる場合に、同じ名前のパッケージが複数存在する可能性があります。 非推奨の CoverageData.write-to-stream メソッドを使用する場合に、この情報は保存されないことに注意してください。
導入: バージョン 6.0


keys-to-Iterator (メソッド)
public final {CoverageData.keys-to-Iterator}:{Iterator-of Url}

このオブジェクトで格納されるデータの URL の反復子を返します。

説明

このメソッドと CoverageData.get によって、このオブジェクト内のデータを for ループで繰り返し処理できます。


merge (メソッド)
public final {CoverageData.merge
data:CoverageData,
clone?:bool = true
}:void

data のコンテンツをこのオブジェクトにマージします。

説明

add-data を使用して dataFileCoverageData をマージします。 PackageCoverageData.merge を使用して PackageCoverageData をマージします。 UrlMaps.merge を使用して url-maps をマージします。 値がこのオブジェクトと data の間で異なる場合、data-urltest-name を null に設定します。
導入: バージョン 6.0


object-serialize (メソッド)
public sealed {CoverageData.object-serialize}:void

クラス インスタンスが書き込まれるときに、シリアル化コードで呼び出されます。

out: このメソッドを呼び出した SerializeOutputStream

説明

このメソッドは、次のステップを順番に実行する必要があります。
  1. SerializeOutputStream.write-class-version を呼び出します。通常は引数にゼロ (0) を指定します。
  2. シリアル化可能なスーパークラスごとに super.object-serialize を呼び出します。
  3. シリアル化された状態を out に書き込みます。これは通常、フィールドごとに SerializeOutputStream.write-one を呼び出すことによって実行されます。

注意事項

このメソッドは、シリアル化可能なサブクラスでのみ定義する必要があります。


pretty-print (メソッド)
public {CoverageData.pretty-print
out:TextOutputStream,
min-count:int = 0,
max-count:int = max-int
}:void

判読可能なフォーマットでデータを出力します。

out: データが印刷される出力ストリーム。
min-count: 表示されるカウンタ レコードの最小カウント。
max-count: 表示されるカウンタ レコードの最大カウント。この値を 0 に設定すると、カバーされていないコードの位置だけが表示されます。

説明

次のフォーマットでデータを出力します。
url at line line[col]: count


subtract-counts-from (メソッド)
public final {CoverageData.subtract-counts-from}:void

other からカウントを減算します。

説明

次のプロシージャを使用して、このオブジェクトから other 内のカウントを減算します。
other のファイル データ オブジェクトごとに、このオブジェクト内で同じ URL を持つファイル データを検索し、FileCoverageData.subtract-counts-from を使用して対応するカウントを減算します。

プログラミング注意事項

これが役立つのは、データを取得した 2 点のカバレッジ情報を取得する場合です。例 :
{import * from CURL.IDE.COVERAGE}
{coverage-enable}
{coverage-start}
|| ...
{let pre-data:CoverageData = {coverage-results}}
{coverage-start} || restart
{foo}
{let post-data:CoverageData = {coverage-results}}
|| Compute data gathered between two calls to compute-results:
{post-data.subtract-counts-from pre-data}


write-to-stream (メソッド)
deprecated public {CoverageData.write-to-stream}:void

内部フォーマットでストリームにデータを書き込みます。

説明

ファイルに書き込む時に、".curlcov"(CoverageData.file-extension)ファイル拡張子を使用することを推奨します。 このメソッドは非推奨なので、将来のリリースで削除されます。url-maps フィールドやパッケージに関する情報のように 4.0 API でサポートされなかった情報を書き出しません。代わりに、オブジェクトをシリアル化するか write-to-url を使用してください。


write-to-url (メソッド)
public {CoverageData.write-to-url url:Url}:void

オブジェクトをファイルとして書き込みます。

url: 書き込まれるファイルのロケーションを認識します。

説明

オブジェクトを、urlで判別でき、上書き可能なそのロケーションに存在するファイルに書き込みます。このメソッドを使用して、1 ファイルに一つのオブジェクトのみを書き込むことができます。この方法で書き込まれるファイルは CoverageData.from-url#factory ファクトリを使用して読み込まれます。 ファイルに書き込む時に、".curlcov"(CoverageData.file-extension)ファイル拡張子を使用することを推奨します。
導入: バージョン 6.0