Extrahování řetězce nebo tokenu ze vstupního argumentu

Třída ParseResponse extrahuje řetězec ze svého vstupního argumentu. Třída ExtractToken extrahuje konkrétní token (řetězec) ze svého vstupního argumentu. Obě třídy jsou vhodné pro práci s určitými typy korelace dynamických dat.
Třída ParseResponse extrahuje řetězec ze svého vstupního argumentu pomocí regulárního výrazu pro shodu dle vzoru.
package customcode; 

import com.ibm.rational.test.lt.kernel.services.ITestExecutionServices; 

import java.util.regex.*; 

/** 
 * Třída ParseResponse demonstruje použití vlastního kódu k extrahování 
 * řetězce ze svého vstupního argumentu pomocí regulárního výrazu pro 
 * shodu dle vzoru.  * 
 * V tomto příkladu se předpokládá, že řetězec args[0] je úplnou odpovědí 
z předchozího požadavku. Tato odpověď obsahuje denní 
titulky ve formátu: 
 * 
 *   <a class=f href=r/d2>In the News</a><small class=m>&nbsp;<span id=nw> 
 *   </span></small></h2> 
 *   <div class=ct> 
 *   &#149;&nbsp;<a href=s/213231>Cooler weather moving into eastern 
U.S.</a>  *   <br>&#149;&nbsp;<a href=s/262502>Digital camera shipments 
up</a><br>  * 
 * Na základě výše uvedené odpovědi by měl být extrahovaný řetězec: 
 *        Cooler weather moving into eastern U.S.  */ 

/** 
 * @author IBM Custom Code Samples 
 */ 

public class ParseResponse implements 
        com.ibm.rational.test.lt.kernel.custom.ICustomCode2 { 

    /** 
     * Instance tohoto se vytvoří pomocí konstruktoru no-arg.      */ 
    public ParseResponse() {} 

    public String exec(ITestExecutionServices tes, String[] args) { 
        String HeadlineStr = "No Headline Available"; 
        String RegExpStr = ".*In the News[^;]*;[^;]*;[^;]*;<a 
href=([^>]*)>([^<]*)<";         Pattern pattern = 
Pattern.compile(RegExpStr, Pattern.DOTALL);         Matcher matcher = 
pattern.matcher(args[0]);                 
        if (matcher.lookingAt()) 
            HeadlineStr = matcher.group(2); 
        else 
            tes.getTestLogManager().reportMessage("Input does not match 
pattern."); 
        return HeadlineStr; 
    } 
Třída ExtractToken extrahuje konkrétní řetězec ze svého vstupního argumentu.
package customcode;

import com.ibm.rational.test.lt.kernel.services.ITestExecutionServices;

/**
 * Třída ExtractToken demonstruje použití vlastního kódu k extrahování konkrétního
 * tokenu (řetězce) ze svého vstupního argumentu. To lze použít pro zpracování
 * určitých typů korelace dynamických dat.
 *
 * V tomto příkladu se předpokládá, že vstupní řetězec args[0] je oddělen čárkami
 * a token, o který jde, je předposlední token. Je-li např.
 * args[0]:
 *    javascript:parent.selectItem('1010','[Negative]1010','1010','','IBM',
 *         '30181','Rational','1','null','1','1','6fd8e261','RPT')
 * vrátí třída řetězec 6fd8e261.
 */

/**
 * @author IBM Custom Code Samples
 */

public class ExtractToken implements
        com.ibm.rational.test.lt.kernel.custom.ICustomCode2 {

    public ExtractToken() {
    }

    public String exec(ITestExecutionServices tes, String[] args) {
        String ArgStr;
        String NextToLastStr;
        String[] Tokens = args[0].split(",");
                
        if (Tokens.length > 2) {
            ArgStr = Tokens[Tokens.length - 2];        // Extrahovat předposlední token

            // Odebrat zapouzdřující '' 
            NextToLastStr = ArgStr.substring(1, ArgStr.length() - 1);
        } else {
            tes.getTestLogManager().reportMessage("Could not extract value");
            NextToLastStr = null;
        }
        return NextToLastStr;
    }
}

Váš názor