> -----Original Message----- > From: Nick Chalko [mailto:[EMAIL PROTECTED] > Sent: 24 August 2004 07:34 > To: Depot Development > Subject: Re: Is version compatability symetric > > Stephen McConnell wrote > > > > >Hang on .. what is the argument to is isCompatible ? > > > >You example quotes: > > > > > In other words if > > > 1.2.3 is compatible with 1.2.4 then is 1.2.4 compatible > > > with 1.2.3 ? > > > >This suggests that isCompatible() is evaluating a Dewey decimal version > >- no? Concerning link reference - the initial page does not seem to take > >into consideration "major", "minor", micro" semantics. As such I'll > >need some confirmation - does "X.Y.Z" carry version semantics or is it > >simply a string? > > > >Steve. > > > > > > Good questions > from > http://incubator.apache.org/depot/version/javadocs/org/apache/depot/vers io > n/Version.html
Sorry .. but this is rubbish relative to the question posed ... This Main version interface. This class provides NO restrictions on what and how to order and format or display version. How it is created incremented or displayed is completly independent. Given Version objects a and b a.equals(b) iff b.equals(a) a.compare(b) == 0 iff a.equals(b) a.equals(b) --> a.hashCode() == b.hashCode() a.equals(b) --> a.isCompatible(b) BUT what about a.compare(b) < 0 --> ! a.isCompatible(b) NOTE: Version should be implemented as a Immutable object. I want something that declares what the input argument is and what semantics are that are applied to that argument. The quoted class does not define equals or compare, however, the Version class declares isComparable(). The isComparable() function states: "May this version be used in place of the specified version." However, this just brings us back to the definition of Version. If version is an opaque string - then this needs to be stated. If not, the semantics need to be specified. Stephen. (member of the evil empire and biologically aligned with the dark lord)