You are here

class Team in Apigee Edge 8

Defines the Team entity class.

@\Drupal\apigee_edge\Annotation\EdgeEntityType( id = "team", label =

Plugin annotation


@Translation("Team"),
  label_collection = @Translation("Teams"),
  label_singular = @Translation("team"),
  label_plural = @Translation("teams"),
  label_count = @PluralTranslation(
    singular = "@count team",
    plural = "@count teams",
  ),
  config_with_labels = "apigee_edge_teams.team_settings",
  handlers = {
    "storage" = "Drupal\apigee_edge_teams\Entity\Storage\TeamStorage",
    "permission_provider" = "Drupal\apigee_edge_teams\Entity\TeamPermissionProvider",
    "access" = "Drupal\apigee_edge_teams\Entity\TeamAccessHandler",
    "list_builder" = "Drupal\apigee_edge_teams\Entity\ListBuilder\TeamListBuilder",
    "view_builder" = "Drupal\apigee_edge_teams\Entity\TeamViewBuilder",
    "form" = {
       "default" = "Drupal\apigee_edge_teams\Entity\Form\TeamForm",
       "add" = "Drupal\apigee_edge_teams\Entity\Form\TeamForm",
       "delete" = "Drupal\apigee_edge_teams\Entity\Form\TeamDeleteForm",
     },
    "route_provider" = {
      "default" = "Drupal\apigee_edge_teams\Entity\TeamRouteProvider",
    },
  },
  links = {
    "collection" = "/teams",
    "canonical" = "/teams/{team}",
    "add-form" = "/add-team",
    "edit-form" = "/teams/{team}/edit",
    "delete-form" = "/teams/{team}/delete",
    "members" = "/teams/{team}/members",
    "add-members" = "/teams/{team}/add-members",
  },
  entity_keys = {
    "id" = "name",
    "label" = "displayName",
  },
  admin_permission = "administer team",
  field_ui_base_route = "apigee_edge_teams.settings.team",
)

Hierarchy

Expanded class hierarchy of Team

2 files declare their use of Team
ApigeeMockApiClientHelperTrait.php in tests/modules/apigee_mock_api_client/tests/src/Traits/ApigeeMockApiClientHelperTrait.php
TeamInvitationEventsTest.php in modules/apigee_edge_teams/tests/src/Kernel/Event/TeamInvitationEventsTest.php
5 string references to 'Team'
DefaultTeamPermissionsProvider::permissions in modules/apigee_edge_teams/src/DefaultTeamPermissionsProvider.php
Returns team permissions provided by a module.
EdgeEntityEventDeriverBase::getContext in modules/apigee_edge_actions/src/Plugin/RulesEvent/EdgeEntityEventDeriverBase.php
Returns an array of event context.
TeamAliasForm::entityTypeName in modules/apigee_edge_teams/src/Form/TeamAliasForm.php
Returns the human readable name of the entity.
TeamAliasForm::originalSingularLabel in modules/apigee_edge_teams/src/Form/TeamAliasForm.php
Returns the original singular label of the entity.
views.view.team_invitations.yml in modules/apigee_edge_teams/config/optional/views.view.team_invitations.yml
modules/apigee_edge_teams/config/optional/views.view.team_invitations.yml

File

modules/apigee_edge_teams/src/Entity/Team.php, line 75

Namespace

Drupal\apigee_edge_teams\Entity
View source
class Team extends AttributesAwareFieldableEdgeEntityBase implements TeamInterface {

  /**
   * The decorated company entity from the SDK.
   *
   * @var \Apigee\Edge\Api\Management\Entity\Company
   */
  protected $decorated;

