Déclarer les capacités du code Java (étape d'intégration Java dans DataStage)

La classe Capabilities définit les capacités de votre code Java™ en encapsulant une liste d'attributs et de paramètres.

Vous trouverez ci-après la liste des méthodes disponibles fournies par la classe Capabilities . Pour plus de détails sur les méthodes, voir les informations Javadoc dans la documentation de l'API de l'étape Java Integration.

  • getMinimumInputLinkCount()
  • getMaximumInputLinkCount()
  • getMinimumOutputStreamLinkCount()
  • getMaximumOutputStreamLinkCount()
  • getMinimumRejectLinkCount()
  • getMaximumRejectLinkCount()
  • getColumnTransferBehavior()
  • isWaveGenerator()
  • isRunOnConductor()
  • setMinumumInputLinkCount()
  • setMaximumInputLinkCount()
  • setMinimumOutputStreamLinkCount()
  • setMaximumOutputStreamLinkCount()
  • setMinimumRejectLinkCount()
  • setMaximumRejectLinkCount()
  • setIsWaveGenerator()
  • setColumnTransferBehavior()
  • setIsRunOnConductor()

Juste après l'instanciation de votre code Processor , l'étape Java Integration appelle la méthode getCapabilities() dans votre code Processor pour obtenir son objet Capabilities associé afin de déterminer si votre code Java peut être exécuté dans la conception de travail en cours.

En remplaçant la méthode getCapabilities() dans la classe Processor , votre code Java peut personnaliser les valeurs des fonctions pour répondre à votre code Java et le transmettre à l'étape d'intégration Java.

L'exemple suivant montre que votre code Java n'accepte que la casse d'un seul lien d'entrée.
public Capabilities getCapabilities()
{
  Capabilities capabilities = new Capabilities();
  capabilities.setMinimumInputLinkCount(1);
  capabilities.setMaximumInputLinkCount(1);
  capabilities.setMaximumOutputStreamLinkCount(0);
  capabilities.setMaximumRejectLinkCount(0);
  return capabilities;
}
Le travail se termine si la conception de travail en cours ne correspond pas aux fonctions spécifiées.
Le code suivant fournit la fonctionnalité équivalente au premier exemple. L'étape Java Integration compare le nombre de liens associés à l'étape avec les limites spécifiées par l'implémentation de la méthode getCapabilities() . Si le nombre de liens est en dehors des limites spécifiées, l'étape Java Integration envoie un message approprié au journal de travail et abandonne le travail.
package samples;

import com.ibm.is.cc.javastage.api.*;

public class ReworkedSimplePeek extends Processor
{
  private InputLink m_inputLink;

  public Capabilities getCapabilities()
  {
    Capabilities capabilities = new Capabilities();
    capabilities.setMinimumInputLinkCount(1);
    capabilities.setMaximumInputLinkCount(1);
    capabilities.setMaximumOutputStreamLinkCount(0);
    capabilities.setMaximumRejectLinkCount(0);
    return capabilities;
  }

  public boolean validateConfiguration(
    Configuration configuration, boolean isRuntime)throws Exception
  {
    m_inputLink = configuration.getInputLink(0);     
    return true;   
  }

  public void process() throws Exception
  {
    do
{
      InputRecord inputRecord = m_inputLink.readRecord();
      if (inputRecord == null)
      { 
         // No more input. Your code must return from process() method.
         break;
      }

      for (int i = 0; i < m_inputLink.getColumnCount(); i++) 
      { 
         Object value = inputRecord.getValue(i);
         Logger.information(value.toString());
      }
    } 
    while (true);
  }
}