| Conditions | 25 |
| Paths | 26 |
| Total Lines | 118 |
| Lines | 0 |
| Ratio | 0 % |
| Changes | 0 | ||
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
| 1 | <?php |
||
| 165 | protected function loadElement($element, $elementType) |
||
| 166 | { |
||
| 167 | switch ($elementType) { |
||
| 168 | case 'Contact': |
||
| 169 | /** @var Element\Contact $element */ |
||
| 170 | $this->freetextData = new FreetextData( |
||
| 171 | $element->value, |
||
| 172 | $element->type |
||
| 173 | ); |
||
| 174 | break; |
||
| 175 | case 'FormOfPayment': |
||
| 176 | /** @var Element\FormOfPayment $element */ |
||
| 177 | $this->formOfPayment = new FormOfPayment($element->type); |
||
| 178 | if ($element->type === Fop::IDENT_CREDITCARD) { |
||
| 179 | $this->formOfPayment->fop->creditCardCode = $element->creditCardType; |
||
| 180 | $this->formOfPayment->fop->accountNumber = $element->creditCardNumber; |
||
| 181 | $this->formOfPayment->fop->expiryDate = $element->creditCardExpiry; |
||
| 182 | if ($this->checkAnyNotEmpty($element->creditCardCvcCode, $element->creditCardHolder)) { |
||
| 183 | $this->fopExtension[] = new FopExtension( |
||
| 184 | 1, |
||
| 185 | $element->creditCardCvcCode, |
||
| 186 | $element->creditCardHolder |
||
| 187 | ); |
||
| 188 | } |
||
| 189 | } elseif ($element->type === Fop::IDENT_MISC && $element->freeText != "NONREF") { |
||
| 190 | $this->formOfPayment->fop->freetext = $element->freeText; |
||
| 191 | } elseif ($element->type === Fop::IDENT_MISC && $element->freeText === "NONREF") { |
||
| 192 | $this->fopExtension[] = new FopExtension(1); |
||
| 193 | } elseif ($element->type === Fop::IDENT_CHECK) { |
||
| 194 | throw new \RuntimeException("FOP CHECK NOT YET IMPLEMENTED"); |
||
| 195 | } |
||
| 196 | |||
| 197 | if ($element->isServiceFee) { |
||
| 198 | $this->serviceDetails[] = new ServiceDetails( |
||
| 199 | StatusDetails::IND_SERVICEFEE |
||
| 200 | ); |
||
| 201 | } |
||
| 202 | break; |
||
| 203 | case 'MiscellaneousRemark': |
||
| 204 | /** @var Element\MiscellaneousRemark $element */ |
||
| 205 | $this->miscellaneousRemark = new MiscellaneousRemark( |
||
| 206 | $element->text, |
||
| 207 | $element->type, |
||
| 208 | $element->category |
||
| 209 | ); |
||
| 210 | break; |
||
| 211 | case 'ReceivedFrom': |
||
| 212 | /** @var Element\ReceivedFrom $element */ |
||
| 213 | $this->freetextData = new FreetextData( |
||
| 214 | $element->receivedFrom, |
||
| 215 | FreetextDetail::TYPE_RECEIVE_FROM |
||
| 216 | ); |
||
| 217 | break; |
||
| 218 | case 'ServiceRequest': |
||
| 219 | /** @var Element\ServiceRequest $element */ |
||
| 220 | $this->serviceRequest = new ServiceRequest($element); |
||
| 221 | break; |
||
| 222 | case 'Ticketing': |
||
| 223 | /** @var Element\Ticketing $element */ |
||
| 224 | $this->ticketElement = new TicketElement($element); |
||
| 225 | break; |
||
| 226 | case 'AccountingInfo': |
||
| 227 | /** @var Element\AccountingInfo $element */ |
||
| 228 | $this->accounting = new Accounting($element); |
||
| 229 | break; |
||
| 230 | case 'Address': |
||
| 231 | /** @var Element\Address $element */ |
||
| 232 | if ($element->type === ElementManagementData::SEGNAME_ADDRESS_BILLING_UNSTRUCTURED || |
||
| 233 | $element->type === ElementManagementData::SEGNAME_ADDRESS_MAILING_UNSTRUCTURED |
||
| 234 | ) { |
||
| 235 | $this->freetextData = new FreetextData( |
||
| 236 | $element->freeText, |
||
| 237 | FreetextDetail::TYPE_MAILING_ADDRESS |
||
| 238 | ); |
||
| 239 | } else { |
||
| 240 | $this->structuredAddress = new StructuredAddress($element); |
||
| 241 | } |
||
| 242 | break; |
||
| 243 | case 'FrequentFlyer': |
||
| 244 | /** @var Element\FrequentFlyer $element */ |
||
| 245 | $this->serviceRequest = new ServiceRequest(); |
||
| 246 | $this->serviceRequest->ssr->type = 'FQTV'; |
||
| 247 | $this->serviceRequest->ssr->companyId = $element->airline; |
||
| 248 | $this->frequentTravellerData = new FrequentTravellerData($element); |
||
| 249 | break; |
||
| 250 | case 'OtherServiceInfo': |
||
| 251 | /** @var Element\OtherServiceInfo $element */ |
||
| 252 | $this->freetextData = new FreetextData( |
||
| 253 | $element->freeText, |
||
| 254 | FreetextDetail::TYPE_OSI_ELEMENT |
||
| 255 | ); |
||
| 256 | $this->freetextData->freetextDetail->companyId = $element->airline; |
||
| 257 | $this->freetextData->freetextDetail->subjectQualifier = FreetextDetail::QUALIFIER_LITERALTEXT; |
||
| 258 | break; |
||
| 259 | case 'ManualCommission': |
||
| 260 | /** @var Element\ManualCommission $element */ |
||
| 261 | $this->commission = new Commission($element); |
||
| 262 | break; |
||
| 263 | case 'SeatRequest': |
||
| 264 | /** @var Element\SeatRequest $element */ |
||
| 265 | $this->seatGroup = new SeatGroup($element); |
||
| 266 | break; |
||
| 267 | case 'TourCode': |
||
| 268 | /** @var Element\TourCode $element */ |
||
| 269 | $this->tourCode = new TourCode($element); |
||
| 270 | break; |
||
| 271 | case 'ManualIssuedTicket': |
||
| 272 | /** @var Element\ManualIssuedTicket $element */ |
||
| 273 | $this->manualFareDocument = new ManualDocumentRegistration( |
||
| 274 | $element->passengerType, |
||
| 275 | $element->companyId, |
||
| 276 | $element->ticketNumber |
||
| 277 | ); |
||
| 278 | break; |
||
| 279 | default: |
||
| 280 | throw new InvalidArgumentException('Element type '.$elementType.' is not supported'); |
||
| 281 | } |
||
| 282 | } |
||
| 283 | |||
| 324 |