  /**
   * Team constructor.
   *
   * @param array $values
   *   An array of values to set, keyed by property name.
   * @param null|string $entity_type
   *   Type of the entity. It is optional because constructor sets its default
   *   value.
   * @param \Apigee\Edge\Entity\EntityInterface|null $decorated
   *   The SDK entity that this Drupal entity decorates.
   */
  public function __construct(array $values, ?string $entity_type, ?EntityInterface $decorated = NULL) {
    $entity_type = $entity_type ?? 'team';

    // Callers expect that the status is always either 'active' or 'inactive',
    // never null.
    if (!isset($values['status'])) {
      $values['status'] = static::STATUS_ACTIVE;
    }
    parent::__construct($values, $entity_type, $decorated);
  }

  /**
   * {@inheritdoc}
   */
  protected static function decoratedClass() : string {
    return Company::class;
  }

  /**
   * We have to override this.
   *
   * This is how we could make it compatible with the SDK's
   * entity interface that has return type hint.
   */
  public function id() : ?string {
    return parent::id();
  }

  /**
   * {@inheritdoc}
   */
  public static function idProperty() : string {
    return Company::idProperty();
  }

  /**
   * {@inheritdoc}
   */
  protected function drupalEntityId() : ?string {
    return $this->decorated
      ->id();
  }

  /**
   * {@inheritdoc}
   */
  public function getAttributes() : AttributesProperty {
    return $this->decorated
      ->getAttributes();
  }

  /**
   * {@inheritdoc}
   */
  public function setAttributes(AttributesProperty $attributes) : void {
    $this->decorated
      ->setAttributes($attributes);
  }

  /**
   * {@inheritdoc}
   */
  public function getAttributeValue(string $attribute) : ?string {
    return $this->decorated
      ->getAttributeValue($attribute);
  }

  /**
   * {@inheritdoc}
   */
  public function setAttribute(string $name, string $value) : void {
    $this->decorated
      ->setAttribute($name, $value);
  }

  /**
   * {@inheritdoc}
   */
  public function hasAttribute(string $name) : bool {
    return $this->decorated
      ->hasAttribute($name);
  }

  /**
   * {@inheritdoc}
   */
  public function deleteAttribute(string $name) : void {
    $this->decorated
      ->deleteAttribute($name);
  }

  /**
   * {@inheritdoc}
   */
  public function getCreatedAt() : ?\DateTimeImmutable {
    return $this->decorated
      ->getCreatedAt();
  }

  /**
   * {@inheritdoc}
   */
  public function getCreatedBy() : ?string {
    return $this->decorated
      ->getCreatedBy();
  }

  /**
   * {@inheritdoc}
   */
  public function getLastModifiedAt() : ?\DateTimeImmutable {
    return $this->decorated
      ->getLastModifiedAt();
  }

  /**
   * {@inheritdoc}
   */
  public function getLastModifiedBy() : ?string {
    return $this->decorated
      ->getLastModifiedBy();
  }

  /**
   * {@inheritdoc}
   */
  public function getApps() : array {
    return $this->decorated
      ->getApps();
  }

  /**
   * {@inheritdoc}
   */
  public function hasApp(string $app_name) : bool {
    return $this->decorated
      ->hasApp($app_name);
  }

  /**
   * {@inheritdoc}
   */
  public function setOrganization(string $organization) : void {
    $this->decorated
      ->setOrganization($organization);
  }

  /**
   * {@inheritdoc}
   */
  public function getOrganization() : ?string {
    return $this->decorated
      ->getOrganization();
  }

  /**
   * {@inheritdoc}
   */
  public function getDisplayName() : ?string {
    return $this->decorated
      ->getDisplayName();
  }

  /**
   * {@inheritdoc}
   */
  public function setDisplayName(string $display_name) : void {
    $this->decorated
      ->setDisplayName($display_name);
  }

  /**
   * {@inheritdoc}
   */
  public function getName() : ?string {
    return $this->decorated
      ->getName();
  }

  /**
   * {@inheritdoc}
   */
  public function getStatus() : ?string {
    return $this->decorated
      ->getStatus();
  }

  /**
   * {@inheritdoc}
   */
  public function setStatus(string $status) : void {
    $this->decorated
      ->setStatus($status);
  }

