A lightweight framework to apply a Design by Contract (DbC) coding style. Additionally, SafeR provides operations for checks which return a boolean value beside other related operations. SafeR supports DbC in two ways: with safe reference objects and assertions with just static operations. While the latter is the same approach as seen typically in "Assert" classes with static operations, the former is the preferred approach wherever possible. Safe reference objects can be seen as (immutable) containers or wrappers which assert that the references they contain are in the specified / expected state. By using the type of a safe reference class as parameter type or return type of an operation, the caller of the operation is forced to comply with the contract at compile time.
A double ended array list. The DearList can be used as list and as deque (double ended queue). The DearList can be many times, e.g. thousends of times, faster than a classical single ended array list, when adding or removing elements in the head area of the list (depending on the number of elements contained in the list). The DearList can also shrink and not just grow. Growing and shrinking of the DearList can be configured and controlled very fine-grained. The DearList employs a CowIterator (copy-on-write iterator) developed for the DearList. The CowIterator allows to add and remove elements during an iteration via any operation of the list interface and not just via the iterator itself. The DearList also supports to register change event listeners.
An object-oriented database. FunDB organizes the data in pseudo-tables where individual objects can be stored in pseudo-rows as well as entire object graphs. FunDB supports queries and other (CRUD) operations also as lambda expressions which will be executed within the database. Moreover, FunDB supports to compose queries of any complexity by nestable query objects. The database can be used embedded as well as in client / server mode. The database server uses Java RMI technology to be able to handle any Java class from the client even if a class is not in its classpath.
A game engine. This game engine supports primarily turn-based games and provides enhanced support for games which are based on fields, areas, territories, zones, rooms and such. nGin relies heavily on the decorator pattern and the strategy pattern and provides the game developer many features such as fully automatic serialization, command processors and so on. Some demo games (console) are included: