Exemplo n.º 1
0
 /**
  * Creates a new Save Request with the specified context
  *
  * @param MManagedObjectContext $context The context in which this
  * Save Request will be performed
  *
  * @return MSaveRequest The newly created Save Request
  */
 public function __construct(MManagedObjectContext $context)
 {
     parent::__construct(MPersistentStoreRequest::SaveRequestType, $context);
     $this->insertManagedObjects = null;
     $this->updateManagedObjects = null;
     $this->deleteManagedObjects = null;
 }
 /**
  * Execute a request across all persistent stores and returns the results
  * if any
  *
  * @param MPersistentStoreRequest $request The request to be peformed
  *
  * @return MArray|null An Array containing the results for the request
  * or null if the request yields no results
  */
 public function executeRequest(MPersistentStoreRequest $request)
 {
     if ($this->persistentStores()->count() > 0) {
         if ($request->requestType() == MPersistentStoreRequest::SaveRequestType) {
             $objects = new MArray();
             foreach ($this->persistentStores()->toArray() as $persistentStore) {
                 $objects = $persistentStore->executeRequest($request);
             }
             return $objects;
         } else {
             if ($request->requestType() == MPersistentStoreRequest::FetchRequestType) {
                 return $this->persistentStores()->anyObject()->executeRequest($request);
             } else {
                 if ($request->requestType() == MPersistentStoreRequest::FaultRequestType) {
                     return $this->persistentStores()->anyObject()->executeRequest($request);
                 } else {
                     throw new MPersistentStoreException(Sf("Unsupported request type (%s)", $request->requestType()));
                 }
             }
         }
     } else {
         throw new MPersistentStoreException(S("No persistent stores defined!"));
     }
 }
Exemplo n.º 3
0
 /**
  * Creates a new instance of the MFetchRequest class which defines
  * a request to be sent to the data store
  *
  * @param MEntityDescription $entity The entity you wish to fetch
  * @param MManagedObjectContext $context The context in which this 
  * request will be performed
  *
  * @return MFetchRequest The newly created Fetch Request instance
  */
 public function __construct(MEntityDescription $entity, MManagedObjectContext $context)
 {
     parent::__construct(MPersistentStoreRequest::FetchRequestType, $context);
     $this->entity = $entity;
     $this->predicate = null;
 }
Exemplo n.º 4
0
 /**
  * Creates a new instance of the MFaultRequest class
  *
  * This method creates a new instance of the MFaultRequest class and takes
  * the context where the fault operation is to be performed.
  *
  * @param MManagedObjectContext $context The context where the fault operation
  * is to be performed.
  *
  * @return MFaultRequest The newly created MFaultRequest instance
  */
 public function __construct(MManagedObjectContext $context)
 {
     parent::__construct(MPersistentStoreRequest::FaultRequestType, $context);
     $this->faults = new MMutableArray();
 }
 /**
  * This method executes a request in the Persistent Store and returns the
  * results as an Array
  *
  * @param MPersistentStoreRequest $request The Request to perform
  *
  * @return MArray An Array containing the results of the request
  */
 public function executeRequest(MPersistentStoreRequest $request)
 {
     $this->ensureDatabaseConsistency();
     if ($request->requestType() == MPersistentStoreRequest::FetchRequestType) {
         return $this->executeFetchRequest($request);
     } else {
         if ($request->requestType() == MPersistentStoreRequest::FaultRequestType) {
             return $this->executeFaultRequest($request);
         } else {
             if ($request->requestType() == MPersistentStoreRequest::SaveRequestType) {
                 return $this->executeSaveRequest($request);
             } else {
                 throw new MPersistentStoreException(S("Invalid request type"));
             }
         }
     }
 }