  /**
   * {@inheritdoc}
   */
  public static function baseFieldDefinitions(EntityTypeInterface $entity_type) {

    /** @var \Drupal\Core\Field\BaseFieldDefinition[] $definitions */
    $definitions = parent::baseFieldDefinitions($entity_type);
    $team_singular_label = \Drupal::entityTypeManager()
      ->getDefinition('team')
      ->getSingularLabel();
    $team_singular_label = mb_convert_case($team_singular_label, MB_CASE_TITLE);
    $definitions['displayName']
      ->setDisplayOptions('view', [
      'label' => 'inline',
      'weight' => 0,
    ])
      ->setDisplayOptions('form', [
      'weight' => 0,
    ])
      ->setLabel(t("@team name", [
      '@team' => $team_singular_label,
    ]))
      ->setRequired(TRUE);
    $definitions['status']
      ->setDisplayOptions('view', [
      'label' => 'inline',
      'type' => 'status_property',
      'weight' => 2,
    ])
      ->setLabel(t('@team status', [
      '@team' => $team_singular_label,
    ]))
      ->setDisplayConfigurable('form', FALSE);
    $definitions['createdAt']
      ->setDisplayOptions('view', [
      'type' => 'timestamp_ago',
      'label' => 'inline',
      'weight' => 3,
    ])
      ->setLabel(t('Created'))
      ->setDisplayConfigurable('form', FALSE);
    $definitions['lastModifiedAt']
      ->setDisplayOptions('view', [
      'type' => 'timestamp_ago',
      'label' => 'inline',
      'weight' => 5,
    ])
      ->setLabel(t('Last updated'))
      ->setDisplayConfigurable('form', FALSE);
    $definitions['name']
      ->setLabel(t('@team id', [
      '@team' => $team_singular_label,
    ]))
      ->setDisplayConfigurable('form', FALSE)
      ->setRequired(TRUE);
    return $definitions;
  }

  /**
   * {@inheritdoc}
   */
  protected static function propertyToBaseFieldTypeMap() : array {
    return parent::propertyToBaseFieldTypeMap() + [
      'status' => 'string',
    ];
  }

  /**
   * {@inheritdoc}
   */
  protected static function propertyToBaseFieldBlackList() : array {
    return array_merge(parent::propertyToBaseFieldBlackList(), [
      // Apps only contains app names (not display names), we do not want to
      // expose them by default.
      'apps',
      // There is no need to expose the organization that the team (company)
      // belongs.
      'organization',
    ]);
  }

}

Members

