text: <?php
  /**
   * Magento
   *
   * NOTICE OF LICENSE
   *
   * This source file is subject to the Open Software License (OSL 3.0)
   * that is bundled with this package in the file LICENSE.txt.
   * It is also available through the world-wide-web at this URL:
   * http://opensource.org/licenses/osl-3.0.php
   * If you did not receive a copy of the license and are unable to
   * obtain it through the world-wide-web, please send an email
   * to license@magentocommerce.com so we can send you a copy immediately.
   *
   * DISCLAIMER
   *
   * Do not edit or add to this file if you wish to upgrade Magento to newer
   * versions in the future. If you wish to customize Magento for your
   * needs please refer to http://www.magentocommerce.com for more information.
   *
   * @category    Mage
   * @package     Mage_Sales
   * @copyright   Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
   * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
   */
  
  /**
   * Abstract API2 class for order item
   *
   * @category   Mage
   * @package    Mage_Sales
   * @author     Magento Core Team <core@magentocommerce.com>
   */
  abstract class Mage_Sales_Model_Api2_Order_Rest extends Mage_Sales_Model_Api2_Order
  {
      /**
       * Retrieve information about specified order item
       *
       * @throws Mage_Api2_Exception
       * @return array
       */
      protected function _retrieve()
      {
          $orderId    = $this->getRequest()->getParam('id');
          $collection = $this->_getCollectionForSingleRetrieve($orderId);
  
          if ($this->_isPaymentMethodAllowed()) {
              $this->_addPaymentMethodInfo($collection);
          }
          if ($this->_isGiftMessageAllowed()) {
              $this->_addGiftMessageInfo($collection);
          }
          $this->_addTaxInfo($collection);
  
          $order = $collection->getItemById($orderId);
  
          if (!$order) {
              $this->_critical(self::RESOURCE_NOT_FOUND);
          }
          $orderData = $order->getData();
          $addresses = $this->_getAddresses(array($orderId));
          $items     = $this->_getItems(array($orderId));
          $comments  = $this->_getComments(array($orderId));
  
          if ($addresses) {
              $orderData['addresses'] = $addresses[$orderId];
          }
          if ($items) {
              $orderData['order_items'] = $items[$orderId];
          }
          if ($comments) {
              $orderData['order_comments'] = $comments[$orderId];
          }
          return $orderData;
      }
  }
  