/** * Creates a Piece_ORM_Metadata object for the given table. * * @param string $tableName * @return Piece_ORM_Metadata * @static */ function &factory($tableName) { $context =& Piece_ORM_Context::singleton(); if (!$context->getUseMapperNameAsTableName()) { $tableName = Piece_ORM_Inflector::underscore($tableName); } $tableID = sha1($context->getDSN() . ".{$tableName}"); if (!array_key_exists($tableID, $GLOBALS['PIECE_ORM_Metadata_Instances'])) { $metadata =& Piece_ORM_Metadata_Factory::_createMetadata($tableName, $tableID); if (Piece_ORM_Error::hasErrors()) { $return = null; return $return; } $GLOBALS['PIECE_ORM_Metadata_Instances'][$tableID] =& $metadata; } return $GLOBALS['PIECE_ORM_Metadata_Instances'][$tableID]; }