Namesort descending Modifiers Type Description Overrides
AttributesAwareFieldableEdgeEntityBase::fieldAttributeConverter protected function Returns the field-attribute converter service.
AttributesAwareFieldableEdgeEntityBase::get public function Gets a field item list. Overrides FieldableEdgeEntityBase::get 1
AttributesAwareFieldableEdgeEntityBase::setAttributeValueFromField private function Sets attribute value from a field.
AttributesAwareFieldableEdgeEntityBase::setPropertyValue public function Updates the property value on an entity by field name. Overrides FieldableEdgeEntityBase::setPropertyValue
CacheableDependencyTrait::$cacheContexts protected property Cache contexts.
CacheableDependencyTrait::$cacheMaxAge protected property Cache max-age.
CacheableDependencyTrait::$cacheTags protected property Cache tags.
CacheableDependencyTrait::setCacheability protected function Sets cacheability; useful for value object constructors.
DependencySerializationTrait::$_entityStorages protected property An array of entity type IDs keyed by the property name of their storages.
DependencySerializationTrait::$_serviceIds protected property An array of service IDs keyed by property name used for serialization.
DependencySerializationTrait::__sleep public function Aliased as: traitSleep 1
DependencySerializationTrait::__wakeup public function 2
EdgeEntityBase::createFrom public static function Creates a Drupal entity from an SDK Entity. Overrides EdgeEntityInterface::createFrom
EdgeEntityBase::decorated public function Returns the decorated SDK entity. Overrides EdgeEntityInterface::decorated 2
EdgeEntityBase::getTranslation public function
EdgeEntityBase::hasTranslation public function
EdgeEntityBase::isTranslatable public function
EdgeEntityBase::label public function Gets the label of the entity. Overrides EntityBase::label 2
EdgeEntityBase::uniqueIdProperties public static function Returns all unique ids how an entity can be referenced in Apigee Edge. Overrides EdgeEntityInterface::uniqueIdProperties 2
EdgeEntityBase::uniqueIds public function List of unique ids how an entity can be referenced in Apigee Edge. Overrides EdgeEntityInterface::uniqueIds
EntityBase::$enforceIsNew protected property Boolean indicating whether the entity should be forced to be new.
EntityBase::$entityTypeId protected property The entity type.
EntityBase::$typedData protected property A typed data object wrapping this entity.
EntityBase::access public function Checks data value access. Overrides AccessibleInterface::access 1
EntityBase::bundle public function Gets the bundle of the entity. Overrides EntityInterface::bundle 1
EntityBase::create public static function Constructs a new entity object, without permanently saving it. Overrides EntityInterface::create
EntityBase::createDuplicate public function Creates a duplicate of the entity. Overrides EntityInterface::createDuplicate 2
EntityBase::delete public function Deletes an entity permanently. Overrides EntityInterface::delete 2
EntityBase::enforceIsNew public function Enforces an entity to be new. Overrides EntityInterface::enforceIsNew
EntityBase::entityManager Deprecated protected function Gets the entity manager.
EntityBase::entityTypeBundleInfo protected function Gets the entity type bundle info service.
EntityBase::entityTypeManager protected function Gets the entity type manager.
EntityBase::getCacheContexts public function The cache contexts associated with this object. Overrides CacheableDependencyTrait::getCacheContexts
EntityBase::getCacheMaxAge public function The maximum age for which this object may be cached. Overrides CacheableDependencyTrait::getCacheMaxAge
EntityBase::getCacheTags public function The cache tags associated with this object. Overrides CacheableDependencyTrait::getCacheTags
EntityBase::getCacheTagsToInvalidate public function Returns the cache tags that should be used to invalidate caches. Overrides EntityInterface::getCacheTagsToInvalidate 2
EntityBase::getConfigDependencyKey public function Gets the key that is used to store configuration dependencies. Overrides EntityInterface::getConfigDependencyKey
EntityBase::getConfigDependencyName public function Gets the configuration dependency name. Overrides EntityInterface::getConfigDependencyName 1
EntityBase::getConfigTarget public function Gets the configuration target identifier for the entity. Overrides EntityInterface::getConfigTarget 1
EntityBase::getEntityType public function Gets the entity type definition. Overrides EntityInterface::getEntityType
EntityBase::getEntityTypeId public function Gets the ID of the type of the entity. Overrides EntityInterface::getEntityTypeId
EntityBase::getListCacheTagsToInvalidate protected function The list cache tags to invalidate for this entity.
EntityBase::getOriginalId public function Gets the original ID. Overrides EntityInterface::getOriginalId 1
EntityBase::getTypedData public function Gets a typed data object for this entity object. Overrides EntityInterface::getTypedData
EntityBase::hasLinkTemplate public function Indicates if a link template exists for a given key. Overrides EntityInterface::hasLinkTemplate
EntityBase::invalidateTagsOnDelete protected static function Invalidates an entity's cache tags upon delete. 1
EntityBase::invalidateTagsOnSave protected function Invalidates an entity's cache tags upon save. 1
EntityBase::isNew public function Determines whether the entity is new. Overrides EntityInterface::isNew 2
EntityBase::language public function Gets the language of the entity. Overrides EntityInterface::language 1
EntityBase::languageManager protected function Gets the language manager.
EntityBase::link public function Deprecated way of generating a link to the entity. See toLink(). Overrides EntityInterface::link 1
EntityBase::linkTemplates protected function Gets an array link templates. 1
EntityBase::load public static function Loads an entity. Overrides EntityInterface::load
EntityBase::loadMultiple public static function Loads one or more entities. Overrides EntityInterface::loadMultiple
EntityBase::postCreate public function Acts on a created entity before hooks are invoked. Overrides EntityInterface::postCreate 4
EntityBase::postDelete public static function Acts on deleted entities before the delete hook is invoked. Overrides EntityInterface::postDelete 16
EntityBase::postLoad public static function Acts on loaded entities. Overrides EntityInterface::postLoad 2
EntityBase::preCreate public static function Changes the values of an entity before it is created. Overrides EntityInterface::preCreate 5
EntityBase::preDelete public static function Acts on entities before they are deleted and before hooks are invoked. Overrides EntityInterface::preDelete 4
EntityBase::preSave public function Acts on an entity before the presave hook is invoked. Overrides EntityInterface::preSave 2
EntityBase::referencedEntities public function Gets a list of entities referenced by this entity. Overrides EntityInterface::referencedEntities 1
EntityBase::save public function Saves an entity permanently. Overrides EntityInterface::save 3
EntityBase::setOriginalId public function Sets the original ID. Overrides EntityInterface::setOriginalId 1
EntityBase::toLink public function Generates the HTML for a link to this entity. Overrides EntityInterface::toLink
EntityBase::toUrl public function Gets the URL object for the entity. Overrides EntityInterface::toUrl 2
EntityBase::uriRelationships public function Gets a list of URI relationships supported by this entity. Overrides EntityInterface::uriRelationships
EntityBase::url public function Gets the public URL for this entity. Overrides EntityInterface::url 2
EntityBase::urlInfo public function Gets the URL object for the entity. Overrides EntityInterface::urlInfo 1
EntityBase::urlRouteParameters protected function Gets an array of placeholders for this entity. 2
EntityBase::uuid public function Gets the entity UUID (Universally Unique Identifier). Overrides EntityInterface::uuid 1
EntityBase::uuidGenerator protected function Gets the UUID generator.
FieldableEdgeEntityBase::$fieldDefinitions protected property Local cache for field definitions.
FieldableEdgeEntityBase::$fields protected property Local cache for for fields.
FieldableEdgeEntityBase::$validated protected property Whether entity validation was performed.
FieldableEdgeEntityBase::$validationRequired protected property Whether entity validation is required before saving the entity.
FieldableEdgeEntityBase::bundleFieldDefinitions public static function Provides field definitions for a specific bundle. Overrides FieldableEntityInterface::bundleFieldDefinitions
FieldableEdgeEntityBase::convertFieldValueToPropertyValue protected function Converts a field value to a property value.
FieldableEdgeEntityBase::exposePropertyAsBaseField private static function Returns whether an entity property is blacklisted to be exposed as field.
FieldableEdgeEntityBase::getBaseFieldDefinition protected static function Attempts to create a base field definition from a type.
FieldableEdgeEntityBase::getFieldDefinition public function Gets the definition of a contained field. Overrides FieldableEntityInterface::getFieldDefinition
FieldableEdgeEntityBase::getFieldDefinitions public function Gets an array of field definitions of all contained fields. Overrides FieldableEntityInterface::getFieldDefinitions
FieldableEdgeEntityBase::getFields public function Gets an array of all field item lists. Overrides FieldableEntityInterface::getFields
FieldableEdgeEntityBase::getFieldValue protected function Returns the field value from the current object.
FieldableEdgeEntityBase::getIterator public function
FieldableEdgeEntityBase::getProperties protected static function Parses the properties and its types from the parent class.
FieldableEdgeEntityBase::getTranslatableFields public function Gets an array of field item lists for translatable fields. Overrides FieldableEntityInterface::getTranslatableFields
FieldableEdgeEntityBase::hasField public function Determines whether the entity has a field with the given name. Overrides FieldableEntityInterface::hasField
FieldableEdgeEntityBase::isValidationRequired public function Checks whether entity validation is required before saving the entity. Overrides FieldableEntityInterface::isValidationRequired
FieldableEdgeEntityBase::onChange public function Reacts to changes to a field. Overrides FieldableEntityInterface::onChange
FieldableEdgeEntityBase::postSave public function Acts on a saved entity before the insert or update hook is invoked. Overrides EntityBase::postSave
FieldableEdgeEntityBase::propertyFieldType private static function Returns the type of the field that should represent an entity property.
FieldableEdgeEntityBase::set public function Sets a field value. Overrides FieldableEntityInterface::set 1
FieldableEdgeEntityBase::setValidationRequired public function Sets whether entity validation is required before saving the entity. Overrides FieldableEntityInterface::setValidationRequired
FieldableEdgeEntityBase::toArray public function Gets an array of all property values. Overrides EntityBase::toArray
FieldableEdgeEntityBase::validate public function Validates the currently set values. Overrides FieldableEntityInterface::validate
FieldableEdgeEntityBase::__sleep public function Overrides EntityBase::__sleep
RefinableCacheableDependencyTrait::addCacheableDependency public function 1
RefinableCacheableDependencyTrait::addCacheContexts public function
RefinableCacheableDependencyTrait::addCacheTags public function
RefinableCacheableDependencyTrait::mergeCacheMaxAge public function
RevisioningWorkaroundTrait::getLoadedRevisionId public function
RevisioningWorkaroundTrait::getRevisionId public function
RevisioningWorkaroundTrait::isDefaultRevision public function
RevisioningWorkaroundTrait::isLatestRevision public function
RevisioningWorkaroundTrait::isNewRevision public function
RevisioningWorkaroundTrait::preSaveRevision public function
RevisioningWorkaroundTrait::setNewRevision public function
RevisioningWorkaroundTrait::updateLoadedRevisionId public function
RevisioningWorkaroundTrait::wasDefaultRevision public function
Team::$decorated protected property The decorated company entity from the SDK. Overrides AttributesAwareFieldableEdgeEntityBase::$decorated
Team::baseFieldDefinitions public static function Provides base field definitions for an entity type. Overrides FieldableEdgeEntityBase::baseFieldDefinitions
Team::decoratedClass protected static function The FQCN of the decorated class from the PHP API Client. Overrides EdgeEntityBase::decoratedClass
Team::deleteAttribute public function
Team::drupalEntityId protected function Return the entity id used in Drupal. Overrides EdgeEntityBase::drupalEntityId
Team::getApps public function
Team::getAttributes public function
Team::getAttributeValue public function
Team::getCreatedAt public function
Team::getCreatedBy public function
Team::getDisplayName public function
Team::getLastModifiedAt public function
Team::getLastModifiedBy public function
Team::getName public function
Team::getOrganization public function
Team::getStatus public function
Team::hasApp public function
Team::hasAttribute public function
Team::id public function We have to override this. Overrides EdgeEntityBase::id
Team::idProperty public static function
Team::propertyToBaseFieldBlackList protected static function Array of properties that should not be exposed as base fields by default. Overrides FieldableEdgeEntityBase::propertyToBaseFieldBlackList
Team::propertyToBaseFieldTypeMap protected static function Static mapping between entity properties and Drupal field types. Overrides FieldableEdgeEntityBase::propertyToBaseFieldTypeMap
Team::setAttribute public function
Team::setAttributes public function
Team::setDisplayName public function
Team::setOrganization public function
Team::setStatus public function Set status of the team. Overrides TeamInterface::setStatus
Team::__construct public function Team constructor. Overrides AttributesAwareFieldableEdgeEntityBase::__construct