Example #1
0
 public function encode(Interchange $interchange)
 {
     $out = $this->annotationPrinter->prepareString($interchange);
     foreach ($interchange->getMessages() as $message) {
         $out .= $this->annotationPrinter->prepareString($message);
         $identifier = $message->getIdentifier();
         $this->segmentPrinter->setSegmentMappings($this->mappingLoader->loadSegments($identifier['version'], $identifier['release']));
         foreach ($message->getSegments() as $segment) {
             $out .= $this->segmentPrinter->prepareString($segment);
         }
         $out .= $this->annotationPrinter->prepareString($message->createTrailer());
     }
     $out .= $this->annotationPrinter->prepareString($interchange->createTrailer());
     return $out;
 }
Example #2
0
 /**
  * @return SegmentPrinter
  */
 protected function givenPrinter()
 {
     $segmentMapping = new SegmentMapping('XXX');
     $segmentMapping->addDataElement(1, new DataElementMapping(5434, true, DataElementType::ID, 'ajdi'));
     $segmentMapping->addDataElement(2, new DataElementMapping(4525, true, DataElementType::A, 'fild'));
     $compDataElement = new CompositeDataElementMapping(2435, true, DataElementType::COMPOSITE, 'araj');
     $compDataElement->addDataElement(new DataElementMapping(6456, true, DataElementType::A, 'e1'));
     $compDataElement->addDataElement(new DataElementMapping(3567, true, DataElementType::A, 'e2'));
     $segmentMapping->addDataElement(3, $compDataElement);
     $segmentYMapping = new SegmentMapping('YYY');
     $segmentYMapping->addDataElement(1, new DataElementMapping(5434, true, DataElementType::ID, 'ajdi'));
     $printer = new SegmentPrinter();
     $printer->setSegmentMappings(['XXX' => $segmentMapping, 'YYY' => $segmentYMapping]);
     return $printer;
 }