protected function _deleteAllEricsson($data = array())
 {
     $methodName = static::METHOD_NAME_DELETE;
     if (isset($data['filterList']) && $data['filterList'] instanceof \App_ListFilter) {
         $filterList = $data['filterList'];
         if (!$filterList->getCursor()) {
             $this->_findAllEricsson($data);
             $filterList->reset();
             if (!$filterList->getCursor()) {
                 throw new Exceptions\InvalidArgumentException('Deleting sims from stock: Invalid query.');
             }
         }
         $proto = $this->_createProto($methodName);
         $subs = new PB\SubscriptionSelect();
         $subs->setSelectionType(PB\SubscriptionSelect\SelType::HANDLER);
         $subs->addHandler($filterList->getCursor());
         $proto->setSelection($subs);
         $response = $this->_sendRequest($methodName, array('protoMessage' => $proto));
         $this->_checkDeleteResponse($response);
         return true;
     } else {
         throw new InvalidArgumentException("Deleting sims by query: Query must be defined.");
     }
 }
 protected function _generateSubscriptionSelect($data, $idType = SubscriptionId\IdType::ID, $watcher = null)
 {
     $subsSelect = new SubscriptionSelect();
     if ($data instanceof \App_ListFilter) {
         $subsSelect->setSelectionType(SubscriptionSelect\SelType::HANDLER);
         if (!$data->getCursor()) {
             $this->_findAllEricsson(array('filterList' => $data));
             $data->reset();
             if (!$data->getCursor()) {
                 throw new InvalidArgumentException('Invalid query.');
             }
         }
         $subsSelect->addHandler($data->getCursor());
         if ($watcher) {
             $watcher->params->count = $data->getOldCount();
         }
     } else {
         if (is_array($data)) {
             $subsSelect->setSelectionType(SubscriptionSelect\SelType::SUBSCRIPTION_LIST);
             foreach ($data as $id) {
                 if ($id instanceof \Application\Model\SimModel) {
                     if ($id->getId()) {
                         $id = $id->getId();
                         $type = SubscriptionId\IdType::ID;
                     } else {
                         if ($id->getIcc()) {
                             $id = $id->getIcc();
                             $type = SubscriptionId\IdType::ICC;
                         } else {
                             if ($id->getImsi()) {
                                 $id = $id->getImsi();
                                 $type = SubscriptionId\IdType::IMSI;
                             } else {
                                 if ($id->getMsisdn()) {
                                     $id = $id->getMsisdn();
                                     $type = SubscriptionId\IdType::MSISDN;
                                 }
                             }
                         }
                     }
                 } else {
                     $type = $idType;
                 }
                 $subscription = new SubscriptionId();
                 $subscription->setType($type);
                 $subscription->setId($id);
                 $subsSelect->addSubscriptions($subscription);
             }
             if ($watcher) {
                 $watcher->params->count = count($data);
             }
         } else {
             throw new InvalidArgumentException('Data must be an array or App_ListFilter');
         }
     }
     return $subsSelect;
 }