diff --git a/Models/EditorDocListTrait.php b/Models/EditorDocListTrait.php new file mode 100644 index 0000000..212d990 --- /dev/null +++ b/Models/EditorDocListTrait.php @@ -0,0 +1,117 @@ +notes as $note) { + if ($note->type?->id === $type) { + return $note; + } + } + + return new NullEditorDoc(); + } + + /** + * Get all notess by type name + * + * @param string $type EditorDoc type + * + * @return EditorDoc + * + * @since 1.0.0 + */ + public function getEditorDocByTypeName(string $type) : EditorDoc + { + foreach ($this->notes as $note) { + if ($note->type?->name === $type) { + return $note; + } + } + + return new NullEditorDoc(); + } + + /** + * Get all notess by type name + * + * @param string $type EditorDoc type + * + * @return EditorDoc[] + * + * @since 1.0.0 + */ + public function getEditorDocsByTypeName(string $type) : array + { + $notes = []; + foreach ($this->notes as $note) { + if ($note->type?->name === $type) { + $notes[] = $note; + } + } + + return $notes; + } + + /** + * Check if file with a certain type name exists + * + * @param string $type Type name + * + * @return bool + * + * @since 1.0.0 + */ + public function hasEditorDocTypeName(string $type) : bool + { + foreach ($this->notes as $note) { + if ($note->type?->name === $type) { + return true; + } + } + + return false; + } +}