/** * 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!")); } }
/** * 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; }
/** * 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")); } } } }