BeryliumObject method structure:

Constructor Method
	BeryliumObject()

Database Interface
	insertObject()	// if name { checkDuplicate(name) }, beryliumToMySQL, get columns, 
				build INSERT query, process query, update object->id, return success
	updateObject()	// if name { checkDuplicate(name) }, beryliumToMySQL, get columns, 
				build UPDATE query, process query, return success
	selectObject(query) // process query, if result { build object array from result }, 
				return objectarray
	getMySQLColumns()
	makeTable()
	checkDuplicate(field) // query="SELECT id,name FROM $this->objtype WHERE id!=$this->id 
				AND name=$this->name AND folderid=$this->folderid", 
				if result throw an error

Encode / Decode
	beryliumToFormat(format) // apply format-specific processing
	beryliumToHtml()	// for text fields in object, apply htmlentities, nltobr, parseBml(html)
	beryliumToForm()	// for all fields in object, apply htmlentities
	beryliumToMySQL()	// for all fields in object, apply addslashes
	timeFormat()		// convert created and modified to timestamp and adjust for client timezone

Requestable Methods
	view()		// select object from DB, beryliumToFormat(format), preProcess(), 
				header(), template(), footer(), postProcess()
	edit()		// select object from DB, beryliumToForm(), preProcess(), header(), 
				template(), footer(), postProcess()
	save()		// create object from HTTP_POST_VARS, preProcess(), updateObject(), postProcess()
	create()	// set id="", beryliumToForm(), preProcess(), header(), template(), 
				footer(), postProcess()
	savenew()	// create object from HTTP_POST_VARS, preProcess(), insertObject(), postProcess()

	list(query, listobjtype, listmethod, listformat)	
			// select objects from DB, create new object ($that) of listobjtype, 
			$that->getContext(listmethod, listformat), $this->header(), 
			foreach object { beryliumToFormat(listformat), $object->context=$that->context, 
			preProcess(), template(), listBetween(), postProcess()} $this->footer()

	index(objtype, method, format) 
			// use autoindexing policies to build a query for objtype objects to be listed
				at this location, then call list() with that query

Context Methods	// require object ($this), method (implied by $session->request->method), format (implied by $session->request->format), and role (implied by $foldermember->role)
	getContext(method, format)
	preProcess()
	header()
	template() // if no object, use nullObject()
	nullObject()
	listBetween()
	footer()
	postProcess()

Utility Methods
	getPropertiesList()
	getURL(method, format)

