/**
  * __get
  *
  * @param  string $property
  * @return mixed
  */
 public function __get($property)
 {
     switch (strtolower($property)) {
         case 'lastinsertvalue':
             return $this->lastInsertValue;
         case 'adapter':
             return $this->adapter;
         case 'table':
             return $this->table;
     }
     if ($this->featureSet->canCallMagicGet($property)) {
         return $this->featureSet->callMagicGet($property);
     }
     throw new Exception\InvalidArgumentException('Invalid magic property access in ' . __CLASS__ . '::__get()');
 }
 /**
  * __get
  *
  * @param  string $property
  * @throws Exception\InvalidArgumentException
  * @return mixed
  */
 public function __get($property)
 {
     $isModel = stripos($property, 'Model');
     $isService = stripos($property, 'Service');
     if ($isModel !== false) {
         return $this->sm->get('Api\\Model\\' . ucfirst(substr($property, 0, -5)));
     } elseif ($isService !== false) {
         return $this->sm->get('COM\\Service\\' . ucfirst($property));
     }
     switch (strtolower($property)) {
         case 'lastinsertvalue':
             return $this->lastInsertValue;
         case 'adapter':
             return $this->adapter;
         case 'table':
             return $this->table;
     }
     if ($this->featureSet->canCallMagicGet($property)) {
         return $this->featureSet->callMagicGet($property);
     }
     throw new Exception\InvalidArgumentException('Invalid magic property access in ' . __CLASS__ . '::__get()');
 }