From 1b7ecec00bac1f2ec4fa9921dc6a7c7808951413 Mon Sep 17 00:00:00 2001
From: Marco Villegas <marvil07@gmail.com>
Date: Sat, 1 Jan 2011 23:46:32 -0500
Subject: [PATCH] #723958: Remove ArrayAccess dependency everywhere

---
 includes/VersioncontrolRepository.php              |   14 --------------
 includes/controllers.inc                           |   16 +---------------
 ...VersioncontrolRepositoryManagementTestCase.test |    2 +-
 ...ersioncontrolRepositoryUnitTestingTestCase.test |    2 +-
 versioncontrol.admin.inc                           |   18 +++++++++---------
 versioncontrol.module                              |    4 ++--
 versioncontrol.pages.inc                           |    6 +++---
 .../versioncontrol_account_status.module           |   12 ++++++------
 8 files changed, 23 insertions(+), 51 deletions(-)

diff --git includes/VersioncontrolRepository.php includes/VersioncontrolRepository.php
index 35d0cca..b30063e 100644
--- includes/VersioncontrolRepository.php
+++ includes/VersioncontrolRepository.php
@@ -517,20 +517,6 @@ abstract class VersioncontrolRepository implements VersioncontrolEntityInterface
     return $this->pluginInstances['committer_mapper'];
   }
 
-
-  //ArrayAccess interface implementation FIXME soooooooo deprecated
-  public function offsetExists($offset) {
-    return isset($this->$offset);
-  }
-  public function offsetGet($offset) {
-    return $this->$offset;
-  }
-  public function offsetSet($offset, $value) {
-    $this->$offset = $value;
-  }
-  public function offsetUnset($offset) {
-    unset($this->$offset);
-  }
 }
 
 /**
diff --git includes/controllers.inc includes/controllers.inc
index 7cd407d..a9c5d81 100644
--- includes/controllers.inc
+++ includes/controllers.inc
@@ -557,7 +557,7 @@ class VersioncontrolItemController extends VersioncontrolEntityController {
   protected $idKey = 'item_revision_id';
 }
 
-interface VersioncontrolEntityInterface extends ArrayAccess {
+interface VersioncontrolEntityInterface {
   public function build($args = array());
   public function save($options = array());
 
@@ -705,18 +705,4 @@ abstract class VersioncontrolEntity implements VersioncontrolEntityInterface {
    */
   protected function backendDelete($options) {}
 
-  //ArrayAccess interface implementation FIXME soooooooo deprecated
-  public function offsetExists($offset) {
-    return isset($this->$offset);
-  }
-  public function offsetGet($offset) {
-    return $this->$offset;
-  }
-  public function offsetSet($offset, $value) {
-    $this->$offset = $value;
-  }
-  public function offsetUnset($offset) {
-    unset($this->$offset);
-  }
-
 }
diff --git tests/VersioncontrolRepositoryManagementTestCase.test tests/VersioncontrolRepositoryManagementTestCase.test
index e420272..4b38948 100644
--- tests/VersioncontrolRepositoryManagementTestCase.test
+++ tests/VersioncontrolRepositoryManagementTestCase.test
@@ -87,7 +87,7 @@ class VersioncontrolRepositoryManagementTestCase extends VersioncontrolTestCase
     $found_repositories = $this->testBackend->loadEntities('repo', array(), array('name' => array($edit['repo_name'])));
     if ($is_repo_edited = (count($found_repositories) == 1)) {
       $edited_repo = array_shift($found_repositories);
-      $is_repo_edited = $edited_repo['root'] == $edit['root'];
+      $is_repo_edited = $edited_repo->root == $edit['root'];
     }
     $this->assertTrue($is_repo_edited, t('Repository updated in database.'));
   }
diff --git tests/VersioncontrolRepositoryUnitTestingTestCase.test tests/VersioncontrolRepositoryUnitTestingTestCase.test
index 23470ae..aea7fc9 100644
--- tests/VersioncontrolRepositoryUnitTestingTestCase.test
+++ tests/VersioncontrolRepositoryUnitTestingTestCase.test
@@ -88,7 +88,7 @@ class VersioncontrolRepositoryUnitTestingTestCase extends VersioncontrolTestCase
       'updated' => time(),
       //TODO $repo->update_method
       'locked' => TRUE,
-      'plugins' => array('auth_handler' => 'account') + $repo['plugins'],
+      'plugins' => array('auth_handler' => 'account') + $repo->plugins,
     );
 
     $repo->name = $data['name'];
