The following are example definitions of data elements as they might appear in a typed data definition file:
Example 1: Instantiate a typed data field of type money.
<type id="Money" implClass="com.ibm.btt.base.DataField"> <Descriptor id="typeDefault" implClass="com.ibm.btt.base.types.ext.FloatDescriptor"> <Converter convTypes="default" implClass="com.ibm.btt.base.types.ext.FloatConverter"/> <Validator implClass="com.ibm.btt.base.types.ext.FloatValidator" lowerLimit="0"/> </Descriptor > </kColl>
DataField elem1 = (DataField) DSEType.readObject("Money"); elem1.setValue(new Float("200"));
Example 2: Instantiate a typed keyed collection of type account and set its balance to 200.
<type id="AccountNumber" implClass="com.ibm.btt.base.DataField"> <Descriptor id="typeDefault" implClass="com.ibm.btt.base.types.ext.StringPropertyDescriptor"> <Converter convTypes="default,xml" implClass="com.ibm.btt.base.types.ext.StringConverter"/> <Validator implClass="com.ibm.btt.base.types.ext.IntegerStringValidator" minLength="8" maxLength="8"/> </Descriptor> </type> <type id="Account" implClass="com.ibm.btt.base.KeyedCollection"> <KCollDescriptor id="typeDefault" refType="Account"/> <StringDescriptor id="accountNumber" refType="AccountNumber" initialValue="12345678" isMandatory="true"/> <FloatDescriptor id="accountBalance" refType="Money" initialValue="50" upperLimit="100000"/> </type>
KeyedCollection kColl = (KeyedCollection) DSEType.readObject("Account"); kColl.setValueAt("accountBalance", new Float("200"));
Example 3: Instantiate the myBalance typed data field defined in the data definition file and set its balance to 200.
<type id="Money" implClass="com.ibm.btt.base.DataField"> <Descriptor id="typeDefault" implClass="com.ibm.btt.base.types.ext.FloatDescriptor"> <Converter convTypes="default" implClass=com.ibm.btt.base.types.ext.FloatConverter/> <Validator implClass="com.ibm.btt.base.types.ext.FloatValidator" lowerLimit="0"/> </Descriptor > </kColl>
<data id="myBalance" refType="Money" value="1000"/>
DataField elem1 = (DataField)DataElement.readObject("myBalance"); elem1.setValue(new Float("200"));
Example 4: Value conversions in typed data
<type id="Currency" implClass="com.ibm.btt.base.DataField"> <Descriptor id="typeDefault" implClass="com.ibm.btt.base.types.impl.SimplePropertyDescriptor"> <Converter convTypes="default" implClass="com.ibm.btt.base.types.impl.CurrencyConverter"> <param value="EUR" id="currency"/> <param value="bigDecimal" id="numberType"/> </Converter> <Validator implClass="com.ibm.btt.base.types.impl.CurrencyValidator"> <param value="bigDecimal" id="numberType"/> </Validator> </Descriptor> </type>
<data id="validCur" refType="Currency"> <param value="true" id="isMandatory" /> <param value="2" id="decimalPlaces" /> <param value="USD" id="currency" /> </data>
DataField validCur = (DataField) DataElement.readObject("validCur"); validCur.setValidValue(new Currency("CNY",BigDecimal.TEN));
DataField validCur = (DataField) DataElement.readObject("validCur"); validCur.setValidValue("345.34");