Newer
Older
Dries Buytaert
committed
<?php
/**
* @file
Angie Byron
committed
* Definition of Drupal\entity_test\Plugin\Core\Entity\EntityTest.
Dries Buytaert
committed
*/
Angie Byron
committed
namespace Drupal\entity_test\Plugin\Core\Entity;
Dries Buytaert
committed
Dries Buytaert
committed
use Drupal\Core\Entity\EntityNG;
use Drupal\Core\Entity\Annotation\EntityType;
Angie Byron
committed
use Drupal\Core\Annotation\Translation;
Dries Buytaert
committed
/**
* Defines the test entity class.
Angie Byron
committed
*
* @EntityType(
Angie Byron
committed
* id = "entity_test",
* label = @Translation("Test entity"),
* module = "entity_test",
* controllers = {
* "storage" = "Drupal\entity_test\EntityTestStorageController",
* "access" = "Drupal\entity_test\EntityTestAccessController",
* "form" = {
* "default" = "Drupal\entity_test\EntityTestFormController"
* },
* "translation" = "Drupal\translation_entity\EntityTranslationControllerNG"
Angie Byron
committed
* },
* base_table = "entity_test",
* fieldable = TRUE,
* entity_keys = {
* "id" = "id",
* "uuid" = "uuid",
Alex Pott
committed
* "bundle" = "type"
Angie Byron
committed
* },
* menu_base_path = "entity-test/manage/%entity_test"
Angie Byron
committed
* )
Dries Buytaert
committed
*/
Dries Buytaert
committed
class EntityTest extends EntityNG {
Dries Buytaert
committed
/**
Dries Buytaert
committed
* The entity ID.
Dries Buytaert
committed
*
Dries Buytaert
committed
* @var \Drupal\Core\Entity\Field\FieldInterface
Dries Buytaert
committed
*/
Dries Buytaert
committed
public $id;
Dries Buytaert
committed
/**
Dries Buytaert
committed
* The entity UUID.
Dries Buytaert
committed
*
Dries Buytaert
committed
* @var \Drupal\Core\Entity\Field\FieldInterface
Dries Buytaert
committed
*/
Dries Buytaert
committed
public $uuid;
Dries Buytaert
committed
Alex Pott
committed
/**
* The bundle of the test entity.
*
* @var \Drupal\Core\Entity\Field\FieldInterface
*/
public $type;
Dries Buytaert
committed
/**
Dries Buytaert
committed
* The name of the test entity.
Dries Buytaert
committed
*
Dries Buytaert
committed
* @var \Drupal\Core\Entity\Field\FieldInterface
Dries Buytaert
committed
*/
Dries Buytaert
committed
public $name;
Dries Buytaert
committed
/**
Dries Buytaert
committed
* The associated user.
Dries Buytaert
committed
*
Dries Buytaert
committed
* @var \Drupal\Core\Entity\Field\FieldInterface
Dries Buytaert
committed
*/
Dries Buytaert
committed
public $user_id;
Dries Buytaert
committed
/**
* Initialize the object. Invoked upon construction and wake up.
Dries Buytaert
committed
*/
protected function init() {
parent::init();
Dries Buytaert
committed
// We unset all defined properties, so magic getters apply.
unset($this->id);
unset($this->uuid);
unset($this->name);
unset($this->user_id);
Alex Pott
committed
unset($this->type);
Dries Buytaert
committed
}
Angie Byron
committed
/**
* Overrides Drupal\entity\Entity::label().
*/
public function label($langcode = LANGUAGE_DEFAULT) {
Angie Byron
committed
$info = $this->entityInfo();
if (isset($info['entity_keys']['label']) && $info['entity_keys']['label'] == 'name') {
return $this->getTranslation($langcode)->name->value;
}
else {
return parent::label($langcode);
}
Angie Byron
committed
}