命名およびフォーマット

命名上の制約は、Rational® Synergy のオブジェクト、リリース、データベース、および DCM の名前に適用されます。フォーマット・オプションを使用すると、出力の外観を制御することができます。

以下のフォーマット・オプションを使用することができます。各サブコマンドのコマンド構文では、そのサブコマンドでどのフォーマット・オプションがサポートされているかを示しています。

フォーマット情報の後に、命名上の制約に関する情報が続きます。

列の位置合わせ

ほとんどのコマンドの出力は、デフォルトで整列 (列による位置合わせ) が行われます。フォーマット・ストリングは、デフォルトの分離文字であるスペースを使用して各列に振り分けられます。

例えば、"%name Release=%release" というフォーマット・ストリングは、以下の列に振り分けられます。

  • 1 番目の列には、1 つの要素、つまり、%name キーワードが含まれます。
  • 2 番目の列には、以下の 2 つの要素が含まれます。

    * ストリング・リテラル "Release="

    * キーワード %release

3 つのオブジェクトについてレポートするコマンドでは、以下のような出力が表示されます。

ClientSessionContext.java Release=client/1.0
DisplayNameResourceBundle.java Release=client/2.0
DataNotFoundException.java Release=client/1.0

この出力例では、2 番目の列を垂直方向に位置合わせするために、1 番目の列にスペースが含まれています。位置合わせは、端末のディスプレイ装置でモノスペース・フォントを使用していることを前提として計算されます。列の位置が揃っていない場合は、ディスプレイ装置でプロポーショナル・フォントではなく固定スペース・フォントを使用していることを確認してください。ディスプレイ装置で位置合わせが正しく行われるようにするには、ccm.cli.format.font を固定スペース・フォントに設定する必要があります。

改行文字を使用すると、フォーマット・ストリングを現在の列で終了させることができます。改行文字の後のテキストは、次の行の 1 番目の列の一部になります。

-sep|-separator

-sep|-separator separator オプションを使用して、異なる分離文字を指定することができます。例えば、"%name|Release %release" というフォーマット・ストリングがあるとします。デフォルトの分離文字を使用した場合、フォーマット・ストリングは以下の 2 つの列から構成されます。

  • 1 番目の列には、以下の 2 つの要素が含まれます。

    * キーワード %name

    * ストリング・リテラル "|Release"

  • 2 番目の列には、キーワード %release が含まれます。

3 つのオブジェクトについてレポートするコマンドでは、以下のような出力が表示されます。

ClientSessionContext.java|Release client/1.0
DisplayNameResourceBundle.java|Release client/2.0
DataNotFoundException.java|Release client/1.0

ここで、オプション -sep "|" を指定した場合に、同じフォーマット・ストリングがどのように解釈されるかを考えてみましょう。フォーマット・ストリングは、以下のように、パイプ分離文字を使用して各列に振り分けられます。

  • 1 番目の列にはキーワード %name が含まれます。
  • 2 番目の列には、以下の 2 つの要素が含まれます。

    * ストリング・リテラル "Release "

    * キーワード %release

同じデータに対して、出力結果は以下のようになります。

ClientSessionContext.java Release client/1.0
DisplayNameResourceBundle.java Release client/2.0
DataNotFoundException.java Release client/1.0

-nf|-noformat

-nf|-noformat オプションは、列の位置合わせを使用しないように指定します。これを指定すると、すべての要素を含む単一の列としてフォーマット・ストリングが解釈されます。このオプションは、区切り文字で区切られている出力 (コンマ区切りなど) を作成する場合に使用してください。

フォーマット・ストリングの高度な利用方法

これまでの例では、フォーマット・ストリングはストリング・リテラルまたは単純なキーワード (%release など) のいずれかから構成されていました。必要なフォーマットを実現するためにはこれで十分かもしれません。しかし、Synergy CLI クライアントは、さらに優れた制御性および柔軟性を提供するより高度な形式をサポートしています。

前述のように、-nf|-noformat オプションを指定しない限り、フォーマット・ストリングは最初に各列に振り分けられます。各列は、以下の要素を任意に組み合わせた集合として構成できます。

  • ストリング・リテラル

    これは、出力ではそのまま表示されます。出力に単一のパーセント記号 (%) を表示させる場合は、%% のように、連続する 2つのパーセント記号を指定します。

  • キーワード

    これは、レポート対象オブジェクトの指定されたプロパティーの値のストリング表現に置き換わります。

  • 列プロパティー・フォーマット要素

    これは、その列の内容に関するいくつかの全体的なフォーマットを制御します。詳しくは、列のフォーマット要素を参照してください。

