/*! @header FTSystemDictionary @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

  02.03.05 ola     initial version
  23.08.06 ola     license changed
  -------------------------------------------------------------------------
  
*/ #if !defined(__FTSystemDictionary_H) #define __FTSystemDictionary_H #include #include #include @protocol FTServer; /*! * @class FTSystemDictionary * @abstract The system dictionary is used to manage system internal settings */ @interface FTSystemDictionary : FTObject { @private id dictionaryProvider; id server; } /*! * @method initWithDictionaryProvider * @param aDictionaryProvider dictionary to use * @abstract initialize this instance with the underlying dictionary to be * used */ - initWithDictionaryProvider: (id ) aDictionaryProvider forServer: (id ) aServer; - (void) dealloc; /*! * @method newGraphDatabaseName * @abstract return a unique name usefule for creating a database. * This name is based on a naming scheme and a related counter. * @discussion This method is for internal purposes only. * @param schemeInfoEntry reference to an entry within info.plist * which contains the naming scheme * @param aCounterName name of the counter which refers to an integer value * within the dictionary provider * @param increment value to add to the counter before creating the name * @discussion based on a naming scheme, a counter and an increment value * this method creates a unique name for a database. For internal usage only. * @throws ECIllegalArgumentException if the info.plist entry could not be * found. * @throws ECIllegalStateException in case an exception occurs using the * given dictionary provider. */ - (NSString *) newUniqueNameWithScheme: (NSString *) schemeInfoEntry counterName: (NSString *) aCounterName increment: (int) increment; /*! * @method newGraphDatabaseName * @abstract Get a unique name for a graph database * @discussion This method is based on an internal counter and the naming schema * to be found in info.plist under {@link #FT_IP_GRAPH_DBNAME_SCHEME} * @result unique name for a database * @throws ECIllegalStateException in case of an unexpected error using the * given dictionary provider. */ - (NSString *) newGraphDatabaseName; /*! * @method setup * @abstract setup this dictionary * @discussion this method should directly be called after the dictionary * database has been created. It setups basic entries. */ - setup; /*! * @method updateCounterWithName * @abstract update an entry by incrementing its value * @discussion This method is for internal purposes only * @param aName name of entry * @param increment value to add * @result new value * @throws ECIllegalStateException in case of an exception thrown by the * dictiobary provider */ - (int) updateCounterWithName: (NSString *) aName increment: (int) increment; @end #endif