diff --git versioncontrol.admin.inc versioncontrol.admin.inc
index 7ce6706..7f70413 100644
--- versioncontrol.admin.inc
+++ versioncontrol.admin.inc
@@ -415,7 +415,7 @@ function versioncontrol_admin_account_list_filter_form(&$form_state, $repositori
   $repository_names = array(0 => t('All'));
 
   foreach ($repositories as $repo_id => $repository) {
-    $repository_names[$repo_id] = check_plain($repository['name']);
+    $repository_names[$repo_id] = check_plain($repository->name);
   }
   if (!isset($_SESSION['versioncontrol_filter_repo_id'])) {
     $_SESSION['versioncontrol_filter_repo_id'] = 0;
@@ -532,8 +532,8 @@ function versioncontrol_admin_repository_edit(&$form_state, $repository, $vcs =
   if ($repository_exists) {
     $form['#repository'] = $repository;
   }
-  $form['#vcs'] = $repository_exists ? $repository['vcs'] : $vcs;
-  $form['#original_name'] = $repository_exists ? $repository['name'] : 0;
+  $form['#vcs'] = $repository_exists ? $repository->vcs : $vcs;
+  $form['#original_name'] = $repository_exists ? $repository->name : 0;
 
   $form['repository_information'] = array(
     '#type' => 'fieldset',
@@ -546,7 +546,7 @@ function versioncontrol_admin_repository_edit(&$form_state, $repository, $vcs =
     '#type' => 'textfield',
     '#title' => t('Repository name'),
     '#description' => t('A label for the repository that will be used in all user visible messages.'),
-    '#default_value' => $repository_exists ? $repository['name'] : '',
+    '#default_value' => $repository_exists ? $repository->name : '',
     '#required' => TRUE,
     '#weight' => 0,
     '#size' => 40,
@@ -556,7 +556,7 @@ function versioncontrol_admin_repository_edit(&$form_state, $repository, $vcs =
     '#type' => 'textfield',
     '#title' => t('Repository root'),
     '#description' => t('The location of the repository\'s root directory.'),
-    '#default_value' => $repository_exists ? $repository['root'] : '',
+    '#default_value' => $repository_exists ? $repository->root : '',
     '#weight' => 5,
     '#size' => 60,
     '#maxlength' => 255,
@@ -612,14 +612,14 @@ function versioncontrol_admin_repository_edit(&$form_state, $repository, $vcs =
     '#description' => t('Determines the way that users can register an account for this repository.'),
     '#options' => versioncontrol_get_authorization_methods(),
     '#default_value' => $repository_exists
-                        ? $repository['authorization_method']
+                        ? $repository->authorization_method
                         : _versioncontrol_get_fallback_authorization_method(),
     '#weight' => 0,
   );
   $form['account_registration']['repository_messages'] = array(
     '#type' => 'fieldset',
     '#title' => t('Account registration form strings'),
-    '#description' => t('The following message is shown on the !account-registration-page for this repository.', array('!account-registration-page' => l(t('account registration page'), 'versioncontrol/register/demo/'. $repository['repo_id']))),
+    '#description' => t('The following message is shown on the !account-registration-page for this repository.', array('!account-registration-page' => l(t('account registration page'), 'versioncontrol/register/demo/'. $repository->repo_id))),
     '#collapsible' => TRUE,
     '#collapsed' => FALSE,
     '#weight' => 2,
@@ -822,7 +822,7 @@ function versioncontrol_admin_repository_delete_confirm(&$form_state, $repositor
   $form['#repo_id'] = $repository->repo_id;
 
   $form = confirm_form($form,
-    t('Are you sure you want to delete %name?', array('%name' => $repository['name'])),
+    t('Are you sure you want to delete %name?', array('%name' => $repository->name)),
     !empty($_GET['destination']) ? $_GET['destination'] : 'admin/content/versioncontrol-repositories',
     t('Mind that by deleting the repository, all associated data such as commits and account associations will be deleted as well.'),
     t('Delete'), t('Cancel')
@@ -837,7 +837,7 @@ function versioncontrol_admin_repository_delete_confirm_submit($form, &$form_sta
   $repository = versioncontrol_repository_load($form['#repo_id']);
   $repository->delete();
   drupal_set_message(t('The %repository repository has been deleted.', array(
-    '%repository' => $repository['name'],
+    '%repository' => $repository->name,
   )));
   $form_state['redirect'] = 'admin/content/versioncontrol-repositories';
 }
diff --git versioncontrol.module versioncontrol.module
index abaa796..84c0199 100644
--- versioncontrol.module
+++ versioncontrol.module
@@ -388,7 +388,7 @@ function versioncontrol_user_accounts_title_callback($accounts) {
   $repositories = versioncontrol_repository_load_multiple($repo_ids);
   $vcses = array();
   foreach ($repositories as $repository) {
-    $vcses[$repository['vcs']] = TRUE;
+    $vcses[$repository->vcs] = TRUE;
   }
   if (count($vcses) == 1) {
     $repo = array_shift($repositories);
@@ -835,7 +835,7 @@ function theme_versioncontrol_account_username($uid, $username, $repository, $op
   if (!empty($options['include_repository_name'])) {
     $username = t('!user @ !repository', array(
       '!user' => $username,
-      '!repository' => $repository['name'],
+      '!repository' => $repository->name,
     ));
   }
   if ($format == 'html' && module_exists('commitlog')) {
diff --git versioncontrol.pages.inc versioncontrol.pages.inc
index fb6ad38..7f8f005 100644
--- versioncontrol.pages.inc
+++ versioncontrol.pages.inc
@@ -72,7 +72,7 @@ function versioncontrol_account_register_page($register_uid = FALSE, $register_a
     if (!isset($first_repo_id)) {
       $first_repo_id = $repo_id;
     }
-    $repository_names[$repo_id] = check_plain($repository['name']);
+    $repository_names[$repo_id] = check_plain($repository->name);
   }
 
   // Filter (and possibly change the caption of) the list of repositories to
@@ -344,7 +344,7 @@ function versioncontrol_account_edit_form(&$form_state, $uid, $repository, $vcs_
   if ($create_account) {
     drupal_set_title(t(
       'Create user account in @repository',
-      array('@repository' => $repository['name'])
+      array('@repository' => $repository->name)
     ));
   }
   elseif ($user) {
@@ -354,7 +354,7 @@ function versioncontrol_account_edit_form(&$form_state, $uid, $repository, $vcs_
   $form['#id'] = 'versioncontrol-account-form';
 
   $form['#repository'] = $repository;
-  $form['#vcs'] = $repository['vcs'];
+  $form['#vcs'] = $repository->vcs;
   $form['#vcs_name'] = $vcs_name;
   $form['#uid'] = $uid;
   $form['#original_username'] = $vcs_username;
diff --git versioncontrol_account_status/versioncontrol_account_status.module versioncontrol_account_status/versioncontrol_account_status.module
index 5db3a76..59d775d 100644
--- versioncontrol_account_status/versioncontrol_account_status.module
+++ versioncontrol_account_status/versioncontrol_account_status.module
@@ -169,13 +169,13 @@ function versioncontrol_account_status_set($status_data) {
  *   TRUE if the account is authorized, or FALSE if it's not.
  */
 function versioncontrol_account_status_versioncontrol_is_account_authorized($repository, $uid) {
-  if ($repository['authorization_method'] != 'versioncontrol_account_status_repository') {
+  if ($repository->authorization_method != 'versioncontrol_account_status_repository') {
     return TRUE;
   }
   $result = db_query('SELECT status
                       FROM {versioncontrol_account_status_users}
                       WHERE uid = %d AND repo_id = %d',
-                      $uid, $repository['repo_id']);
+                      $uid, $repository->repo_id);
 
   while ($account = db_fetch_object($result)) {
     return ($account->status == VERSIONCONTROL_ACCOUNT_STATUS_APPROVED);
@@ -410,9 +410,9 @@ function versioncontrol_account_status_form_alter_repository_settings(&$form) {
   $form['#versioncontrol_account_status'] = TRUE;
 
   // Get form and email messages (only the default ones for new repositories).
-  $strings = (empty($repository) || $repository['repo_id'] == 0)
+  $strings = (empty($repository) || $repository->repo_id == 0)
     ? _versioncontrol_account_status_get_presets()
-    : _versioncontrol_account_status_get_strings($repository['repo_id']);
+    : _versioncontrol_account_status_get_strings($repository->repo_id);
 
   // Save screen space as there are going to be more fieldsets in here.
   $form['account_registration']['repository_messages']['#collapsed'] = TRUE;
@@ -723,8 +723,8 @@ function versioncontrol_account_status_form_alter_account_edit(&$form, $status_d
 
     if (!isset($form['overview'])) {
       $repository = versioncontrol_repository_load($status_data['repo_id']);
-      $registration_message = isset($repository['data']['versioncontrol']['registration_message'])
-        ? $repository['data']['versioncontrol']['registration_message']
+      $registration_message = isset($repository->data['versioncontrol']['registration_message'])
+        ? $repository->data['versioncontrol']['registration_message']
         : '';
 
       if (!empty($registration_message)) {
-- 
1.7.2.3

