/*! @header FTVersionImpl @abstract Module of FT @availability OS X, GNUstep @copyright 2004, 2005, 2006 Free Software Foundation, Inc. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  -------------------------------------------------------------------------
  Modification history

  04.10.05 ola     initial version
  23.08.06 ola     license changed
  -------------------------------------------------------------------------
  
*/ #if !defined(__FTVersionImpl_H) #define __FTVersionImpl_H #include #include #include /*! * @class FTVersionImpl * @abstract Default implementation for representation of version numbers. */ @interface FTVersionImpl : FTObject { @private unsigned major; unsigned minor; unsigned build; ft_releaseState_t state; NSString *versionString; } /*! * @method initWithMajor * @abstract Initializes with the given version information * @param aMajorNr major version number * @param aMinorNr minor version number * @param aState state of the build * @result self */ - initWithMajor: (unsigned) aMajorNr withMinor: (unsigned) aMinorNr withBuild: (unsigned) aBuildNr asState: (ft_releaseState_t) aState; - (void) dealloc; /*! * @method build * @result build number */ - (unsigned) build; /*! * @method characterForState * @abstract determines the representing character for the given state * @result representing character for the given state */ + (char) characterForState: (ft_releaseState_t) aState; /*! * @method createVersionString * @abstract creates the version string based on the internal settings * @param aMajorNr major number * @param aMinorNr minor number * @param aBuildNr build number * @param aState state of the artefact. * @result self */ + (NSString *) createVersionStringForMajor: (unsigned) aMajorNr forMinor: (unsigned) aMinorNr forBuild: (unsigned) aBuildNr forState: (ft_releaseState_t) aState; /*! * @method description * @result Returns an NSString object that describes the contents of the * receiver. The debugger’s print-object command indirectly invokes this method * to produce a textual description of an object. */ - (NSString *) description; /*! * @method hash * @result Returns an integer that can be used as a table address in a hash * table structure */ - (unsigned) hash; /*! * @method isEqual * @result Returns YES if the receiver and anObject are equal, NO otherwise. */ - (BOOL) isEqual: (id) anObject; /*! * @method major * @result major version number */ - (unsigned) major; /*! * @method minor * @result returns minor version number */ - (unsigned) minor; /*! * @method releaseState * @result state of the release */ - (ft_releaseState_t) releaseState; /*! * @method versionString * @abstract Used to create a unique string representation of the version. * @result string representation of the version */ - (NSString *) versionString; @end #endif