public function __construct(PersistenceHandler $persistenceHandler, SearchHandler $searchHandler, array $serviceSettings = array(), APIUserReference $user = null)
{
$this->persistenceHandler = $persistenceHandler;
$this->searchHandler = $searchHandler;
$this->serviceSettings = $serviceSettings + array('content' => array(), 'contentType' => array(), 'location' => array(), 'section' => array(), 'role' => array(), 'user' => array('anonymousUserID' => 10), 'language' => array(), 'trash' => array(), 'io' => array(), 'objectState' => array(), 'search' => array(), 'fieldType' => array(), 'nameableFieldTypes' => array(), 'urlAlias' => array(), 'urlWildcard' => array(), 'nameSchema' => array(), 'languages' => array());
if (!empty($this->serviceSettings['languages'])) {
$this->serviceSettings['language']['languages'] = $this->serviceSettings['languages'];
}
if ($user instanceof User) {
$this->currentUser = $user;
$this->currentUserRef = new UserReference($user->getUserId());
} elseif ($user instanceof APIUserReference) {
$this->currentUserRef = $user;
} else {
$this->currentUserRef = new UserReference($this->serviceSettings['user']['anonymousUserID']);
}
}