6ac58edef3a90e5458d36cf03052ca3270795d15
load or modify the rows that match those keys" pattern so that we can almost
always just magically do the right thing with regard to the cache. Added a
version of deleteAll() that makes use of this.
Also nixed a bunch of checked exception tomfoolery which was almost entirely
unnecessary and now with DatabaseException is completely unnecessary.
A few things remain to be done:
- PrimaryKeySet tries to be "smart" if its passed 0 keys and use
LiteralExp("false") but that causes things to freak out because Depot then
doesn't know what primary class it's dealing with. I'm probably going to make
All and None expressions that match all and none of the records in a table
respectively.
- deleteAll() doesn't currently split its keys into chunks small enough to be
digestible by the database if we match more than 32,768 rows. I'll see if I
can't abstract out that code from FindAllQuery so that we can easily use it
everywhere. It would be cool to handle that a a lower level and allow the
WhereClause to say that it needs to be run in phases, but that would probably
complicate the crap out of the low-level code.
- I need to create PrimaryKey to go between Key and PrimaryKeySet so that we
can avoid duplicating the primary key columns thousands of times in a large
PrimaryKeySet.
git-svn-id: https://samskivert.googlecode.com/svn/trunk@2384 6335cc39-0255-0410-8fd6-9bcaacd3b74c
The samskivert library ---------------------- The samskivert library (SL) aims to provide useful reusable Java routines that do things for which I've been unable to find useful reusable implementations on the net. Given the emphasis on reusability, SL attempts to closely adhere to the following principles: * Each individual module should depend as little as possible on other SL modules. Obvious exceptions include modules that are a logical extension of other modules and modules that clearly require a service that is implemented by another SL module and would have to implement that service themselves in the absence of dependence on the other module. * Modules should be both simple to use and as general purpose as possible. To meet these two competing requirements, a balance must be struck at that sweet spot where reusability is maximized. * Code included in SL will freely depend on JDK packages available in the Java 2 platform and beyond. SL is initially a repository of software useful for server-side or stand alone applications and therefore need not make compromises to function in the jungle of JVMs in commonly available web browsers. * We are not here to reinvent the wheel, nor to provide a uniform interface to every software service under the sun. If something is available in a freely redistributable and reusable form from someone else, it won't be found in SL. If SL depends on such software from another source, it will provide clear documentation on how to get that software and make use of it within the scope of SL's particular needs. Again a balance of reusability will be struck here and software that is sufficiently difficult to make usable in an arbitrary environment will not be used by SL and may be "reinvented". Building -------- Building the library is very simple. First ensure that the necessary third party jar files are available either in the lib/ directory or in the system wide jar file location specified in build.xml. See lib/README for a list of the necessary third party jar files and how to get them. The library is built using ant, a modern build tool available from The Jakarta Project. If you aren't already using ant for other projects, it can be found here: http://jakarta.apache.org/ant/ Invoke ant with any of the following targets: all: builds the class files and javadoc documentation compile: builds only the class files (dist/classes) javadoc: builds only the javadoc documentation (dist/docs) dist: builds the distribution jar file (dist/samskivert.jar) Look at the build.xml file for configurable build parameters. Distribution ------------ The samskivert library is released under the LGPL. The most recent version of the library is available here: http://samskivert.com/code/samskivert/ Contribution ------------ Contributions to SL are welcome. Control of the CVS repository is presently in the hands of mdb@samskivert.com, who should be emailed about submissions. Facilities for management of major contributions by external parties (ie. publicly accessible CVS server) will be provided if circumstances dictate. Contact Information ------------------- The person primarily responsible for SL is Michael Bayne and can be contacted at <mdb@samskivert.com>. $Id: README,v 1.7 2001/08/12 00:00:42 mdb Exp $
Description
Languages
Java
96.5%
Shell
2.2%
HTML
1.3%