function preference($args)
 {
     // Preference methods automatically refer only to preferences
     // belonging to the current user.
     $method = $_SERVER['REQUEST_METHOD'];
     switch ($method) {
         case 'GET':
             $name = getUserGetVar('name');
             if ($name) {
                 $preferenceDao = new PreferenceDAO();
                 $preference =& $preferenceDao->getPreference($name);
                 if (null == $preference) {
                     header('HTTP/1.1 404 Not Found');
                     echo '<h1>404 Not Found</h1><p>No such preference</p>';
                 } else {
                     header('Content-type: text/plain');
                     echo $preference->getPreferenceName() . ':' . $preference->getPreferenceValue();
                 }
             } else {
                 $preferenceDao = new PreferenceDAO();
                 $preferences =& $preferenceDao->getPreferences();
                 header('Content-type: text/plain');
                 $first = true;
                 foreach ($preferences as $pref) {
                     if (!$first) {
                         echo "\n";
                     } else {
                         $first = false;
                     }
                     echo $pref->getPreferenceName() . ':' . $pref->getPreferenceValue();
                 }
             }
             break;
         case 'POST':
             $name = getUserGetVar('name');
             $value = getUserPostVar('value');
             if (null == $name || null == $value) {
                 header('HTTP/1.1 400 Bad Request');
                 echo "<h1>400 Bad Request</h1><p>Must specify name and vaule parameters</p>";
             } else {
                 if ('annotations.show' == $name || 'annotations.show-user' == $name || 'annotations.note-edit-mode' == $name) {
                     $preference = new Preference();
                     $preference->setPreferenceName($name);
                     $preference->setPreferenceValue($value);
                     $preferenceDao = new PreferenceDAO();
                     if (null == $preferenceDao->getPreference($name)) {
                         $preferenceDao->insertPreference($preference);
                     } else {
                         $preferenceDao->updatePreference($preference);
                     }
                     header('HTTP/1.1 204 Preference Set');
                 } else {
                     header('HTTP/1.1 404 Invalid Preference');
                     echo "<h1>404 Invalid Preference</h1><p>The preference name you specificed is not valid.</p>";
                 }
             }
             break;
     }
 }