Make non-database models easier to implement by making it simpler to override MvcModel::init_schema and possible to call MvcModel::process_objects from a derived class...

Here's an example of how it can be used:

class FileSystemFingerprint extends MvcModel {

	var $display_field = 'subfilepath';

	protected function init_schema() {
		$this->schema_clear();

		$this->schema_add_column("subfilepath", "PRI", "string", 512, false);
		$this->schema_add_column("filename", "", "string", 512, false);
		$this->schema_add_column("subdir", "", "string", 512, false);
		$this->schema_add_column("fullpath", "", "string", 512, false);
		$this->schema_add_column("fulldir", "", "string", 512, false);
		$this->schema_add_column("md5", "", "string", 32, false);
		$this->schema_add_column("perms", "", "string", 512, false);
		$this->schema_add_column("modified", "", "timestamp");
	}

	public function find($options=array()) {
		$basedir = (empty($options['basedir'])) ? ABSPATH : $options['basedir'];
		$options['exclude'] = (empty($options['exclude'])) ? array('.git', '.svn') : $options['exclude'];
		$objects = $this->getFilesInDir($basedir, '', $options);
		$objects = $this->process_objects($objects, $options);
		return $objects;
	}