static void registerIdGeneratorType(String typeName, Class<? extends IdGenerator> type) {
        assert typeName != null;
        assert type != null;
        try {
            if (type.getConstructor(Properties.class) == null) {
                throw new IllegalArgumentException("Invalid id generator type " + type.getName() + ": no java.util.Properties constructor defined");
            }
        } catch (NoSuchMethodException e) {
            throw new IllegalArgumentException("Invalid id generator type " + type.getName() + ": no java.util.Properties constructor defined");
        } catch (SecurityException e) {
            throw new Error(e);
        }
        
        idGeneratorTypes.put(typeName, type);
    }