WebSphere Message Broker, Versión 8.0.0.5 Sistemas operativos: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Consulte la información sobre la última versión del producto en IBM Integration Bus, Versión 9.0

Iteración con un filtro

Utilice FilterIterator para filtrar elementos en el árbol de mensajes.

El ejemplo siguiente muestra cómo utilizar un FilterIterator para iterar sobre un árbol de mensajes, extrayendo sólo los componentes de Toughened Steel (Acero reforzado):
class ToughenedSteelPartsIterator extends FilterIterator
{
  public function __construct(Iterator $it)
  {
    parent::__construct($it);
  }

  function accept()
  {
    /*** sólo comprobar componentes ***/
    if (!strcmp($this->key(),"component"))
    {
      /*** Devuelve true para Toughened Steel (Acero reforzado) ***/
      if (!strcmp($this->current()->material,"Toughened Steel"))
      {
        return true;
      }
    }
    return false;
  }
}

class PhpComputeNode_Iterator_Filter
{
  /**
   * @MessageBrokerSimpleTransform
   */
  function evaluate($output_assembly, $input_assembly)
  {
    ob_start();
    echo "\nIterando sobre piezas que tienen el nombre de material de Toughened Steel (Acero reforzado)\n";

    $it  = new MbsElementIterator($input_assembly->XMLNSC->getFirstChild());
    $rii = new ToughenedSteelPartsIterator(new RecursiveIteratorIterator($it, RecursiveIteratorIterator::CHILD_FIRST));

    foreach($rii as $key=>$value)
    {
      echo $key.' = '.$value->name." ".$value->price." ".$value->material."\n";
    }

    $output_assembly->XMLNSC->results->contents = ob_get_contents();
    ob_end_clean();
  }
}
El mensaje siguiente se utiliza como entrada del FilterIterator que se ha mostrado anteriormente:
<machine>
 <assembly name="Engine Block Top End">
  <assembly name="Cylinder Head">
   <assembly name="Tappet Assembly">
     <component name="Tappet" price="3.50" material="Toughened Steel"/>
     <component name="Coil String" price="1.50" material="Spring Steel"/>
     <component name="Circlip" price="1.50"  material="Spring Steel"/>
     <component name="Circlip" price="1.50"  material="Spring Steel"/>
     <component name="Seat" price="3.50" material="Toughened Steel"/>
   </assembly>
   <assembly name="Cam Shaft">
     <component name="Shaft" price="3.50" material="Mild Steel"/>
     <component name="Cam" price="1.50" material="Toughened Steel" />
     <component name="Cam" price="1.50" material="Toughened Steel" />
     <component name="Cam" price="1.50" material="Toughened Steel" />
     <component name="Cam" price="1.50" material="Toughened Steel" />
     <component name="Bearing" price="1.00" material="Toughened Steel" />
     <component name="Bearing" price="1.00" material="Toughened Steel" />
     <component name="Cam Chain Sprocket" price="4.20" material="Toughened Steel" />
     <component name="Cam Chain" price="4.20" material="Toughened Steel" />
     <component name="Tensioner" price="0.50" material="Plastic" />
   </assembly>
   <component name="Head" price="12.40" material="Alloy" />
   <component name="Plug" price="3.00"  material="Bakelite/Steel" />
  </assembly>
  <assembly name="Cylinder Block">
   <component name="Cylinder" price="20.00"  material="Alloy" />
   <component name="Sleeve" price="10.00"  material="Toughened Steel" />
  </assembly>
  <assembly name="Carburetor">
  <assembly name="Piston Assembly"/>
   <component name="Piston" price="20.00" material="Toughened Steel" />
   <component name="Ring" price="10.00"  material="Spring Steel" />
   <component name="Ring" price="10.00"  material="Spring Steel" />
   <component name="Con Rod" price="10.00" material="Toughened Steel" />
  </assembly>
 </assembly>
</machine>
La salida resultante sólo muestra las piezas cuyo material es Toughened Steel (Acero reforzado):
<results><contents>
Iterating Over parts which have a material name of Toughened Steel
component = Tappet 3.50 Toughened Steel
component = Seat 3.50 Toughened Steel
component = Cam 1.50 Toughened Steel
component = Cam 1.50 Toughened Steel
component = Cam 1.50 Toughened Steel
component = Cam 1.50 Toughened Steel
component = Bearing 1.00 Toughened Steel
component = Bearing 1.00 Toughened Steel
component = Cam Chain Sprocket 4.20 Toughened Steel
component = Cam Chain 4.20 Toughened Steel
component = Sleeve 10.00 Toughened Steel
component = Piston 20.00 Toughened Steel
component = Con Rod 10.00 Toughened Steel
</contents></results>

Para obtener más información sobre la clase MbsElementIterator, consulte MbsElementIterator.

Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Comentarios

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Última actualización:
        
        Última actualización: 2015-02-28 17:00:55


Tema de conceptoTema de concepto | Versión 8.0.0.5 | bc28330_