principal; } /** * @inheritDoc */ public function getACL(): array { return $this->acls; } /** * @inheritDoc */ public function setAcls(array $acls): void { throw new NotImplemented(); } /** * @inheritDoc */ public function put($data): ?string { throw new NotImplemented(); } /** * @inheritDoc */ public function get(): string { return $this->contact->getCard(); } /** * @inheritDoc */ public function getContentType(): ?string { return 'text/vcard; charset=utf-8'; } /** * @inheritDoc */ public function getETag(): ?string { return '"' . md5((string)$this->getLastModified()) . '"'; } /** * @inheritDoc */ public function getSize(): int { return strlen($this->contact->getCard()); } /** * @inheritDoc */ public function delete(): void { throw new NotImplemented(); } /** * @inheritDoc */ public function getName(): string { return (string)$this->contact->getId(); } /** * @inheritDoc */ public function setName($name): void { throw new NotImplemented(); } /** * @inheritDoc */ public function getLastModified(): ?int { return $this->contact->getLastContact(); } }