キーワード

これまでの例では、最も単純な形式のキーワードとして、パーセント記号の後にプロパティーの名前が指定されたキーワードが使用されていました。例えば、%release は、release というプロパティーの値のストリング表現に置き換わります。レポート対象オブジェクトが Synergy データベース内のオブジェクトである場合、プロパティー名は属性名か組み込みキーワードのいずれかです。

場合によっては、レポート対象オブジェクトがデータベース・エンティティーではないこともあります。例えば、プロジェクト・メンバーシップ・コンフリクトは、コンフリクトしているオブジェクト、親プロジェクト、コンフリクトのタイプ、関連するタスクなどのデータから構成されています。どのデータをレポート対象とするか指定するため、次のように、objectkey キーワードを使用することができます。

%[objectkey]propertyname

objectkey は、指定されたプロパティーが参照する、オブジェクトの部分を指定します。例えば、プロジェクト・メンバーシップ・コンフリクトの場合、object オブジェクト・キーはコンフリクトしているファイルまたはディレクトリーを参照し、project オブジェクト・キーはコンフリクトに関連する親プロジェクトを参照します。フォーマット・ストリング %[project]displayname %[object]release は、各メンバーシップ・コンフリクトに関連するプロジェクトの組み込みプロパティー displayname、およびコンフリクトしているファイルまたはディレクトリーの release プロパティーを表示します。

サポートされているオブジェクト・キーについての詳細は、それぞれのコマンドで説明されています。

Synergy CLI では拡張キーワードがサポートされています。拡張キーワードには、以下のいずれかの形式を使用します。

%{keywordspec}
%{keywordspec:-substitutionstring}
%{keywordspec:+substitutionstring}

ここで、keywordspec は以下のいずれかの形式にすることができます。

propertyname
+propertyname
-propertyname
[objectkey]propertyname
+[objectkey]propertyname
-[objectkey]propertyname
propertyname[propertyformat]
+propertyname[propertyformat]
-propertyname[propertyformat]
[objectkey]propertyname[propertyformat]
+[objectkey]propertyname[propertyformat]
-[objectkey]propertyname[propertyformat]

各形式において、objectkey は参照先のオブジェクトを指定します。propertyname はプロパティー (属性や組み込みキーワードなど) の名前です。

propertyformat はプロパティー値をストリングに変換してそれをフォーマットする方法を指定します。詳しくは、プロパティーのフォーマットを参照してください。

substitutionstring を使用する形式では、指定されたプロパティーまたは属性が存在するかどうかに応じて、拡張キーワードに対して置換ストリング・リテラルが使用されます。

  • -substitutionstring 形式は、プロパティーが存在しない場合は指定の置換ストリングを使用することを意味します。プロパティーが存在する場合は、その値が使用されます。
  • +substitutionstring 形式は、プロパティーが存在する場合は指定の置換ストリングを使用し、存在しない場合はヌル値のストリング表現を使用することを意味します。

先頭の任意指定の文字である + または - は、デフォルトのソート順序を指定します。詳しくは、ソートおよびグルーピングを参照してください。

例:

キーワード "%{release:-No release}" は、オブジェクトの release プロパティーを参照します。プロパティーが存在する場合は、その値が表示されます。プロパティーが存在しない場合は、ストリング "No release" が表示されます。

キーワード "%{[project]release[truncate='20']}" は、オブジェクトに関連付けられているプロジェクトの release プロパティーを参照します。プロパティーが存在する場合は、その値が使用されます。ただし、幅が 20 を超えると、切り捨てられて省略符号が表示されます。

プロパティーのフォーマット

キーワードがオブジェクトのプロパティーを参照している場合、その値はストリングに変換され、プロパティー・フォーマット・オプションを使用してフォーマットされます。例えば、ブール値属性は、ブール値である true または false を表すストリングに変換されます。プロパティーのフォーマットが指定されていない場合、プロパティー値は以下のようにストリングに変換されます。

