Version 1
[yaffs-website] / web / core / modules / system / tests / modules / entity_test / src / Plugin / Field / FieldType / AutoIncrementingTestItem.php
diff --git a/web/core/modules/system/tests/modules/entity_test/src/Plugin/Field/FieldType/AutoIncrementingTestItem.php b/web/core/modules/system/tests/modules/entity_test/src/Plugin/Field/FieldType/AutoIncrementingTestItem.php
new file mode 100644 (file)
index 0000000..baa175e
--- /dev/null
@@ -0,0 +1,39 @@
+<?php
+
+namespace Drupal\entity_test\Plugin\Field\FieldType;
+
+use Drupal\Core\Field\Plugin\Field\FieldType\IntegerItem;
+
+/**
+ * Defines the 'field_method_invocation_order_test' entity field type.
+ *
+ * @FieldType(
+ *   id = "auto_incrementing_test",
+ *   label = @Translation("Auto incrementing test field item"),
+ *   description = @Translation("An entity field designed to test the field method invocation order."),
+ *   category = @Translation("Number"),
+ *   no_ui = TRUE,
+ * )
+ */
+class AutoIncrementingTestItem extends IntegerItem {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function preSave() {
+    parent::preSave();
+    $this->value = static::getIncrementedFieldValue();
+  }
+
+  /**
+   * Gets an incremented field value.
+   *
+   * @return int
+   *   The incremented field value.
+   */
+  private static function getIncrementedFieldValue() {
+    $current_value = &drupal_static(__METHOD__, 0);
+    return ++$current_value;
+  }
+
+}