fixes: mostly php 8.3 fixes to prepare for next release (#6935)
[openemr.git] / src / FHIR / R4 / FHIRResource / FHIRMedicinalProduct / FHIRMedicinalProductName.php
blob41724df26f55650c1cf03a6ef892fb5fa5649aad
1 <?php
3 namespace OpenEMR\FHIR\R4\FHIRResource\FHIRMedicinalProduct;
5 /*!
6 * This class was generated with the PHPFHIR library (https://github.com/dcarbone/php-fhir) using
7 * class definitions from HL7 FHIR (https://www.hl7.org/fhir/)
9 * Class creation date: June 14th, 2019
11 * PHPFHIR Copyright:
13 * Copyright 2016-2017 Daniel Carbone (daniel.p.carbone@gmail.com)
15 * Licensed under the Apache License, Version 2.0 (the "License");
16 * you may not use this file except in compliance with the License.
17 * You may obtain a copy of the License at
19 * http://www.apache.org/licenses/LICENSE-2.0
21 * Unless required by applicable law or agreed to in writing, software
22 * distributed under the License is distributed on an "AS IS" BASIS,
23 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
24 * See the License for the specific language governing permissions and
25 * limitations under the License.
28 * FHIR Copyright Notice:
30 * Copyright (c) 2011+, HL7, Inc.
31 * All rights reserved.
33 * Redistribution and use in source and binary forms, with or without modification,
34 * are permitted provided that the following conditions are met:
36 * * Redistributions of source code must retain the above copyright notice, this
37 * list of conditions and the following disclaimer.
38 * * Redistributions in binary form must reproduce the above copyright notice,
39 * this list of conditions and the following disclaimer in the documentation
40 * and/or other materials provided with the distribution.
41 * * Neither the name of HL7 nor the names of its contributors may be used to
42 * endorse or promote products derived from this software without specific
43 * prior written permission.
45 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
46 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
47 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
48 * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
49 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
50 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
51 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
52 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
53 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
54 * POSSIBILITY OF SUCH DAMAGE.
57 * Generated on Thu, Dec 27, 2018 22:37+1100 for FHIR v4.0.0
59 * Note: the schemas & schematrons do not contain all of the rules about what makes resources
60 * valid. Implementers will still need to be familiar with the content of the specification and with
61 * any profiles that apply to the resources in order to make a conformant implementation.
65 use OpenEMR\FHIR\R4\FHIRElement\FHIRBackboneElement;
67 /**
68 * Detailed definition of a medicinal product, typically for uses other than direct patient care (e.g. regulatory use).
70 class FHIRMedicinalProductName extends FHIRBackboneElement implements \JsonSerializable
72 /**
73 * The full product name.
74 * @var \OpenEMR\FHIR\R4\FHIRElement\FHIRString
76 public $productName = null;
78 /**
79 * Coding words or phrases of the name.
80 * @var \OpenEMR\FHIR\R4\FHIRResource\FHIRMedicinalProduct\FHIRMedicinalProductNamePart[]
82 public $namePart = [];
84 /**
85 * Country where the name applies.
86 * @var \OpenEMR\FHIR\R4\FHIRResource\FHIRMedicinalProduct\FHIRMedicinalProductCountryLanguage[]
88 public $countryLanguage = [];
90 /**
91 * @var string
93 private $_fhirElementName = 'MedicinalProduct.Name';
95 /**
96 * The full product name.
97 * @return \OpenEMR\FHIR\R4\FHIRElement\FHIRString
99 public function getProductName()
101 return $this->productName;
105 * The full product name.
106 * @param \OpenEMR\FHIR\R4\FHIRElement\FHIRString $productName
107 * @return $this
109 public function setProductName($productName)
111 $this->productName = $productName;
112 return $this;
116 * Coding words or phrases of the name.
117 * @return \OpenEMR\FHIR\R4\FHIRResource\FHIRMedicinalProduct\FHIRMedicinalProductNamePart[]
119 public function getNamePart()
121 return $this->namePart;
125 * Coding words or phrases of the name.
126 * @param \OpenEMR\FHIR\R4\FHIRResource\FHIRMedicinalProduct\FHIRMedicinalProductNamePart $namePart
127 * @return $this
129 public function addNamePart($namePart)
131 $this->namePart[] = $namePart;
132 return $this;
136 * Country where the name applies.
137 * @return \OpenEMR\FHIR\R4\FHIRResource\FHIRMedicinalProduct\FHIRMedicinalProductCountryLanguage[]
139 public function getCountryLanguage()
141 return $this->countryLanguage;
145 * Country where the name applies.
146 * @param \OpenEMR\FHIR\R4\FHIRResource\FHIRMedicinalProduct\FHIRMedicinalProductCountryLanguage $countryLanguage
147 * @return $this
149 public function addCountryLanguage($countryLanguage)
151 $this->countryLanguage[] = $countryLanguage;
152 return $this;
156 * @return string
158 public function get_fhirElementName()
160 return $this->_fhirElementName;
164 * @param mixed $data
166 public function __construct($data = [])
168 if (is_array($data)) {
169 if (isset($data['productName'])) {
170 $this->setProductName($data['productName']);
172 if (isset($data['namePart'])) {
173 if (is_array($data['namePart'])) {
174 foreach ($data['namePart'] as $d) {
175 $this->addNamePart($d);
177 } else {
178 throw new \InvalidArgumentException('"namePart" must be array of objects or null, ' . gettype($data['namePart']) . ' seen.');
181 if (isset($data['countryLanguage'])) {
182 if (is_array($data['countryLanguage'])) {
183 foreach ($data['countryLanguage'] as $d) {
184 $this->addCountryLanguage($d);
186 } else {
187 throw new \InvalidArgumentException('"countryLanguage" must be array of objects or null, ' . gettype($data['countryLanguage']) . ' seen.');
190 } elseif (null !== $data) {
191 throw new \InvalidArgumentException('$data expected to be array of values, saw "' . gettype($data) . '"');
193 parent::__construct($data);
197 * @return string
199 public function __toString()
201 return $this->get_fhirElementName();
205 * @return array
207 public function jsonSerialize(): mixed
209 $json = parent::jsonSerialize();
210 if (isset($this->productName)) {
211 $json['productName'] = $this->productName;
213 if (0 < count($this->namePart)) {
214 $json['namePart'] = [];
215 foreach ($this->namePart as $namePart) {
216 $json['namePart'][] = $namePart;
219 if (0 < count($this->countryLanguage)) {
220 $json['countryLanguage'] = [];
221 foreach ($this->countryLanguage as $countryLanguage) {
222 $json['countryLanguage'][] = $countryLanguage;
225 return $json;
229 * @param boolean $returnSXE
230 * @param \SimpleXMLElement $sxe
231 * @return string|\SimpleXMLElement
233 public function xmlSerialize($returnSXE = false, $sxe = null)
235 if (null === $sxe) {
236 $sxe = new \SimpleXMLElement('<MedicinalProductName xmlns="http://hl7.org/fhir"></MedicinalProductName>');
238 parent::xmlSerialize(true, $sxe);
239 if (isset($this->productName)) {
240 $this->productName->xmlSerialize(true, $sxe->addChild('productName'));
242 if (0 < count($this->namePart)) {
243 foreach ($this->namePart as $namePart) {
244 $namePart->xmlSerialize(true, $sxe->addChild('namePart'));
247 if (0 < count($this->countryLanguage)) {
248 foreach ($this->countryLanguage as $countryLanguage) {
249 $countryLanguage->xmlSerialize(true, $sxe->addChild('countryLanguage'));
252 if ($returnSXE) {
253 return $sxe;
255 return $sxe->saveXML();