ExtendedVersionNumber (クラス)
public final serializable ExtendedVersionNumber {inherits VersionNumber}
パッケージ: CURL.LANGUAGE.COMPONENT

n.n.n...n+ のフォームでソフトウェアのバージョン番号を表すクラス。

説明

これらの番号と単純な VersionNumber の違いは、末尾に '+' の記号が付けられて出力されること、および ExtendedVersionNumber.partial-match? メソッドでは VersionNumber からのバージョンより多くのバージョンに一致することです。

StringInterface からこのクラスへの自動的なキャスティングがサポートされています。したがって、VersionNumber または ExtendedVersionNumber の使用が要求される場合に "n.n...n+" のフォームの文字列を使用することができます。次に例を示します。

{package MY-PACKAGE,
    || This is ok, because a VersionNumber is expected
    || for the built in version attribute.
    version="1.3",
    || This is just a string because the system doesn't
    || know anything about the expected type of my-version.
    my-version="1.3+",
    || This is ok.
    another-version={ExtendedVersionNumber 1,3}
}

{import ANOTHER-PACKAGE, version="1.4.5+"}

{let public constant version:VersionNumber = "2.4+"}


作成された ExtendedVersionNumber オブジェクトは不変オブジェクトになります

コンストラクタ
default:バージョン番号を初期化します。
コンストラクタ public {ExtendedVersionNumber.default
copy-from:#VersionNumber = null,
copy-n:int = 0,
...:uint16
}

プロパティ
プロパティ 継承 VersionNumber: size

メソッド
n-clone:n 個のコンポーネントを含む、このバージョン番号のコピーを返します。
public inline {ExtendedVersionNumber.n-clone
n:int = self.size
}:VersionNumber
next-version:この次のバージョンを返します。
public sealed {ExtendedVersionNumber.next-version
n:int = self.size - 1
}:VersionNumber
partial-match?:other がこのバージョンと部分的に一致するかどうかを示します。
public sealed {ExtendedVersionNumber.partial-match?}:bool
メソッド 継承 VersionNumber: compare-to, component, n-equal?
メソッド 継承 Object: object-describe, object-describe-for-debugging, object-serialize



コンストラクタ詳細
default (コンストラクタ)
public {ExtendedVersionNumber.default
copy-from:#VersionNumber = null,
copy-n:int = 0,
...:uint16
}

バージョン番号を初期化します。

copy-from: 指定された場合、値はこのオブジェクトからコピーされます。copy-n パラメータはコピーされるコンポーネントの数を決定します。
copy-n: copy-from が null 以外で、コピーするコンポーネントの数を指定する場合にのみ使用されます。1 以上の任意の値を指定できます。1 より小さい場合、既定により copy-from オブジェクトのサイズになります。copy-from のサイズより大きい場合、追加されるコンポーネントはゼロになります。
...: バージョン番号のコンポーネントを指定する、正の整数のリスト。



プロパティ詳細


メソッド詳細
n-clone (メソッド)
public inline {ExtendedVersionNumber.n-clone
n:int = self.size
}:VersionNumber

n 個のコンポーネントを含む、このバージョン番号のコピーを返します。

説明

nsize より大きい場合、追加のコンポーネントは 0 に設定されます。ExtendedVersionNumber の場合、size より大きい n の値は無視されます。

nsize より小さい場合、戻り値のバージョンは切り捨てられたものになります。切り捨てられたバージョンは常に VersionNumber 型で、サブタイプではありません。


例: VersionNumber.n-clone の使用
{define-proc {make-table max-n:int =4, ...:VersionNumber}:Table
    let table:Table =
        {Table cell-border-width=1, cell-border-color="black"}

    || Column labels
    {for n = 1 to max-n do
        {table.add row = 1, column = n,
            {cell background="beige", n == {value n}}
        }
    }

    || Generate table rows
    {for version key i in ... do
        let row = i + 2
        {table.add row = row, column = 0,
            {cell background="beige", {value version}}
        }
        {for n = 1 to max-n do
            || Add cloned number to table cell
            {table.add row = row, column = n,
                {version.n-clone n = n}
            }
        }
    }
    {return table}
}

{make-table "1.2.3", "1.2.3+"}


next-version (メソッド)
public sealed {ExtendedVersionNumber.next-version
n:int = self.size - 1
}:VersionNumber

この次のバージョンを返します。

説明

このバージョンの n 番目のコンポーネントの番号を増やして、次のバージョン番号を返します。ExtendedVersionNumber では、n の値が size 以上の場合にこれらは size より小さいものと同じように扱われます。


例: VersionNumber.next-version の使用
{define-proc {make-table max-n:int =4, ...:VersionNumber}:Table
    let table:Table =
        {Table cell-border-width=1, cell-border-color="black"}

    || Column labels
    {for n = 1 to max-n do
        {table.add row = 1, column = n,
            {cell background="beige", n == {value n}}
        }
    }

    || Generate table rows
    {for version key i in ... do
        let row = i + 2
        {table.add row = row, column = 0,
            {cell background="beige", {value version}}
        }
        {for n = 1 to max-n do
            || Add next version to table cell
            {table.add row = row, column = n,
                {version.next-version n = n}
            }
        }
    }
    {return table}
}

{make-table "1.2.3", "1.2.3+"}


partial-match? (メソッド)
public sealed {ExtendedVersionNumber.partial-match?}:bool

other がこのバージョンと部分的に一致するかどうかを示します。

説明

次のような場合にこのバージョン番号との部分的な一致になります。

  1. other のコンポーネントが、少なくともこのバージョンの最後のコンポーネントを除くコンポーネントに一致する場合。
  2. このバージョンの最後のコンポーネントが、other に対応するコンポーネント以下である場合。


たとえば、"1.2.3" は "1.2.4" や "1.2.6.7" とは部分的に一致しますが、"1.2.2" や "1.3" とは一致しません。