Class CustomizableVersion

java.lang.Object
net.okapia.osid.primordium.installation.CustomizableVersion
All Implemented Interfaces:
Serializable, Comparable<Version>, OsidPrimitive, Version, Version, OsidPrimitive

public class CustomizableVersion extends Object implements Version
A Version that wraps another version and forwards every method to it, so it carries exactly the wrapped value and the same identity: it is equal to the version it wraps and to any other version of the same value. The single seam is toString(); every other method is final, so a subclass cannot reach anything the contract depends on. Customize the string form by passing a CustomizableVersion.Codec to version(org.osid.installation.Version, Codec), or by subclassing and overriding toString().

See CustomizableDistance for the full design rationale (value-based identity, the toString() seam, and the bundling pattern). Intentionally not final.

See Also: