class Value implements Comparable<Value> {

    @Override
    public int compareTo(final Value value) {
        if (comparable == null && value.comparable == null) {
            return 0;
        } else if (comparable == null) {
            return -1;
        } else if (value.comparable == null) {
            return 1;
        } else {
            try {
                return this.comparable.compareTo(value.comparable);
            } catch (final ClassCastException cce) {
                return this.comparable.toString().compareTo(value.comparable.toString());
            }
        }
    }

    public  Value(final Comparable comparable);

}