表 1. プロパティー・フォーマットが未指定の場合に、プロパティー値の変換ストリングの表示に使用されるフォーマット
値のタイプ 変換
NULL ほとんどのコマンドでは、指定されたプロパティーが存在しない場合には "<Not available>" と表示されます。
ブール値 ブール値の true は "TRUE" として表示され、false は "FALSE" として表示されます。
ストリング (ストリング属性またはテキスト属性) ストリング値は、末尾の改行がすべて削除された状態で表示されます。
日付 (時刻属性) 日付は日付ストリングに変換されます。ccm.cli.format.date が定義されている場合には、それが日付形式ストリングとして使用されます。定義されていない場合は、該当するロケールのデフォルトの日付形式が使用されます。
整数 整数は 10 進数ストリングとして表示されます。
浮動小数点数 浮動小数点数は 10 進数の浮動小数点ストリングとして表示されます。
集合 プロパティー値が要素の集合である場合、値は、それぞれの要素がプロパティーとしてフォーマットされてコンマで区切られた形式になります。

キーワードまたは列のフォーマット要素では、各プロパティー値をフォーマットするための追加の制御要素を指定できます。そのためには、0 個、1 個、または複数個の以下の項目からなる propertyformat を指定します。複数の項目を指定する場合は、それらの項目を空白文字で区切ります。

propertyFormatName=propertyFormatValue
propertyFormatName='singleQuotedPropertyFormatValue'
propertyFormatName="doubleQuotedPropertyFormatValue"

ここで、

propertyFormatName はサポートされているプロパティー・フォーマット・オプションの名前です。

propertyFormatValue は空白文字を含まない値です。この値は、Java™ 正規表現規則で定義されている「単語」文字で構成されている必要があります。

singleQuotedPropertyFormatValue は、単一引用符 (アポストロフィ) 以外の任意の文字を含むことができるストリングです。

doubleQuotedPropertyFormatValue は、二重引用符以外の任意の文字を含むことができるストリングです。

wrap=20 truncate=100

これは、最大文字数である 100 文字で値を切り捨て、20 文字の列幅に収まるように文字を折り返すように指定します。

Rational Synergy は、以下のプロパティー・フォーマット名をサポートしています。

