Prezentowanie właściwości wyjścia InteractionSpec jako danych

Właściwości klas InteractionSpec i ConnectionSpec można udostępnić jako wyjścia, tak aby aplikacja Java mogła pobrać wartości tych właściwości po wykonaniu transakcji. Aby udostępnić właściwości klasy InteractionSpec jako wyjścia, należy utworzyć nową klasę wyjściową oraz zmodyfikować pliki interfejsu i implementacji komponentu Java bean J2C przed użyciem go w aplikacji.

Poniższe fragmenty kodu udostępniają właściwość functionName klasy InteractionSpec z przykładu taderc99. Oto przykładowa klasa opakowująca:
package sample.cics.data;

public class WrapperBean {
	protected CustomerInfo customerInfo;
	protected String funcName;

	/**
	 * @return Zwraca właściwość functionName.
	 */
	public String getFuncName() {
		return funcName;
	}
	/**
	 * @param functionName - Właściwość functionName do ustawienia.
	 */
	public void setFuncName(String functionName) {
		this.funcName = functionName;
	}
	/**
	 * @return Zwraca właściwość customerInfo.
	 */
	public CustomerInfo getCustomerInfo() {
		return customerInfo;
	}
	/**
	 * @param customerInfo - Właściwość customerInfo do ustawienia.
	 */
	public void setCustomerInfo(CustomerInfo customerInfo) {
		this.customerInfo = customerInfo;
	}
}

Poniżej przedstawiono zaktualizowaną metodę. Zmiany, które należy wprowadzić, zostały pogrubione, zaś zmiany w wygenerowanym kodzie zostały oznaczone kursywą.

/**
	 * @j2c.interactionSpec class="com.ibm.connector2.cics.ECIInteractionSpec"
	 * @j2c.interactionSpec-property name="functionName" value="TADERC99"
	 * @j2c.interactionSpec-returnProperty name="functionName" outputBinding="funcName"
	 * @generated
	 */
	public WrapperBean getCustomer(sample.cics.data.CustomerInfo arg) throws javax.resource.ResourceException {
		ConnectionSpec cs = getConnectionSpec();
		InteractionSpec is = interactionSpec;
		if (is == null) {
			is = new com.ibm.connector2.cics.ECIInteractionSpec();
			((com.ibm.connector2.cics.ECIInteractionSpec) is).setFunctionName("TADERC99");
		}
		sample.cics.data.CustomerInfo output = new sample.cics.data.CustomerInfo();
		invoke(cs, is, arg, output);
		WrapperBean bean = new WrapperBean();
		bean.setCustomerInfo(output);
		bean.setFuncName(((com.ibm.connector2.cics.ECIInteractionSpec) is).getFunctionName());
		return bean;	}

Opinie