The SFC Package
The SFC Package (Software Foundation Classes) can be used as base for advanced software systems.
Package Specification
The SFC Package contains advanced support for collections and arrays,
configuration, events, graphical user interfaces, unique ids, io,
math, statistics, networking, parallelization (for both local and network distribution),
reference counting, security, text and xml processing (xml, xhtml, svg, css).
The SFC-package is a set of useful, versatile base classes used by the
Distributed Genetic Programming Framework (DGPF), for example. These
classes are not limited to the purpose of genetic programming, but
include functionality which my be useful in any cases, like:
- Java Collection utility methods / advanced array processing
- Multi-language support
- Advanced event processing
- GUI elements / window utilities
- I/O-utilities, like reference counted streams and routines that may
convert any object into stream (if an object is a String, for example,
creating a file stream with that name, if an object is an URL, return
a stream to that URL’s data and so on), Base64 en-/decoding
- Mathematical routines like erfc-, beta-, and gamma-function as well
statistic evaluation modules
- Networking support, basic classes for simple/efficient application
servers
- Parallelization support: advanced threads,thread groups and synchronization
objects
- Distribution support: A Peer-To-Peer node component allows you to build
robust and efficient peer-to-peer networks.
This feature is heavily used by the genetic evolution modules, for
example.
- XML support: advanced SAX/DOM classes, XHTML, CSS, MathML and SVG
generation support (SVG not yet implemented fully)
- Graphical support: draw now bezier- and spline interpolated curves.
- Interpreter utility: a small interpreter for simple code strings.
- A meta api.With that api, we are able to create
virtual properties which can be obtained and set (internally using java
reflection).
- A code loader api which allows you to load and unload jar-archives or
class files dynamically, to specify and override the resources or
classes in an archive and even to create a hierarchy of class loaders
where it is possible to load classes and archives with different class
loaders while still allowing them to mutually access their code.
See the rich example collection also available on the web for feature
demonstrations.
This Open-Source research project is licensed under LGPL,
One feature, especially important for developers, is the full documentation
of the source code provided. Each method, class, package is fully documented
down to privated declares. No parameter is undocumented. We are also happy
about hints or request for more documentation, because we want that anyone
can use our code and hopefully understand it. This project has also
educational character.
You can find more information on the project's home page or on the
project's page on SourceForge. The source code and examples can
be downloaded at the downloads page. Useful
information and news will frequently be published in the
Genetic Programming Group.