Wyodrębnianie łańcucha lub elementu z argumentu wejściowego

Klasa ParseResponse wyodrębnia łańcuch z argumentu wejściowego. Klasa ExtractToken wyodrębnia konkretny element (łańcuch) z argumentu wejściowego. Obie klasy mogą być przydatne do obsługi niektórych typów korelacji danych dynamicznych.
Klasa ParseResponse wyodrębnia łańcuch z argumentu wejściowego, korzystając z wyrażenia regularnego na potrzeby dopasowywania wzorca.
package customcode; 

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

import java.util.regex.*; 

/** 
 * Klasa ParseResponse demonstruje użycie kodu niestandardowego do wyodrębnienia 
 * łańcucha z argumentu wejściowego z użyciem wyrażenia regularnego na potrzeby 
 * dopasowywania wzorca. 
 * 
 * W tym przykładzie przyjęto, że łańcuch wejściowy args[0] jest pełną odpowiedzią 
* z poprzedniego żądania.  Ta odpowiedź zawiera nagłówki wiadomości dnia 
* w formacie takim jak: 
 * 
 *   <a class=f href=r/d2>Wiadomości</a><small class=m>&nbsp;<span id=nw> 
 *   </span></small></h2> 
 *   <div class=ct> 
 *   &#149;&nbsp;<a href=s/213231>Burze przeszły na wschód 
Polski</a>
 *   <br>&#149;&nbsp;<a href=s/262502>Wzrost dostaw kamer 
cyfrowych</a><br>
 * 
 * Przy powyższej odpowiedzi wyodrębnionym łańcuchem będzie: 
 *        Burze przeszły na wschód Polski 
 */ 

/** 
 * @author Przykłady kodu niestandardowego IBM 
 */ 

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

    /** 
     * Instancje tej klasy zostaną utworzone za pomocą konstruktora bez argumentów. 
     */ 
    public ParseResponse() {} 

    public String exec(ITestExecutionServices tes, String[] args) { 
        String HeadlineStr = "Brak nagłówków"; 
        String RegExpStr = ".*Wiadomości[^;]*;[^;]*;[^;]*;<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("Dane wejściowe są niezgodne 
ze wzorcem."); 
        return HeadlineStr; 
    } 
Klasa ExtractToken wyodrębnia konkretny łańcuch z argumentu wejściowego.
package customcode;

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

/**
 * Klasa ExtractToken demonstruje użycie kodu niestandardowego do wyodrębnienia konkretnego
 * elementu (łańcucha) z argumentu wejściowego.  Może to być przydatne do obsługi
 * niektórych typów korelacji danych dynamicznych.
 *
 * W tym przykładzie przyjęto, że łańcuch wejściowy args[0] jest rozdzielony przecinkami,
 * a odpowiedni element jest przedostatni.  Na przykład jeśli
 * łańcuch args[0] to:
 *    javascript:parent.selectItem('1010','[Negative]1010','1010','','IBM',
 *         '30181','Rational','1','null','1','1','6fd8e261','RPT')
 * klasa zwróci łańcuch 6fd8e261.
 */

/**
 * @author Przykłady kodu niestandardowego IBM
 */

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];        // wyodrębnij przedostatni element

            // usuń obejmujące znaki '' 
            NextToLastStr = ArgStr.substring(1, ArgStr.length() - 1);
        } else {
            tes.getTestLogManager().reportMessage("Nie można wyodrębnić wartości");
            NextToLastStr = null;
        }
        return NextToLastStr;
    }
}

Opinia