null
プロパティーが存在しない場合の NULL 値を表すストリングを指定します。
false
ブール値 false を表すストリングを指定します。
true
ブール値 true を表すストリングを指定します。
format
プロパティー値のフォーマットに使用するフォーマット・ストリングを指定します。ストリングに「{0」が含まれている場合、フォーマットでは MessageFormat (Java の標準のフォーマットおよびローカライズ機能) が使用されます。ストリングに「{0」が含まれていない場合、フォーマットでは printf (Javaの標準のストリング・フォーマット機能) が使用されます。
dateformat
日付プロパティー値のフォーマットに使用する日付形式ストリングを指定します。日付形式は SimpleDateFormat (Javaの標準の日付フォーマッター) に対して有効なストリングでなければなりません。
list_begin
プロパティー値が集合である場合に使用する開始ストリングを指定します。
list_end
プロパティー値が集合である場合に使用する終了ストリングを指定します。
separator
プロパティー値が集合である場合に使用する項目分離文字を指定します。
truncate
表示するストリングの最大長を指定します。ストリングが切り捨てられる場合は、そのストリングの末尾に切り捨てインディケーターが付加されて、指定された最大長になります。デフォルトでは、切り捨てインディケーターは省略符号 (...) です。
truncate_each
集合である値に含まれている各要素の最大長を指定します。ストリングが切り捨てられる場合は、そのストリングの末尾に切り捨てインディケーターが付加されて、指定された最大長になります。デフォルトでは、切り捨てインディケーターは省略符号 (...) です。
truncate_indicator
切り捨てられた表示値を表示するために使用するストリングを指定します。デフォルトでは、この値は省略符号 (...) です。
wordwrap
最大列幅を指定します。また、指定された幅よりも長い文字を折り返すことを指定します。
wrap
最大列幅を指定します。また、指定された幅よりも長い文字を折り返すことを指定します。
keep_trailing_newlines
この値が true の場合、値の末尾にある改行が出力で維持されます。
nocolumn
この値が true の場合、列の位置合わせが無視されます。
indent
プロパティー値の行インデント幅を指定します。値は 1 から 1000 までの整数でなければなりません (1 と 1000 を含みます)。

列のフォーマット要素

フォーマット・ストリングでは、列のフォーマット要素を指定して、その列内のデータのフォーマット方法を制御できます。列のフォーマット要素を指定すると、その要素で指定されたオプションを使用して列全体がフォーマットされます。列のフォーマット要素は次のような形式になります。

%[propertyformat]

ここで、propertyformat は、プロパティーのフォーマットで説明されているプロパティー・フォーマットです。

例えば、パイプ (|) を分離文字として使用したフォーマット・ストリング "%name|%[wrap=20]%version %{release[truncate=30]}" があるとします。このフォーマット・ストリングは、以下の 2 つの列から構成されます。

1 番目の列には %name キーワードが含まれます。

2 番目の列には、以下の 4 つの要素が含まれます。

  • 列の文字を幅 20 で折り返す、列のフォーマット要素 "%[wrap=20]"
  • キーワード %version
  • ストリング・リテラル " "
  • 幅 30 で切り捨てたリリース値を表示するように指定するキーワード %{release[truncate=30]}

2 番目の列が処理されるとき、表示されるストリングは以下のように決定されます。

必要に応じて、release プロパティー値がストリングに変換されます。

  1. ストリング・リテラル " " が付加されます。
  2. 必要に応じて、release プロパティー値がストリングに変換されます。
  3. 必要に応じて、リリース・ストリングが最大幅 30 で切り捨てられます。
  4. この切り捨てが行われた可能性のあるストリングが列に付加されます。
  5. 幅 20 で折り返された文字が、列全体の値になります。

-f|-format

-f|-format format オプションは、使用するフォーマット・ストリングを指定します。任意のグローバル・フォーマット・オプションを使用することができます。指定を省略した場合は、サブコマンドに固有のデフォルトのフォーマット・ストリングがコマンドによって使用されます。

ソートおよびグルーピング

ほとんどのコマンドでは、ソート・オプションやグルーピング・オプションが指定されずにソートが実行される場合には、デフォルトのソート・アルゴリズムを使用して、レポート対象オブジェクトがソートされます。選択セットが更新されると、ソートされた出力でオブジェクトがレポートされた順序が、その選択セットに反映されます。

デフォルトのソート・アルゴリズムでは、フォーマット・ストリング、およびそのフォーマット・ストリング内のキーワードによって参照されている実際のプロパティー値が使用されます。例えば、Synergy データベース内のオブジェクトに対してフォーマット・ストリング "%create_time %release %displayname" を使用した場合には、以下のようなソートが実行されます。

  1. create_time 属性が昇順の 1 次キーとして使用されます。その際には、表示される日付ストリングではなく、実際の日付値が使用されます。
  2. release 属性が昇順の 2 次キーとして使用されます。
  3. 組み込みキーワード displayname が昇順の 3 次キーとして使用されます。

    デフォルトでは、それぞれのソート・キーでプロパティー値の昇順ソートが実行されます。これは、いずれかの拡張キーワード形式を使用して変更することができます。詳しくは、キーワードを参照してください。例えば、フォーマット・ストリング "%{-create_time} %{-release} %displayname" の場合は、以下のようにソートが実行されます。

  4. create_time 属性が降順の 1 次キーとして使用されます。その際には、表示される日付ストリングではなく、実際の日付値が使用されます。
  5. release 属性が降順の 2 次キーとして使用されます。
  6. 組み込みキーワード displayname が昇順の 3 次キーとして使用されます。

    最初に指定されているものから順番に引数を処理していくコマンドでは、通常、ソートは実行されないため、ソートやグルーピングに関連するオプションはいずれもサポートされていません。そのようなコマンドの例として、ccm properties があります。

-ns|-nosort

-ns|-nosort オプションはすべてのソートおよびグルーピングを使用不可にします。このオプションは、オブジェクトの検出順序を保持する場合に使用します。

-sby|-sortby

-sby|-sortby sort_spec オプションは、出力の明示的ソートを指定します。これによって、フォーマット・ストリングに基づくデフォルトのソート・アルゴリズムが指定変更されます。sort_spec は、以下の形式の項目が 1 つ以上列挙されたリストです。分離文字は任意指定で、指定する場合はコンマを使用します。

propertyname
+propertyname
-propertyname
[objectkey]propertyname

+[objectkey]propertyname
-[objectkey]propertyname

先頭に + が付いている項目は昇順のソート・キーとして使用されます。先頭に - が付いている項目は降順のソート・キーとして使用されます。いずれも付いていない項目は昇順のソート・キーとして使用されます。

  • create_time,release

    昇順の create_time を 1 次キー、昇順の release を 2 次キーとしてソートします。

  • -create_time,release

    降順の create_time を1 次キー、昇順の release を 2 次キーとしてソートします。

  • +release-create_time

    昇順の release を1 次キー、降順の create_time を 2 次キーとしてソートします。

sort_spec にリストされているプロパティーがフォーマット・ストリングに含まれている必要はありません。-sby|-sortby を指定した場合、ソートはフォーマット・ストリングで参照されているプロパティーに依存しません。

-gby|-groupby

グルーピングは、ソートを別の形で実現する機能です。-gby|-groupby groupformat オプションを指定すると、groupformat フォーマット・ストリングで指定された値によって初期レベルのソートが実行されます。同一のグルーピング・データ値セットを持つオブジェクトが一緒に保持され、出力ではそれらの前にグループ・ヘッダーが付けられます。グループ・ヘッダーは、指定された groupformat フォーマット・ストリングを展開することで生成されます。詳しくは、フォーマット・ストリングを参照してください。

例えば、-groupby "Release %release:" と指定すると、release プロパティーの値を 1 次キーとして使用して、すべてのオブジェクトがソートされます。これは、他のどのソート・キーよりも優先されます。例えば、コマンドで 5 つのオブジェクトがレポートされ、そのうちの 2 つはリリース値が 1.0 であり、3 つはリリース値が 2.0 である場合、オブジェクトは以下のようにグルーピングされます。

Release 1.0:
リリースが 1.0 である最初のオブジェクト
リリースが 1.0 である 2 番目のオブジェクト

Release 2.0:
リリースが 2.0 である最初のオブジェクト
リリースが 2.0 である 2 番目のオブジェクト
リリースが 2.0 である 3 番目のオブジェクト

グルーピングとソートの両方を使用した場合には、groupformat で指定されたソート・キーが最初に使用されます。次に、sort_spec が指定されていればそのソート・キーが使用され、指定されていなければ format ストリングが使用されます。例えば、-groupby "Release %release:" -sortby create_time と指定すると、ソートでは、release が昇順の 1 次キーとして使用され、create_time が昇順の 2 次キーとして使用されます。

グルーピング、ソート、および列ヘッダーの詳細例については、フォーマットの使用例の 2 番目の例を参照してください。

列ヘッダー

列ヘッダーはフォーマット・ストリングから導出されるタイトル・ストリングです。これは、出力で各列の上部にヘッダーとして表示されます。例えば、"%name %release %create_time" というフォーマット・ストリングを指定した場合、対応する列ヘッダーは、列 1 が Name、列 2 が Release、および列 3 が Create_time になります。

グルーピング、ソート、および列ヘッダーの詳細例については、フォーマットの使用例の 2 番目の例を参照してください。

-ch|-column_header

出力に列ヘッダーを使用するように指定します。このオプションを -nf|-noformat オプションと一緒に使用することはできません。

デフォルトでは、列ヘッダーは使用されません。

-nch|-nocolumn_header

出力に列ヘッダーを使用しないように指定します。ほとんどのコマンドではこれがデフォルトです。

番号付け

出力が Synergy データベース内のオブジェクトを表しているコマンドのうち、選択セットを設定するコマンドでは、デフォルトで、番号付き出力が使用されます。番号付けには、クエリー選択セット参照形式を使用してそのオブジェクトを参照するために使用される選択セット参照番号が反映されます。

-u|-unnumbered

出力に番号を付けないように指定します。このオプションは、出力の順序付けや、結果として生成される選択セットの順序付けには影響を与えません。

制限されているオブジェクト名

オブジェクト名には、制限文字以外の英数字と記号の任意の組み合わせを含めることができます。

以下に、Rational Synergy オブジェクトの命名上の制約の一部を示します。

  • 8 ビット文字および 2 バイト文字 (最上位ビットが設定されているもの) をオブジェクト名に含めることはできません。
  • プロジェクト名にタブを含めることはできません。Make ファイル名にタブやスペースを含めることはできません。

その他の制限文字およびそれらが制限されている理由は、次の表のとおりです。

文字 制限されている理由
/ UNIX のパス区切り文字、内部区切り文字
\ Windows のパス区切り文字、エスケープ文字
' UNIX の引用文字 (開始引用符)
" Windows の引用文字
: Windows のドライブ名区切り文字、Rational Synergy のオブジェクト仕様区切り文字
? INFORMIX の単一文字ワイルドカード、正規表現
* INFORMIX の複数文字ワイルドカード、正規表現
[ INFORMIX の一致構文、正規表現
] INFORMIX の一致構文、正規表現
@ Rational Synergy のオブジェクト仕様区切り文字
- Rational Synergy のバージョン区切り文字

以下の文字をオブジェクト名の先頭文字として使用することはできません。

  • , (コンマ)
  • + (正符号)
  • - (ダッシュ)
  • ~ (ティルド)

フィードバック