00001 <?php
00002
00016
00017
00018
00019 class DAORegistry {
00020
00027 function &getDAOs() {
00028 static $daos = array();
00029 return $daos;
00030 }
00031
00039 function ®isterDAO($name, &$dao) {
00040 $daos = &DAORegistry::getDAOs();
00041 if (isset($daos[$name])) {
00042 $returner = &$daos[$name];
00043 } else {
00044 $returner = null;
00045 }
00046 $daos[$name] = &$dao;
00047 return $returner;
00048 }
00049
00056 function &getDAO($name, $dbconn = null) {
00057 $daos = &DAORegistry::getDAOs();
00058
00059 if (!isset($daos[$name])) {
00060
00061 import(DAORegistry::getQualifiedDAOName($name));
00062
00063
00064 $daos[$name] = &new $name();
00065 if ($dbconn != null) {
00066
00067 $daos[$name]->_dataSource = $dbconn;
00068 }
00069 }
00070
00071 return $daos[$name];
00072 }
00073
00080 function getQualifiedDAOName($name) {
00081
00082 switch ($name) {
00083 case 'ArticleEmailLogDAO': return 'article.log.ArticleEmailLogDAO';
00084 case 'ArticleEventLogDAO': return 'article.log.ArticleEventLogDAO';
00085 case 'ArticleCommentDAO': return 'article.ArticleCommentDAO';
00086 case 'ArticleDAO': return 'article.ArticleDAO';
00087 case 'ArticleFileDAO': return 'article.ArticleFileDAO';
00088 case 'ArticleGalleyDAO': return 'article.ArticleGalleyDAO';
00089 case 'ArticleNoteDAO': return 'article.ArticleNoteDAO';
00090 case 'AuthorDAO': return 'article.AuthorDAO';
00091 case 'CaptchaDAO': return 'captcha.CaptchaDAO';
00092 case 'PublishedArticleDAO': return 'article.PublishedArticleDAO';
00093 case 'SuppFileDAO': return 'article.SuppFileDAO';
00094 case 'DAO': return 'db.DAO';
00095 case 'XMLDAO': return 'db.XMLDAO';
00096 case 'HelpTocDAO': return 'help.HelpTocDAO';
00097 case 'HelpTopicDAO': return 'help.HelpTopicDAO';
00098 case 'IssueDAO': return 'issue.IssueDAO';
00099 case 'JournalDAO': return 'journal.JournalDAO';
00100 case 'CountryDAO': return 'user.CountryDAO';
00101 case 'JournalStatisticsDAO': return 'journal.JournalStatisticsDAO';
00102 case 'JournalSettingsDAO': return 'journal.JournalSettingsDAO';
00103 case 'SectionDAO': return 'journal.SectionDAO';
00104 case 'SectionEditorsDAO': return 'journal.SectionEditorsDAO';
00105 case 'NotificationStatusDAO': return 'journal.NotificationStatusDAO';
00106 case 'EmailTemplateDAO': return 'mail.EmailTemplateDAO';
00107 case 'OAIDAO': return 'oai.ojs.OAIDAO';
00108 case 'ScheduledTaskDAO': return 'scheduledTask.ScheduledTaskDAO';
00109 case 'ArticleSearchDAO': return 'search.ArticleSearchDAO';
00110 case 'RoleDAO': return 'security.RoleDAO';
00111 case 'SessionDAO': return 'session.SessionDAO';
00112 case 'SiteDAO': return 'site.SiteDAO';
00113 case 'SiteSettingsDAO': return 'site.SiteSettingsDAO';
00114 case 'VersionDAO': return 'site.VersionDAO';
00115 case 'AuthorSubmissionDAO': return 'submission.author.AuthorSubmissionDAO';
00116 case 'CopyAssignmentDAO': return 'submission.copyAssignment.CopyAssignmentDAO';
00117 case 'CopyeditorSubmissionDAO': return 'submission.copyeditor.CopyeditorSubmissionDAO';
00118 case 'EditAssignmentDAO': return 'submission.editAssignment.EditAssignmentDAO';
00119 case 'EditorSubmissionDAO': return 'submission.editor.EditorSubmissionDAO';
00120 case 'LayoutAssignmentDAO': return 'submission.layoutAssignment.LayoutAssignmentDAO';
00121 case 'LayoutEditorSubmissionDAO': return 'submission.layoutEditor.LayoutEditorSubmissionDAO';
00122 case 'ProofAssignmentDAO': return 'submission.proofAssignment.ProofAssignmentDAO';
00123 case 'ProofreaderSubmissionDAO': return 'submission.proofreader.ProofreaderSubmissionDAO';
00124 case 'ReviewAssignmentDAO': return 'submission.reviewAssignment.ReviewAssignmentDAO';
00125 case 'ReviewerSubmissionDAO': return 'submission.reviewer.ReviewerSubmissionDAO';
00126 case 'SectionEditorSubmissionDAO': return 'submission.sectionEditor.SectionEditorSubmissionDAO';
00127 case 'UserDAO': return 'user.UserDAO';
00128 case 'UserSettingsDAO': return 'user.UserSettingsDAO';
00129 case 'RTDAO': return 'rt.ojs.RTDAO';
00130 case 'CurrencyDAO': return 'currency.CurrencyDAO';
00131 case 'SubscriptionDAO': return 'subscription.SubscriptionDAO';
00132 case 'SubscriptionTypeDAO': return 'subscription.SubscriptionTypeDAO';
00133 case 'AnnouncementDAO': return 'announcement.AnnouncementDAO';
00134 case 'AnnouncementTypeDAO': return 'announcement.AnnouncementTypeDAO';
00135 case 'TemporaryFileDAO': return 'file.TemporaryFileDAO';
00136 case 'CommentDAO': return 'comment.CommentDAO';
00137 case 'AuthSourceDAO': return 'security.AuthSourceDAO';
00138 case 'AccessKeyDAO': return 'security.AccessKeyDAO';
00139 case 'PluginSettingsDAO': return 'plugins.PluginSettingsDAO';
00140 case 'GroupDAO': return 'group.GroupDAO';
00141 case 'GroupMembershipDAO': return 'group.GroupMembershipDAO';
00142 case 'QueuedPaymentDAO': return 'payment.QueuedPaymentDAO';
00143 case 'OJSCompletedPaymentDAO': return 'payment.ojs.OJSCompletedPaymentDAO';
00144 case 'ReviewFormDAO': return 'reviewForm.ReviewFormDAO';
00145 case 'ReviewFormElementDAO': return 'reviewForm.ReviewFormElementDAO';
00146 case 'ReviewFormResponseDAO': return 'reviewForm.ReviewFormResponseDAO';
00147 default: fatalError('Unrecognized DAO ' . $name);
00148 }
00149 return null;
00150 }
00151 }
00152 ?>