Skip to Content.
Sympa Menu

notify-dpml - svn commit: r2140 - in development/planet/users/niclas/iso8583: . api/src/main/net/dpml/iso8583/data channels channels/src/test elements elements/src/main/net/dpml/iso8583/data/elements elements/src/main/net/dpml/iso8583/data/representation elements/src/test elements/src/test/net elements/src/test/net/dpml elements/src/test/net/dpml/iso8583 elements/src/test/net/dpml/iso8583/test elements/src/test/net/dpml/iso8583/test/data elements/src/test/net/dpml/iso8583/test/data/elements elements/src/test/net/dpml/iso8583/test/data/manager elements/src/test/net/dpml/iso8583/test/data/representation packaging packaging/src/test

notify-dpml AT lists.ibiblio.org

Subject: DPML Notify

List archive

Chronological Thread  
  • From: niclas AT hedhman.org
  • To: notify-dpml AT lists.ibiblio.org
  • Subject: svn commit: r2140 - in development/planet/users/niclas/iso8583: . api/src/main/net/dpml/iso8583/data channels channels/src/test elements elements/src/main/net/dpml/iso8583/data/elements elements/src/main/net/dpml/iso8583/data/representation elements/src/test elements/src/test/net elements/src/test/net/dpml elements/src/test/net/dpml/iso8583 elements/src/test/net/dpml/iso8583/test elements/src/test/net/dpml/iso8583/test/data elements/src/test/net/dpml/iso8583/test/data/elements elements/src/test/net/dpml/iso8583/test/data/manager elements/src/test/net/dpml/iso8583/test/data/representation packaging packaging/src/test
  • Date: Fri, 25 Mar 2005 18:31:18 -0500

Author: niclas AT hedhman.org
Date: Fri Mar 25 18:31:17 2005
New Revision: 2140

Added:

development/planet/users/niclas/iso8583/api/src/main/net/dpml/iso8583/data/Representation.java
(contents, props changed)
development/planet/users/niclas/iso8583/channels/src/test/

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/AmountCardHolderBilling.java
(contents, props changed)

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/AmountCardholderBillingFee.java
(contents, props changed)

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/AmountReconciliation.java
(contents, props changed)

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/AmountTransaction.java
(contents, props changed)

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/AmountsOriginal.java
(contents, props changed)

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/CardSequenceNumber.java
(contents, props changed)

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/ContinuationBit.java
(contents, props changed)

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/ConversionRateCardholderBilling.java
(contents, props changed)

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/ConversionRateConciliation.java
(contents, props changed)

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/CountryCodeAcquiringInstitution.java
(contents, props changed)

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/CountryCodePrimaryAccountNumber.java
(contents, props changed)

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/DateAndTimeLocalTransaction.java
(contents, props changed)

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/DateAndTimeTransmission.java
(contents, props changed)

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/DateCapture.java
(contents, props changed)

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/DateConversion.java
(contents, props changed)

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/DateEffective.java
(contents, props changed)

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/DateExpiration.java
(contents, props changed)

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/DateReconciliation.java
(contents, props changed)

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/DateSettlement.java
(contents, props changed)

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/FunctionCode.java
(contents, props changed)

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/MerchantCategoryCode.java
(contents, props changed)

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/MessageErrorIndicator.java
(contents, props changed)

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/MessageReasonCode.java
(contents, props changed)

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/PosCapability.java
(contents, props changed)

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/PosDataCode.java
(contents, props changed)

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/ProcessingCode.java
(contents, props changed)

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/ReconciliationIndicator.java
(contents, props changed)

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/SystemsTraceAuditNumber.java
(contents, props changed)

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/TransactionLifeCycleIdentificationData.java
(contents, props changed)

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/XX.java
(contents, props changed)

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/A.java
(contents, props changed)

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/AN.java
(contents, props changed)

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/ANB.java
(contents, props changed)

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/ANP.java
(contents, props changed)

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/ANS.java
(contents, props changed)

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/ANSB.java
(contents, props changed)

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/AS.java
(contents, props changed)

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/B.java
(contents, props changed)

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/N.java
(contents, props changed)

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/VariableAN.java
(contents, props changed)

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/VariableANS.java
(contents, props changed)

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/VariableANSB.java
(contents, props changed)

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/VariableB.java
(contents, props changed)

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/VariableN.java
(contents, props changed)

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/VariableZ.java
(contents, props changed)

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/XN.java
(contents, props changed)
development/planet/users/niclas/iso8583/elements/src/test/
development/planet/users/niclas/iso8583/elements/src/test/net/
development/planet/users/niclas/iso8583/elements/src/test/net/dpml/
development/planet/users/niclas/iso8583/elements/src/test/net/dpml/iso8583/

development/planet/users/niclas/iso8583/elements/src/test/net/dpml/iso8583/test/

development/planet/users/niclas/iso8583/elements/src/test/net/dpml/iso8583/test/data/

development/planet/users/niclas/iso8583/elements/src/test/net/dpml/iso8583/test/data/elements/

development/planet/users/niclas/iso8583/elements/src/test/net/dpml/iso8583/test/data/manager/

development/planet/users/niclas/iso8583/elements/src/test/net/dpml/iso8583/test/data/representation/
development/planet/users/niclas/iso8583/packaging/src/test/
Removed:

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/TEMPLATE.tjava
Modified:
development/planet/users/niclas/iso8583/channels/channels.iml
development/planet/users/niclas/iso8583/elements/elements.iml

development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/PrimaryAccountNumber.java
development/planet/users/niclas/iso8583/iso8583.iws
development/planet/users/niclas/iso8583/packaging/packaging.iml
Log:
New strategy for handling the endless number of fields and formatting in the
ISO8583 specification. By separating each field type into a class, it will be
possible to make more fine grain checks that the data is correct.

Added:
development/planet/users/niclas/iso8583/api/src/main/net/dpml/iso8583/data/Representation.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/iso8583/api/src/main/net/dpml/iso8583/data/Representation.java
Fri Mar 25 18:31:17 2005
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2004-2005 Niclas Hedhman.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.dpml.iso8583.data;
+
+
+public interface Representation
+{
+
+ void validate( Object obj );
+
+
+ String format( Object obj );
+}

Modified: development/planet/users/niclas/iso8583/channels/channels.iml
==============================================================================
--- development/planet/users/niclas/iso8583/channels/channels.iml
(original)
+++ development/planet/users/niclas/iso8583/channels/channels.iml Fri
Mar 25 18:31:17 2005
@@ -7,6 +7,7 @@
<exclude-exploded />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main" isTestSource="false"
/>
+ <sourceFolder url="file://$MODULE_DIR$/src/test" isTestSource="true" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />

Modified: development/planet/users/niclas/iso8583/elements/elements.iml
==============================================================================
--- development/planet/users/niclas/iso8583/elements/elements.iml
(original)
+++ development/planet/users/niclas/iso8583/elements/elements.iml Fri
Mar 25 18:31:17 2005
@@ -7,12 +7,14 @@
<exclude-exploded />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main" isTestSource="false"
/>
+ <sourceFolder url="file://$MODULE_DIR$/src/test" isTestSource="true" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="api" />
<orderEntry type="library" name="Metro Public" level="application" />
<orderEntry type="library" name="JPos" level="project" />
+ <orderEntry type="library" name="Transit" level="application" />
<orderEntryProperties />
</component>
</module>

Added:
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/AmountCardHolderBilling.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/AmountCardHolderBilling.java
Fri Mar 25 18:31:17 2005
@@ -0,0 +1,142 @@
+/*
+ * Copyright 2004-2005 Niclas Hedhman.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.dpml.iso8583.data.elements;
+
+
+import net.dpml.iso8583.data.DataElement;
+import net.dpml.iso8583.data.Representation;
+import net.dpml.iso8583.data.representation.N;
+import net.dpml.logging.Logger;
+import net.dpml.parameters.Parameters;
+import org.jpos.iso.ISOException;
+import org.jpos.iso.ISOMsg;
+
+
+/** <code>DataElement</code> implementation of AmountCardHolderBilling.
+ *
+ * @author <a href="mailto:niclas AT hedhman.org";>Niclas Hedhman</a>
+ *
+ * @see net.dpml.iso8583.data.DataElement
+ * @see net.dpml.iso8583.data.DataElementManager
+ *
+ * @metro.component lifestyle="transient" name="AmountCardHolderBilling"
+ * @metro.service type="net.dpml.iso8583.data.DataElement"
+ */
+public class AmountCardHolderBilling
+ implements DataElement
+{
+ /** The ISO8583 bit number */
+ static private int ISO8583_BIT_NUMBER = 6;
+
+ /** ISO8583 Representation formatter and validator. */
+ static private Representation m_Representation;
+
+ private String m_value;
+ private Logger m_logger;
+
+ /** Sets up the element type in a generic fashion. */
+ static
+ {
+ m_Representation = new N( 16 );
+ }
+
+ /** Constructor of AmountCardHolderBilling.
+ *
+ * @param logger supplied <code>Logger</code> instance.
+ * @param params supplied configuration <code>Parameters</code>
+ */
+ public AmountCardHolderBilling( Logger logger, Parameters params )
+ {
+ m_logger = logger;
+ m_value = params.getParameter( "value", "" );
+ }
+
+ /** Instructs the DataElement to populate the ISOMsg object.
+ * <p>
+ * <code>DataElement</code> implementations are responsible to know
+ * which field (a.k.a. bit) that it should populate in the
+ * <code>ISOMsg</code> structure. The caller must know whether the
+ * field is required or not, and if the <code>DataElement</code> has
+ * not been properly set, either in the course of the session or as
+ * part of its initialization, it should throw an ISOException.
+ * </p>
+ * <p>
+ * If the <code>DataElement</code> is nested, it is responsible for
+ * calling the <code>populate</code> method for each of the composite
+ * <code>DataElements</code>.
+ * </p>
+ * @param message the <code>ISOMsg</code> instance to populate with the
+ * value of the <code>DataElement</code>.
+ * @param required if true, the <code>DataElement</code> must make sure
+ * that its value object has been set during the session.
+ *
+ * @exception org.jpos.iso.ISOException if the ISOMsg can not be
populated.
+ */
+ public void populate( ISOMsg message, boolean required )
+ throws ISOException
+ {
+ if( m_logger.isDebugEnabled() )
+ {
+ m_logger.debug( "populate: " + message );
+ }
+
+ if( required && m_value == null )
+ {
+ throw new ISOException( "Required data element has not been set:
PrimaryAccountNumber" );
+ }
+ message.set( ISO8583_BIT_NUMBER, m_value );
+ }
+
+ /** Sets the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ * <p>
+ * The provided argument must be of the correct type, and be within
+ * its specification defined bounds, or an <code>IllegalArgumentException
+ * </code> will be thrown.
+ * </p>
+ * @exception IllegalArgumentException if the provided <code>value</code>
+ * argument is of the wrong class, contains illegal values,
+ * or is null.
+ */
+ public void set( Object value )
+ throws IllegalArgumentException
+ {
+ m_Representation.validate( value );
+ m_value = m_Representation.format( value );
+ }
+
+ /** Returns the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ *
+ * @return the value object of the DataElement, which is the same object
+ * that has previously been set with the <code>set()</code>
+ * method.
+ */
+ public Object get()
+ {
+ return m_value;
+ }
+}

Added:
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/AmountCardholderBillingFee.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/AmountCardholderBillingFee.java
Fri Mar 25 18:31:17 2005
@@ -0,0 +1,142 @@
+/*
+ * Copyright 2004-2005 Niclas Hedhman.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.dpml.iso8583.data.elements;
+
+
+import net.dpml.iso8583.data.DataElement;
+import net.dpml.iso8583.data.Representation;
+import net.dpml.iso8583.data.representation.N;
+import net.dpml.logging.Logger;
+import net.dpml.parameters.Parameters;
+import org.jpos.iso.ISOException;
+import org.jpos.iso.ISOMsg;
+
+
+/** <code>DataElement</code> implementation of AmountCardholderBillingFee.
+ *
+ * @author <a href="mailto:niclas AT hedhman.org";>Niclas Hedhman</a>
+ *
+ * @see net.dpml.iso8583.data.DataElement
+ * @see net.dpml.iso8583.data.DataElementManager
+ *
+ * @metro.component lifestyle="transient" name="AmountCardholderBillingFee"
+ * @metro.service type="net.dpml.iso8583.data.DataElement"
+ */
+public class AmountCardholderBillingFee
+ implements DataElement
+{
+ /** The ISO8583 bit number */
+ static private int ISO8583_BIT_NUMBER = 8;
+
+ /** ISO8583 Representation formatter and validator. */
+ static private Representation m_Representation;
+
+ private String m_value;
+ private Logger m_logger;
+
+ /** Sets up the element type in a generic fashion. */
+ static
+ {
+ m_Representation = new N( 12 );
+ }
+
+ /** Constructor of AmountCardholderBillingFee.
+ *
+ * @param logger supplied <code>Logger</code> instance.
+ * @param params supplied configuration <code>Parameters</code>
+ */
+ public AmountCardholderBillingFee( Logger logger, Parameters params )
+ {
+ m_logger = logger;
+ m_value = params.getParameter( "value", "" );
+ }
+
+ /** Instructs the DataElement to populate the ISOMsg object.
+ * <p>
+ * <code>DataElement</code> implementations are responsible to know
+ * which field (a.k.a. bit) that it should populate in the
+ * <code>ISOMsg</code> structure. The caller must know whether the
+ * field is required or not, and if the <code>DataElement</code> has
+ * not been properly set, either in the course of the session or as
+ * part of its initialization, it should throw an ISOException.
+ * </p>
+ * <p>
+ * If the <code>DataElement</code> is nested, it is responsible for
+ * calling the <code>populate</code> method for each of the composite
+ * <code>DataElements</code>.
+ * </p>
+ * @param message the <code>ISOMsg</code> instance to populate with the
+ * value of the <code>DataElement</code>.
+ * @param required if true, the <code>DataElement</code> must make sure
+ * that its value object has been set during the session.
+ *
+ * @exception org.jpos.iso.ISOException if the ISOMsg can not be
populated.
+ */
+ public void populate( ISOMsg message, boolean required )
+ throws ISOException
+ {
+ if( m_logger.isDebugEnabled() )
+ {
+ m_logger.debug( "populate: " + message );
+ }
+
+ if( required && m_value == null )
+ {
+ throw new ISOException( "Required data element has not been set:
PrimaryAccountNumber" );
+ }
+ message.set( ISO8583_BIT_NUMBER, m_value );
+ }
+
+ /** Sets the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ * <p>
+ * The provided argument must be of the correct type, and be within
+ * its specification defined bounds, or an <code>IllegalArgumentException
+ * </code> will be thrown.
+ * </p>
+ * @exception IllegalArgumentException if the provided <code>value</code>
+ * argument is of the wrong class, contains illegal values,
+ * or is null.
+ */
+ public void set( Object value )
+ throws IllegalArgumentException
+ {
+ m_Representation.validate( value );
+ m_value = m_Representation.format( value );
+ }
+
+ /** Returns the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ *
+ * @return the value object of the DataElement, which is the same object
+ * that has previously been set with the <code>set()</code>
+ * method.
+ */
+ public Object get()
+ {
+ return m_value;
+ }
+}

Added:
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/AmountReconciliation.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/AmountReconciliation.java
Fri Mar 25 18:31:17 2005
@@ -0,0 +1,142 @@
+/*
+ * Copyright 2004-2005 Niclas Hedhman.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.dpml.iso8583.data.elements;
+
+
+import net.dpml.iso8583.data.DataElement;
+import net.dpml.iso8583.data.Representation;
+import net.dpml.iso8583.data.representation.N;
+import net.dpml.logging.Logger;
+import net.dpml.parameters.Parameters;
+import org.jpos.iso.ISOException;
+import org.jpos.iso.ISOMsg;
+
+
+/** <code>DataElement</code> implementation of AmountReconciliation.
+ *
+ * @author <a href="mailto:niclas AT hedhman.org";>Niclas Hedhman</a>
+ *
+ * @see net.dpml.iso8583.data.DataElement
+ * @see net.dpml.iso8583.data.DataElementManager
+ *
+ * @metro.component lifestyle="transient" name="AmountReconciliation"
+ * @metro.service type="net.dpml.iso8583.data.DataElement"
+ */
+public class AmountReconciliation
+ implements DataElement
+{
+ /** The ISO8583 bit number */
+ static private int ISO8583_BIT_NUMBER = 5;
+
+ /** ISO8583 Representation formatter and validator. */
+ static private Representation m_Representation;
+
+ private String m_value;
+ private Logger m_logger;
+
+ /** Sets up the element type in a generic fashion. */
+ static
+ {
+ m_Representation = new N( 16 );
+ }
+
+ /** Constructor of AmountReconciliation.
+ *
+ * @param logger supplied <code>Logger</code> instance.
+ * @param params supplied configuration <code>Parameters</code>
+ */
+ public AmountReconciliation( Logger logger, Parameters params )
+ {
+ m_logger = logger;
+ m_value = params.getParameter( "value", "" );
+ }
+
+ /** Instructs the DataElement to populate the ISOMsg object.
+ * <p>
+ * <code>DataElement</code> implementations are responsible to know
+ * which field (a.k.a. bit) that it should populate in the
+ * <code>ISOMsg</code> structure. The caller must know whether the
+ * field is required or not, and if the <code>DataElement</code> has
+ * not been properly set, either in the course of the session or as
+ * part of its initialization, it should throw an ISOException.
+ * </p>
+ * <p>
+ * If the <code>DataElement</code> is nested, it is responsible for
+ * calling the <code>populate</code> method for each of the composite
+ * <code>DataElements</code>.
+ * </p>
+ * @param message the <code>ISOMsg</code> instance to populate with the
+ * value of the <code>DataElement</code>.
+ * @param required if true, the <code>DataElement</code> must make sure
+ * that its value object has been set during the session.
+ *
+ * @exception org.jpos.iso.ISOException if the ISOMsg can not be
populated.
+ */
+ public void populate( ISOMsg message, boolean required )
+ throws ISOException
+ {
+ if( m_logger.isDebugEnabled() )
+ {
+ m_logger.debug( "populate: " + message );
+ }
+
+ if( required && m_value == null )
+ {
+ throw new ISOException( "Required data element has not been set:
PrimaryAccountNumber" );
+ }
+ message.set( ISO8583_BIT_NUMBER, m_value );
+ }
+
+ /** Sets the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ * <p>
+ * The provided argument must be of the correct type, and be within
+ * its specification defined bounds, or an <code>IllegalArgumentException
+ * </code> will be thrown.
+ * </p>
+ * @exception IllegalArgumentException if the provided <code>value</code>
+ * argument is of the wrong class, contains illegal values,
+ * or is null.
+ */
+ public void set( Object value )
+ throws IllegalArgumentException
+ {
+ m_Representation.validate( value );
+ m_value = m_Representation.format( value );
+ }
+
+ /** Returns the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ *
+ * @return the value object of the DataElement, which is the same object
+ * that has previously been set with the <code>set()</code>
+ * method.
+ */
+ public Object get()
+ {
+ return m_value;
+ }
+}

Added:
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/AmountTransaction.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/AmountTransaction.java
Fri Mar 25 18:31:17 2005
@@ -0,0 +1,142 @@
+/*
+ * Copyright 2004-2005 Niclas Hedhman.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.dpml.iso8583.data.elements;
+
+
+import net.dpml.iso8583.data.DataElement;
+import net.dpml.iso8583.data.Representation;
+import net.dpml.iso8583.data.representation.N;
+import net.dpml.logging.Logger;
+import net.dpml.parameters.Parameters;
+import org.jpos.iso.ISOException;
+import org.jpos.iso.ISOMsg;
+
+
+/** <code>DataElement</code> implementation of AmountTransaction.
+ *
+ * @author <a href="mailto:niclas AT hedhman.org";>Niclas Hedhman</a>
+ *
+ * @see net.dpml.iso8583.data.DataElement
+ * @see net.dpml.iso8583.data.DataElementManager
+ *
+ * @metro.component lifestyle="transient" name="AmountTransaction"
+ * @metro.service type="net.dpml.iso8583.data.DataElement"
+ */
+public class AmountTransaction
+ implements DataElement
+{
+ /** The ISO8583 bit number */
+ static private int ISO8583_BIT_NUMBER = 4;
+
+ /** ISO8583 Representation formatter and validator. */
+ static private Representation m_Representation;
+
+ private String m_value;
+ private Logger m_logger;
+
+ /** Sets up the element type in a generic fashion. */
+ static
+ {
+ m_Representation = new N( 16 );
+ }
+
+ /** Constructor of AmountTransaction.
+ *
+ * @param logger supplied <code>Logger</code> instance.
+ * @param params supplied configuration <code>Parameters</code>
+ */
+ public AmountTransaction( Logger logger, Parameters params )
+ {
+ m_logger = logger;
+ m_value = params.getParameter( "value", "" );
+ }
+
+ /** Instructs the DataElement to populate the ISOMsg object.
+ * <p>
+ * <code>DataElement</code> implementations are responsible to know
+ * which field (a.k.a. bit) that it should populate in the
+ * <code>ISOMsg</code> structure. The caller must know whether the
+ * field is required or not, and if the <code>DataElement</code> has
+ * not been properly set, either in the course of the session or as
+ * part of its initialization, it should throw an ISOException.
+ * </p>
+ * <p>
+ * If the <code>DataElement</code> is nested, it is responsible for
+ * calling the <code>populate</code> method for each of the composite
+ * <code>DataElements</code>.
+ * </p>
+ * @param message the <code>ISOMsg</code> instance to populate with the
+ * value of the <code>DataElement</code>.
+ * @param required if true, the <code>DataElement</code> must make sure
+ * that its value object has been set during the session.
+ *
+ * @exception org.jpos.iso.ISOException if the ISOMsg can not be
populated.
+ */
+ public void populate( ISOMsg message, boolean required )
+ throws ISOException
+ {
+ if( m_logger.isDebugEnabled() )
+ {
+ m_logger.debug( "populate: " + message );
+ }
+
+ if( required && m_value == null )
+ {
+ throw new ISOException( "Required data element has not been set:
PrimaryAccountNumber" );
+ }
+ message.set( ISO8583_BIT_NUMBER, m_value );
+ }
+
+ /** Sets the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ * <p>
+ * The provided argument must be of the correct type, and be within
+ * its specification defined bounds, or an <code>IllegalArgumentException
+ * </code> will be thrown.
+ * </p>
+ * @exception IllegalArgumentException if the provided <code>value</code>
+ * argument is of the wrong class, contains illegal values,
+ * or is null.
+ */
+ public void set( Object value )
+ throws IllegalArgumentException
+ {
+ m_Representation.validate( value );
+ m_value = m_Representation.format( value );
+ }
+
+ /** Returns the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ *
+ * @return the value object of the DataElement, which is the same object
+ * that has previously been set with the <code>set()</code>
+ * method.
+ */
+ public Object get()
+ {
+ return m_value;
+ }
+}

Added:
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/AmountsOriginal.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/AmountsOriginal.java
Fri Mar 25 18:31:17 2005
@@ -0,0 +1,142 @@
+/*
+ * Copyright 2004-2005 Niclas Hedhman.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.dpml.iso8583.data.elements;
+
+
+import net.dpml.iso8583.data.DataElement;
+import net.dpml.iso8583.data.Representation;
+import net.dpml.iso8583.data.representation.N;
+import net.dpml.logging.Logger;
+import net.dpml.parameters.Parameters;
+import org.jpos.iso.ISOException;
+import org.jpos.iso.ISOMsg;
+
+
+/** <code>DataElement</code> implementation of AmountsOriginal.
+ *
+ * @author <a href="mailto:niclas AT hedhman.org";>Niclas Hedhman</a>
+ *
+ * @see net.dpml.iso8583.data.DataElement
+ * @see net.dpml.iso8583.data.DataElementManager
+ *
+ * @metro.component lifestyle="transient" name="AmountsOriginal"
+ * @metro.service type="net.dpml.iso8583.data.DataElement"
+ */
+public class AmountsOriginal
+ implements DataElement
+{
+ /** The ISO8583 bit number */
+ static private int ISO8583_BIT_NUMBER = 30;
+
+ /** ISO8583 Representation formatter and validator. */
+ static private Representation m_Representation;
+
+ private String m_value;
+ private Logger m_logger;
+
+ /** Sets up the element type in a generic fashion. */
+ static
+ {
+ m_Representation = new N( 32 );
+ }
+
+ /** Constructor of AmountsOriginal.
+ *
+ * @param logger supplied <code>Logger</code> instance.
+ * @param params supplied configuration <code>Parameters</code>
+ */
+ public AmountsOriginal( Logger logger, Parameters params )
+ {
+ m_logger = logger;
+ m_value = params.getParameter( "value", "" );
+ }
+
+ /** Instructs the DataElement to populate the ISOMsg object.
+ * <p>
+ * <code>DataElement</code> implementations are responsible to know
+ * which field (a.k.a. bit) that it should populate in the
+ * <code>ISOMsg</code> structure. The caller must know whether the
+ * field is required or not, and if the <code>DataElement</code> has
+ * not been properly set, either in the course of the session or as
+ * part of its initialization, it should throw an ISOException.
+ * </p>
+ * <p>
+ * If the <code>DataElement</code> is nested, it is responsible for
+ * calling the <code>populate</code> method for each of the composite
+ * <code>DataElements</code>.
+ * </p>
+ * @param message the <code>ISOMsg</code> instance to populate with the
+ * value of the <code>DataElement</code>.
+ * @param required if true, the <code>DataElement</code> must make sure
+ * that its value object has been set during the session.
+ *
+ * @exception org.jpos.iso.ISOException if the ISOMsg can not be
populated.
+ */
+ public void populate( ISOMsg message, boolean required )
+ throws ISOException
+ {
+ if( m_logger.isDebugEnabled() )
+ {
+ m_logger.debug( "populate: " + message );
+ }
+
+ if( required && m_value == null )
+ {
+ throw new ISOException( "Required data element has not been set:
PrimaryAccountNumber" );
+ }
+ message.set( ISO8583_BIT_NUMBER, m_value );
+ }
+
+ /** Sets the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ * <p>
+ * The provided argument must be of the correct type, and be within
+ * its specification defined bounds, or an <code>IllegalArgumentException
+ * </code> will be thrown.
+ * </p>
+ * @exception IllegalArgumentException if the provided <code>value</code>
+ * argument is of the wrong class, contains illegal values,
+ * or is null.
+ */
+ public void set( Object value )
+ throws IllegalArgumentException
+ {
+ m_Representation.validate( value );
+ m_value = m_Representation.format( value );
+ }
+
+ /** Returns the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ *
+ * @return the value object of the DataElement, which is the same object
+ * that has previously been set with the <code>set()</code>
+ * method.
+ */
+ public Object get()
+ {
+ return m_value;
+ }
+}

Added:
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/CardSequenceNumber.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/CardSequenceNumber.java
Fri Mar 25 18:31:17 2005
@@ -0,0 +1,142 @@
+/*
+ * Copyright 2004-2005 Niclas Hedhman.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.dpml.iso8583.data.elements;
+
+
+import net.dpml.iso8583.data.DataElement;
+import net.dpml.iso8583.data.Representation;
+import net.dpml.iso8583.data.representation.N;
+import net.dpml.logging.Logger;
+import net.dpml.parameters.Parameters;
+import org.jpos.iso.ISOException;
+import org.jpos.iso.ISOMsg;
+
+
+/** <code>DataElement</code> implementation of CardSequenceNumber.
+ *
+ * @author <a href="mailto:niclas AT hedhman.org";>Niclas Hedhman</a>
+ *
+ * @see net.dpml.iso8583.data.DataElement
+ * @see net.dpml.iso8583.data.DataElementManager
+ *
+ * @metro.component lifestyle="transient" name="CardSequenceNumber"
+ * @metro.service type="net.dpml.iso8583.data.DataElement"
+ */
+public class CardSequenceNumber
+ implements DataElement
+{
+ /** The ISO8583 bit number */
+ static private int ISO8583_BIT_NUMBER = 23;
+
+ /** ISO8583 Representation formatter and validator. */
+ static private Representation m_Representation;
+
+ private String m_value;
+ private Logger m_logger;
+
+ /** Sets up the element type in a generic fashion. */
+ static
+ {
+ m_Representation = new N( 3 );
+ }
+
+ /** Constructor of CardSequenceNumber.
+ *
+ * @param logger supplied <code>Logger</code> instance.
+ * @param params supplied configuration <code>Parameters</code>
+ */
+ public CardSequenceNumber( Logger logger, Parameters params )
+ {
+ m_logger = logger;
+ m_value = params.getParameter( "value", "" );
+ }
+
+ /** Instructs the DataElement to populate the ISOMsg object.
+ * <p>
+ * <code>DataElement</code> implementations are responsible to know
+ * which field (a.k.a. bit) that it should populate in the
+ * <code>ISOMsg</code> structure. The caller must know whether the
+ * field is required or not, and if the <code>DataElement</code> has
+ * not been properly set, either in the course of the session or as
+ * part of its initialization, it should throw an ISOException.
+ * </p>
+ * <p>
+ * If the <code>DataElement</code> is nested, it is responsible for
+ * calling the <code>populate</code> method for each of the composite
+ * <code>DataElements</code>.
+ * </p>
+ * @param message the <code>ISOMsg</code> instance to populate with the
+ * value of the <code>DataElement</code>.
+ * @param required if true, the <code>DataElement</code> must make sure
+ * that its value object has been set during the session.
+ *
+ * @exception org.jpos.iso.ISOException if the ISOMsg can not be
populated.
+ */
+ public void populate( ISOMsg message, boolean required )
+ throws ISOException
+ {
+ if( m_logger.isDebugEnabled() )
+ {
+ m_logger.debug( "populate: " + message );
+ }
+
+ if( required && m_value == null )
+ {
+ throw new ISOException( "Required data element has not been set:
PrimaryAccountNumber" );
+ }
+ message.set( ISO8583_BIT_NUMBER, m_value );
+ }
+
+ /** Sets the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ * <p>
+ * The provided argument must be of the correct type, and be within
+ * its specification defined bounds, or an <code>IllegalArgumentException
+ * </code> will be thrown.
+ * </p>
+ * @exception IllegalArgumentException if the provided <code>value</code>
+ * argument is of the wrong class, contains illegal values,
+ * or is null.
+ */
+ public void set( Object value )
+ throws IllegalArgumentException
+ {
+ m_Representation.validate( value );
+ m_value = m_Representation.format( value );
+ }
+
+ /** Returns the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ *
+ * @return the value object of the DataElement, which is the same object
+ * that has previously been set with the <code>set()</code>
+ * method.
+ */
+ public Object get()
+ {
+ return m_value;
+ }
+}

Added:
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/ContinuationBit.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/ContinuationBit.java
Fri Mar 25 18:31:17 2005
@@ -0,0 +1,142 @@
+/*
+ * Copyright 2004-2005 Niclas Hedhman.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.dpml.iso8583.data.elements;
+
+
+import net.dpml.iso8583.data.DataElement;
+import net.dpml.iso8583.data.Representation;
+import net.dpml.iso8583.data.representation.B;
+import net.dpml.logging.Logger;
+import net.dpml.parameters.Parameters;
+import org.jpos.iso.ISOException;
+import org.jpos.iso.ISOMsg;
+
+
+/** <code>DataElement</code> implementation of ContinuationBit.
+ *
+ * @author <a href="mailto:niclas AT hedhman.org";>Niclas Hedhman</a>
+ *
+ * @see net.dpml.iso8583.data.DataElement
+ * @see net.dpml.iso8583.data.DataElementManager
+ *
+ * @metro.component lifestyle="transient" name="ContinuationBit"
+ * @metro.service type="net.dpml.iso8583.data.DataElement"
+ */
+public class ContinuationBit
+ implements DataElement
+{
+ /** The ISO8583 bit number */
+ static private int ISO8583_BIT_NUMBER = 1;
+
+ /** ISO8583 Representation formatter and validator. */
+ static private Representation m_Representation;
+
+ private String m_value;
+ private Logger m_logger;
+
+ /** Sets up the element type in a generic fashion. */
+ static
+ {
+ m_Representation = new B( 8 );
+ }
+
+ /** Constructor of ContinuationBit.
+ *
+ * @param logger supplied <code>Logger</code> instance.
+ * @param params supplied configuration <code>Parameters</code>
+ */
+ public ContinuationBit( Logger logger, Parameters params )
+ {
+ m_logger = logger;
+ m_value = params.getParameter( "value", "" );
+ }
+
+ /** Instructs the DataElement to populate the ISOMsg object.
+ * <p>
+ * <code>DataElement</code> implementations are responsible to know
+ * which field (a.k.a. bit) that it should populate in the
+ * <code>ISOMsg</code> structure. The caller must know whether the
+ * field is required or not, and if the <code>DataElement</code> has
+ * not been properly set, either in the course of the session or as
+ * part of its initialization, it should throw an ISOException.
+ * </p>
+ * <p>
+ * If the <code>DataElement</code> is nested, it is responsible for
+ * calling the <code>populate</code> method for each of the composite
+ * <code>DataElements</code>.
+ * </p>
+ * @param message the <code>ISOMsg</code> instance to populate with the
+ * value of the <code>DataElement</code>.
+ * @param required if true, the <code>DataElement</code> must make sure
+ * that its value object has been set during the session.
+ *
+ * @exception org.jpos.iso.ISOException if the ISOMsg can not be
populated.
+ */
+ public void populate( ISOMsg message, boolean required )
+ throws ISOException
+ {
+ if( m_logger.isDebugEnabled() )
+ {
+ m_logger.debug( "populate: " + message );
+ }
+
+ if( required && m_value == null )
+ {
+ throw new ISOException( "Required data element has not been set:
PrimaryAccountNumber" );
+ }
+ message.set( ISO8583_BIT_NUMBER, m_value );
+ }
+
+ /** Sets the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ * <p>
+ * The provided argument must be of the correct type, and be within
+ * its specification defined bounds, or an <code>IllegalArgumentException
+ * </code> will be thrown.
+ * </p>
+ * @exception IllegalArgumentException if the provided <code>value</code>
+ * argument is of the wrong class, contains illegal values,
+ * or is null.
+ */
+ public void set( Object value )
+ throws IllegalArgumentException
+ {
+ m_Representation.validate( value );
+ m_value = m_Representation.format( value );
+ }
+
+ /** Returns the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ *
+ * @return the value object of the DataElement, which is the same object
+ * that has previously been set with the <code>set()</code>
+ * method.
+ */
+ public Object get()
+ {
+ return m_value;
+ }
+}

Added:
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/ConversionRateCardholderBilling.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/ConversionRateCardholderBilling.java
Fri Mar 25 18:31:17 2005
@@ -0,0 +1,142 @@
+/*
+ * Copyright 2004-2005 Niclas Hedhman.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.dpml.iso8583.data.elements;
+
+
+import net.dpml.iso8583.data.DataElement;
+import net.dpml.iso8583.data.Representation;
+import net.dpml.iso8583.data.representation.N;
+import net.dpml.logging.Logger;
+import net.dpml.parameters.Parameters;
+import org.jpos.iso.ISOException;
+import org.jpos.iso.ISOMsg;
+
+
+/** <code>DataElement</code> implementation of
ConversionRateCardholderBilling.
+ *
+ * @author <a href="mailto:niclas AT hedhman.org";>Niclas Hedhman</a>
+ *
+ * @see net.dpml.iso8583.data.DataElement
+ * @see net.dpml.iso8583.data.DataElementManager
+ *
+ * @metro.component lifestyle="transient"
name="ConversionRateCardholderBilling"
+ * @metro.service type="net.dpml.iso8583.data.DataElement"
+ */
+public class ConversionRateCardholderBilling
+ implements DataElement
+{
+ /** The ISO8583 bit number */
+ static private int ISO8583_BIT_NUMBER = 10;
+
+ /** ISO8583 Representation formatter and validator. */
+ static private Representation m_Representation;
+
+ private String m_value;
+ private Logger m_logger;
+
+ /** Sets up the element type in a generic fashion. */
+ static
+ {
+ m_Representation = new N( 8 );
+ }
+
+ /** Constructor of ConversionRateCardholderBilling.
+ *
+ * @param logger supplied <code>Logger</code> instance.
+ * @param params supplied configuration <code>Parameters</code>
+ */
+ public ConversionRateCardholderBilling( Logger logger, Parameters params
)
+ {
+ m_logger = logger;
+ m_value = params.getParameter( "value", "" );
+ }
+
+ /** Instructs the DataElement to populate the ISOMsg object.
+ * <p>
+ * <code>DataElement</code> implementations are responsible to know
+ * which field (a.k.a. bit) that it should populate in the
+ * <code>ISOMsg</code> structure. The caller must know whether the
+ * field is required or not, and if the <code>DataElement</code> has
+ * not been properly set, either in the course of the session or as
+ * part of its initialization, it should throw an ISOException.
+ * </p>
+ * <p>
+ * If the <code>DataElement</code> is nested, it is responsible for
+ * calling the <code>populate</code> method for each of the composite
+ * <code>DataElements</code>.
+ * </p>
+ * @param message the <code>ISOMsg</code> instance to populate with the
+ * value of the <code>DataElement</code>.
+ * @param required if true, the <code>DataElement</code> must make sure
+ * that its value object has been set during the session.
+ *
+ * @exception org.jpos.iso.ISOException if the ISOMsg can not be
populated.
+ */
+ public void populate( ISOMsg message, boolean required )
+ throws ISOException
+ {
+ if( m_logger.isDebugEnabled() )
+ {
+ m_logger.debug( "populate: " + message );
+ }
+
+ if( required && m_value == null )
+ {
+ throw new ISOException( "Required data element has not been set:
PrimaryAccountNumber" );
+ }
+ message.set( ISO8583_BIT_NUMBER, m_value );
+ }
+
+ /** Sets the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ * <p>
+ * The provided argument must be of the correct type, and be within
+ * its specification defined bounds, or an <code>IllegalArgumentException
+ * </code> will be thrown.
+ * </p>
+ * @exception IllegalArgumentException if the provided <code>value</code>
+ * argument is of the wrong class, contains illegal values,
+ * or is null.
+ */
+ public void set( Object value )
+ throws IllegalArgumentException
+ {
+ m_Representation.validate( value );
+ m_value = m_Representation.format( value );
+ }
+
+ /** Returns the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ *
+ * @return the value object of the DataElement, which is the same object
+ * that has previously been set with the <code>set()</code>
+ * method.
+ */
+ public Object get()
+ {
+ return m_value;
+ }
+}

Added:
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/ConversionRateConciliation.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/ConversionRateConciliation.java
Fri Mar 25 18:31:17 2005
@@ -0,0 +1,142 @@
+/*
+ * Copyright 2004-2005 Niclas Hedhman.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.dpml.iso8583.data.elements;
+
+
+import net.dpml.iso8583.data.DataElement;
+import net.dpml.iso8583.data.Representation;
+import net.dpml.iso8583.data.representation.N;
+import net.dpml.logging.Logger;
+import net.dpml.parameters.Parameters;
+import org.jpos.iso.ISOException;
+import org.jpos.iso.ISOMsg;
+
+
+/** <code>DataElement</code> implementation of ConversionRateConciliation.
+ *
+ * @author <a href="mailto:niclas AT hedhman.org";>Niclas Hedhman</a>
+ *
+ * @see net.dpml.iso8583.data.DataElement
+ * @see net.dpml.iso8583.data.DataElementManager
+ *
+ * @metro.component lifestyle="transient" name="ConversionRateConciliation"
+ * @metro.service type="net.dpml.iso8583.data.DataElement"
+ */
+public class ConversionRateConciliation
+ implements DataElement
+{
+ /** The ISO8583 bit number */
+ static private int ISO8583_BIT_NUMBER = 9;
+
+ /** ISO8583 Representation formatter and validator. */
+ static private Representation m_Representation;
+
+ private String m_value;
+ private Logger m_logger;
+
+ /** Sets up the element type in a generic fashion. */
+ static
+ {
+ m_Representation = new N( 8 );
+ }
+
+ /** Constructor of ConversionRateConciliation.
+ *
+ * @param logger supplied <code>Logger</code> instance.
+ * @param params supplied configuration <code>Parameters</code>
+ */
+ public ConversionRateConciliation( Logger logger, Parameters params )
+ {
+ m_logger = logger;
+ m_value = params.getParameter( "value", "" );
+ }
+
+ /** Instructs the DataElement to populate the ISOMsg object.
+ * <p>
+ * <code>DataElement</code> implementations are responsible to know
+ * which field (a.k.a. bit) that it should populate in the
+ * <code>ISOMsg</code> structure. The caller must know whether the
+ * field is required or not, and if the <code>DataElement</code> has
+ * not been properly set, either in the course of the session or as
+ * part of its initialization, it should throw an ISOException.
+ * </p>
+ * <p>
+ * If the <code>DataElement</code> is nested, it is responsible for
+ * calling the <code>populate</code> method for each of the composite
+ * <code>DataElements</code>.
+ * </p>
+ * @param message the <code>ISOMsg</code> instance to populate with the
+ * value of the <code>DataElement</code>.
+ * @param required if true, the <code>DataElement</code> must make sure
+ * that its value object has been set during the session.
+ *
+ * @exception org.jpos.iso.ISOException if the ISOMsg can not be
populated.
+ */
+ public void populate( ISOMsg message, boolean required )
+ throws ISOException
+ {
+ if( m_logger.isDebugEnabled() )
+ {
+ m_logger.debug( "populate: " + message );
+ }
+
+ if( required && m_value == null )
+ {
+ throw new ISOException( "Required data element has not been set:
PrimaryAccountNumber" );
+ }
+ message.set( ISO8583_BIT_NUMBER, m_value );
+ }
+
+ /** Sets the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ * <p>
+ * The provided argument must be of the correct type, and be within
+ * its specification defined bounds, or an <code>IllegalArgumentException
+ * </code> will be thrown.
+ * </p>
+ * @exception IllegalArgumentException if the provided <code>value</code>
+ * argument is of the wrong class, contains illegal values,
+ * or is null.
+ */
+ public void set( Object value )
+ throws IllegalArgumentException
+ {
+ m_Representation.validate( value );
+ m_value = m_Representation.format( value );
+ }
+
+ /** Returns the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ *
+ * @return the value object of the DataElement, which is the same object
+ * that has previously been set with the <code>set()</code>
+ * method.
+ */
+ public Object get()
+ {
+ return m_value;
+ }
+}

Added:
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/CountryCodeAcquiringInstitution.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/CountryCodeAcquiringInstitution.java
Fri Mar 25 18:31:17 2005
@@ -0,0 +1,142 @@
+/*
+ * Copyright 2004-2005 Niclas Hedhman.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.dpml.iso8583.data.elements;
+
+
+import net.dpml.iso8583.data.DataElement;
+import net.dpml.iso8583.data.Representation;
+import net.dpml.iso8583.data.representation.N;
+import net.dpml.logging.Logger;
+import net.dpml.parameters.Parameters;
+import org.jpos.iso.ISOException;
+import org.jpos.iso.ISOMsg;
+
+
+/** <code>DataElement</code> implementation of
CountryCodeAcquiringInstitution.
+ *
+ * @author <a href="mailto:niclas AT hedhman.org";>Niclas Hedhman</a>
+ *
+ * @see net.dpml.iso8583.data.DataElement
+ * @see net.dpml.iso8583.data.DataElementManager
+ *
+ * @metro.component lifestyle="transient"
name="CountryCodeAcquiringInstitution"
+ * @metro.service type="net.dpml.iso8583.data.DataElement"
+ */
+public class CountryCodeAcquiringInstitution
+ implements DataElement
+{
+ /** The ISO8583 bit number */
+ static private int ISO8583_BIT_NUMBER = 19;
+
+ /** ISO8583 Representation formatter and validator. */
+ static private Representation m_Representation;
+
+ private String m_value;
+ private Logger m_logger;
+
+ /** Sets up the element type in a generic fashion. */
+ static
+ {
+ m_Representation = new N( 3 );
+ }
+
+ /** Constructor of CountryCodeAcquiringInstitution.
+ *
+ * @param logger supplied <code>Logger</code> instance.
+ * @param params supplied configuration <code>Parameters</code>
+ */
+ public CountryCodeAcquiringInstitution( Logger logger, Parameters params
)
+ {
+ m_logger = logger;
+ m_value = params.getParameter( "value", "" );
+ }
+
+ /** Instructs the DataElement to populate the ISOMsg object.
+ * <p>
+ * <code>DataElement</code> implementations are responsible to know
+ * which field (a.k.a. bit) that it should populate in the
+ * <code>ISOMsg</code> structure. The caller must know whether the
+ * field is required or not, and if the <code>DataElement</code> has
+ * not been properly set, either in the course of the session or as
+ * part of its initialization, it should throw an ISOException.
+ * </p>
+ * <p>
+ * If the <code>DataElement</code> is nested, it is responsible for
+ * calling the <code>populate</code> method for each of the composite
+ * <code>DataElements</code>.
+ * </p>
+ * @param message the <code>ISOMsg</code> instance to populate with the
+ * value of the <code>DataElement</code>.
+ * @param required if true, the <code>DataElement</code> must make sure
+ * that its value object has been set during the session.
+ *
+ * @exception org.jpos.iso.ISOException if the ISOMsg can not be
populated.
+ */
+ public void populate( ISOMsg message, boolean required )
+ throws ISOException
+ {
+ if( m_logger.isDebugEnabled() )
+ {
+ m_logger.debug( "populate: " + message );
+ }
+
+ if( required && m_value == null )
+ {
+ throw new ISOException( "Required data element has not been set:
PrimaryAccountNumber" );
+ }
+ message.set( ISO8583_BIT_NUMBER, m_value );
+ }
+
+ /** Sets the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ * <p>
+ * The provided argument must be of the correct type, and be within
+ * its specification defined bounds, or an <code>IllegalArgumentException
+ * </code> will be thrown.
+ * </p>
+ * @exception IllegalArgumentException if the provided <code>value</code>
+ * argument is of the wrong class, contains illegal values,
+ * or is null.
+ */
+ public void set( Object value )
+ throws IllegalArgumentException
+ {
+ m_Representation.validate( value );
+ m_value = m_Representation.format( value );
+ }
+
+ /** Returns the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ *
+ * @return the value object of the DataElement, which is the same object
+ * that has previously been set with the <code>set()</code>
+ * method.
+ */
+ public Object get()
+ {
+ return m_value;
+ }
+}

Added:
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/CountryCodePrimaryAccountNumber.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/CountryCodePrimaryAccountNumber.java
Fri Mar 25 18:31:17 2005
@@ -0,0 +1,142 @@
+/*
+ * Copyright 2004-2005 Niclas Hedhman.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.dpml.iso8583.data.elements;
+
+
+import net.dpml.iso8583.data.DataElement;
+import net.dpml.iso8583.data.Representation;
+import net.dpml.iso8583.data.representation.N;
+import net.dpml.logging.Logger;
+import net.dpml.parameters.Parameters;
+import org.jpos.iso.ISOException;
+import org.jpos.iso.ISOMsg;
+
+
+/** <code>DataElement</code> implementation of
CountryCodePrimaryAccountNumber.
+ *
+ * @author <a href="mailto:niclas AT hedhman.org";>Niclas Hedhman</a>
+ *
+ * @see net.dpml.iso8583.data.DataElement
+ * @see net.dpml.iso8583.data.DataElementManager
+ *
+ * @metro.component lifestyle="transient"
name="CountryCodePrimaryAccountNumber"
+ * @metro.service type="net.dpml.iso8583.data.DataElement"
+ */
+public class CountryCodePrimaryAccountNumber
+ implements DataElement
+{
+ /** The ISO8583 bit number */
+ static private int ISO8583_BIT_NUMBER = 20;
+
+ /** ISO8583 Representation formatter and validator. */
+ static private Representation m_Representation;
+
+ private String m_value;
+ private Logger m_logger;
+
+ /** Sets up the element type in a generic fashion. */
+ static
+ {
+ m_Representation = new N( 3 );
+ }
+
+ /** Constructor of CountryCodePrimaryAccountNumber.
+ *
+ * @param logger supplied <code>Logger</code> instance.
+ * @param params supplied configuration <code>Parameters</code>
+ */
+ public CountryCodePrimaryAccountNumber( Logger logger, Parameters params
)
+ {
+ m_logger = logger;
+ m_value = params.getParameter( "value", "" );
+ }
+
+ /** Instructs the DataElement to populate the ISOMsg object.
+ * <p>
+ * <code>DataElement</code> implementations are responsible to know
+ * which field (a.k.a. bit) that it should populate in the
+ * <code>ISOMsg</code> structure. The caller must know whether the
+ * field is required or not, and if the <code>DataElement</code> has
+ * not been properly set, either in the course of the session or as
+ * part of its initialization, it should throw an ISOException.
+ * </p>
+ * <p>
+ * If the <code>DataElement</code> is nested, it is responsible for
+ * calling the <code>populate</code> method for each of the composite
+ * <code>DataElements</code>.
+ * </p>
+ * @param message the <code>ISOMsg</code> instance to populate with the
+ * value of the <code>DataElement</code>.
+ * @param required if true, the <code>DataElement</code> must make sure
+ * that its value object has been set during the session.
+ *
+ * @exception org.jpos.iso.ISOException if the ISOMsg can not be
populated.
+ */
+ public void populate( ISOMsg message, boolean required )
+ throws ISOException
+ {
+ if( m_logger.isDebugEnabled() )
+ {
+ m_logger.debug( "populate: " + message );
+ }
+
+ if( required && m_value == null )
+ {
+ throw new ISOException( "Required data element has not been set:
PrimaryAccountNumber" );
+ }
+ message.set( ISO8583_BIT_NUMBER, m_value );
+ }
+
+ /** Sets the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ * <p>
+ * The provided argument must be of the correct type, and be within
+ * its specification defined bounds, or an <code>IllegalArgumentException
+ * </code> will be thrown.
+ * </p>
+ * @exception IllegalArgumentException if the provided <code>value</code>
+ * argument is of the wrong class, contains illegal values,
+ * or is null.
+ */
+ public void set( Object value )
+ throws IllegalArgumentException
+ {
+ m_Representation.validate( value );
+ m_value = m_Representation.format( value );
+ }
+
+ /** Returns the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ *
+ * @return the value object of the DataElement, which is the same object
+ * that has previously been set with the <code>set()</code>
+ * method.
+ */
+ public Object get()
+ {
+ return m_value;
+ }
+}

Added:
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/DateAndTimeLocalTransaction.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/DateAndTimeLocalTransaction.java
Fri Mar 25 18:31:17 2005
@@ -0,0 +1,142 @@
+/*
+ * Copyright 2004-2005 Niclas Hedhman.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.dpml.iso8583.data.elements;
+
+
+import net.dpml.iso8583.data.DataElement;
+import net.dpml.iso8583.data.Representation;
+import net.dpml.iso8583.data.representation.N;
+import net.dpml.logging.Logger;
+import net.dpml.parameters.Parameters;
+import org.jpos.iso.ISOException;
+import org.jpos.iso.ISOMsg;
+
+
+/** <code>DataElement</code> implementation of DateAndTimeLocalTransaction.
+ *
+ * @author <a href="mailto:niclas AT hedhman.org";>Niclas Hedhman</a>
+ *
+ * @see net.dpml.iso8583.data.DataElement
+ * @see net.dpml.iso8583.data.DataElementManager
+ *
+ * @metro.component lifestyle="transient" name="DateAndTimeLocalTransaction"
+ * @metro.service type="net.dpml.iso8583.data.DataElement"
+ */
+public class DateAndTimeLocalTransaction
+ implements DataElement
+{
+ /** The ISO8583 bit number */
+ static private int ISO8583_BIT_NUMBER = 12;
+
+ /** ISO8583 Representation formatter and validator. */
+ static private Representation m_Representation;
+
+ private String m_value;
+ private Logger m_logger;
+
+ /** Sets up the element type in a generic fashion. */
+ static
+ {
+ m_Representation = new N( 14 );
+ }
+
+ /** Constructor of DateAndTimeLocalTransaction.
+ *
+ * @param logger supplied <code>Logger</code> instance.
+ * @param params supplied configuration <code>Parameters</code>
+ */
+ public DateAndTimeLocalTransaction( Logger logger, Parameters params )
+ {
+ m_logger = logger;
+ m_value = params.getParameter( "value", "" );
+ }
+
+ /** Instructs the DataElement to populate the ISOMsg object.
+ * <p>
+ * <code>DataElement</code> implementations are responsible to know
+ * which field (a.k.a. bit) that it should populate in the
+ * <code>ISOMsg</code> structure. The caller must know whether the
+ * field is required or not, and if the <code>DataElement</code> has
+ * not been properly set, either in the course of the session or as
+ * part of its initialization, it should throw an ISOException.
+ * </p>
+ * <p>
+ * If the <code>DataElement</code> is nested, it is responsible for
+ * calling the <code>populate</code> method for each of the composite
+ * <code>DataElements</code>.
+ * </p>
+ * @param message the <code>ISOMsg</code> instance to populate with the
+ * value of the <code>DataElement</code>.
+ * @param required if true, the <code>DataElement</code> must make sure
+ * that its value object has been set during the session.
+ *
+ * @exception org.jpos.iso.ISOException if the ISOMsg can not be
populated.
+ */
+ public void populate( ISOMsg message, boolean required )
+ throws ISOException
+ {
+ if( m_logger.isDebugEnabled() )
+ {
+ m_logger.debug( "populate: " + message );
+ }
+
+ if( required && m_value == null )
+ {
+ throw new ISOException( "Required data element has not been set:
PrimaryAccountNumber" );
+ }
+ message.set( ISO8583_BIT_NUMBER, m_value );
+ }
+
+ /** Sets the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ * <p>
+ * The provided argument must be of the correct type, and be within
+ * its specification defined bounds, or an <code>IllegalArgumentException
+ * </code> will be thrown.
+ * </p>
+ * @exception IllegalArgumentException if the provided <code>value</code>
+ * argument is of the wrong class, contains illegal values,
+ * or is null.
+ */
+ public void set( Object value )
+ throws IllegalArgumentException
+ {
+ m_Representation.validate( value );
+ m_value = m_Representation.format( value );
+ }
+
+ /** Returns the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ *
+ * @return the value object of the DataElement, which is the same object
+ * that has previously been set with the <code>set()</code>
+ * method.
+ */
+ public Object get()
+ {
+ return m_value;
+ }
+}

Added:
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/DateAndTimeTransmission.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/DateAndTimeTransmission.java
Fri Mar 25 18:31:17 2005
@@ -0,0 +1,142 @@
+/*
+ * Copyright 2004-2005 Niclas Hedhman.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.dpml.iso8583.data.elements;
+
+
+import net.dpml.iso8583.data.DataElement;
+import net.dpml.iso8583.data.Representation;
+import net.dpml.iso8583.data.representation.N;
+import net.dpml.logging.Logger;
+import net.dpml.parameters.Parameters;
+import org.jpos.iso.ISOException;
+import org.jpos.iso.ISOMsg;
+
+
+/** <code>DataElement</code> implementation of DateAndTimeTransmission.
+ *
+ * @author <a href="mailto:niclas AT hedhman.org";>Niclas Hedhman</a>
+ *
+ * @see net.dpml.iso8583.data.DataElement
+ * @see net.dpml.iso8583.data.DataElementManager
+ *
+ * @metro.component lifestyle="transient" name="DateAndTimeTransmission"
+ * @metro.service type="net.dpml.iso8583.data.DataElement"
+ */
+public class DateAndTimeTransmission
+ implements DataElement
+{
+ /** The ISO8583 bit number */
+ static private int ISO8583_BIT_NUMBER = 7;
+
+ /** ISO8583 Representation formatter and validator. */
+ static private Representation m_Representation;
+
+ private String m_value;
+ private Logger m_logger;
+
+ /** Sets up the element type in a generic fashion. */
+ static
+ {
+ m_Representation = new N( 10 );
+ }
+
+ /** Constructor of DateAndTimeTransmission.
+ *
+ * @param logger supplied <code>Logger</code> instance.
+ * @param params supplied configuration <code>Parameters</code>
+ */
+ public DateAndTimeTransmission( Logger logger, Parameters params )
+ {
+ m_logger = logger;
+ m_value = params.getParameter( "value", "" );
+ }
+
+ /** Instructs the DataElement to populate the ISOMsg object.
+ * <p>
+ * <code>DataElement</code> implementations are responsible to know
+ * which field (a.k.a. bit) that it should populate in the
+ * <code>ISOMsg</code> structure. The caller must know whether the
+ * field is required or not, and if the <code>DataElement</code> has
+ * not been properly set, either in the course of the session or as
+ * part of its initialization, it should throw an ISOException.
+ * </p>
+ * <p>
+ * If the <code>DataElement</code> is nested, it is responsible for
+ * calling the <code>populate</code> method for each of the composite
+ * <code>DataElements</code>.
+ * </p>
+ * @param message the <code>ISOMsg</code> instance to populate with the
+ * value of the <code>DataElement</code>.
+ * @param required if true, the <code>DataElement</code> must make sure
+ * that its value object has been set during the session.
+ *
+ * @exception org.jpos.iso.ISOException if the ISOMsg can not be
populated.
+ */
+ public void populate( ISOMsg message, boolean required )
+ throws ISOException
+ {
+ if( m_logger.isDebugEnabled() )
+ {
+ m_logger.debug( "populate: " + message );
+ }
+
+ if( required && m_value == null )
+ {
+ throw new ISOException( "Required data element has not been set:
PrimaryAccountNumber" );
+ }
+ message.set( ISO8583_BIT_NUMBER, m_value );
+ }
+
+ /** Sets the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ * <p>
+ * The provided argument must be of the correct type, and be within
+ * its specification defined bounds, or an <code>IllegalArgumentException
+ * </code> will be thrown.
+ * </p>
+ * @exception IllegalArgumentException if the provided <code>value</code>
+ * argument is of the wrong class, contains illegal values,
+ * or is null.
+ */
+ public void set( Object value )
+ throws IllegalArgumentException
+ {
+ m_Representation.validate( value );
+ m_value = m_Representation.format( value );
+ }
+
+ /** Returns the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ *
+ * @return the value object of the DataElement, which is the same object
+ * that has previously been set with the <code>set()</code>
+ * method.
+ */
+ public Object get()
+ {
+ return m_value;
+ }
+}

Added:
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/DateCapture.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/DateCapture.java
Fri Mar 25 18:31:17 2005
@@ -0,0 +1,142 @@
+/*
+ * Copyright 2004-2005 Niclas Hedhman.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.dpml.iso8583.data.elements;
+
+
+import net.dpml.iso8583.data.DataElement;
+import net.dpml.iso8583.data.Representation;
+import net.dpml.iso8583.data.representation.N;
+import net.dpml.logging.Logger;
+import net.dpml.parameters.Parameters;
+import org.jpos.iso.ISOException;
+import org.jpos.iso.ISOMsg;
+
+
+/** <code>DataElement</code> implementation of DateCapture.
+ *
+ * @author <a href="mailto:niclas AT hedhman.org";>Niclas Hedhman</a>
+ *
+ * @see net.dpml.iso8583.data.DataElement
+ * @see net.dpml.iso8583.data.DataElementManager
+ *
+ * @metro.component lifestyle="transient" name="DateCapture"
+ * @metro.service type="net.dpml.iso8583.data.DataElement"
+ */
+public class DateCapture
+ implements DataElement
+{
+ /** The ISO8583 bit number */
+ static private int ISO8583_BIT_NUMBER = 17;
+
+ /** ISO8583 Representation formatter and validator. */
+ static private Representation m_Representation;
+
+ private String m_value;
+ private Logger m_logger;
+
+ /** Sets up the element type in a generic fashion. */
+ static
+ {
+ m_Representation = new N( 4 );
+ }
+
+ /** Constructor of DateCapture.
+ *
+ * @param logger supplied <code>Logger</code> instance.
+ * @param params supplied configuration <code>Parameters</code>
+ */
+ public DateCapture( Logger logger, Parameters params )
+ {
+ m_logger = logger;
+ m_value = params.getParameter( "value", "" );
+ }
+
+ /** Instructs the DataElement to populate the ISOMsg object.
+ * <p>
+ * <code>DataElement</code> implementations are responsible to know
+ * which field (a.k.a. bit) that it should populate in the
+ * <code>ISOMsg</code> structure. The caller must know whether the
+ * field is required or not, and if the <code>DataElement</code> has
+ * not been properly set, either in the course of the session or as
+ * part of its initialization, it should throw an ISOException.
+ * </p>
+ * <p>
+ * If the <code>DataElement</code> is nested, it is responsible for
+ * calling the <code>populate</code> method for each of the composite
+ * <code>DataElements</code>.
+ * </p>
+ * @param message the <code>ISOMsg</code> instance to populate with the
+ * value of the <code>DataElement</code>.
+ * @param required if true, the <code>DataElement</code> must make sure
+ * that its value object has been set during the session.
+ *
+ * @exception org.jpos.iso.ISOException if the ISOMsg can not be
populated.
+ */
+ public void populate( ISOMsg message, boolean required )
+ throws ISOException
+ {
+ if( m_logger.isDebugEnabled() )
+ {
+ m_logger.debug( "populate: " + message );
+ }
+
+ if( required && m_value == null )
+ {
+ throw new ISOException( "Required data element has not been set:
PrimaryAccountNumber" );
+ }
+ message.set( ISO8583_BIT_NUMBER, m_value );
+ }
+
+ /** Sets the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ * <p>
+ * The provided argument must be of the correct type, and be within
+ * its specification defined bounds, or an <code>IllegalArgumentException
+ * </code> will be thrown.
+ * </p>
+ * @exception IllegalArgumentException if the provided <code>value</code>
+ * argument is of the wrong class, contains illegal values,
+ * or is null.
+ */
+ public void set( Object value )
+ throws IllegalArgumentException
+ {
+ m_Representation.validate( value );
+ m_value = m_Representation.format( value );
+ }
+
+ /** Returns the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ *
+ * @return the value object of the DataElement, which is the same object
+ * that has previously been set with the <code>set()</code>
+ * method.
+ */
+ public Object get()
+ {
+ return m_value;
+ }
+}

Added:
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/DateConversion.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/DateConversion.java
Fri Mar 25 18:31:17 2005
@@ -0,0 +1,142 @@
+/*
+ * Copyright 2004-2005 Niclas Hedhman.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.dpml.iso8583.data.elements;
+
+
+import net.dpml.iso8583.data.DataElement;
+import net.dpml.iso8583.data.Representation;
+import net.dpml.iso8583.data.representation.N;
+import net.dpml.logging.Logger;
+import net.dpml.parameters.Parameters;
+import org.jpos.iso.ISOException;
+import org.jpos.iso.ISOMsg;
+
+
+/** <code>DataElement</code> implementation of XX.
+ *
+ * @author <a href="mailto:niclas AT hedhman.org";>Niclas Hedhman</a>
+ *
+ * @see net.dpml.iso8583.data.DataElement
+ * @see net.dpml.iso8583.data.DataElementManager
+ *
+ * @metro.component lifestyle="transient" name="DateConversion"
+ * @metro.service type="net.dpml.iso8583.data.DataElement"
+ */
+public class DateConversion
+ implements DataElement
+{
+ /** The ISO8583 bit number */
+ static private int ISO8583_BIT_NUMBER = 16;
+
+ /** ISO8583 Representation formatter and validator. */
+ static private Representation m_Representation;
+
+ private String m_value;
+ private Logger m_logger;
+
+ /** Sets up the element type in a generic fashion. */
+ static
+ {
+ m_Representation = new N( 4 );
+ }
+
+ /** Constructor of XX.
+ *
+ * @param logger supplied <code>Logger</code> instance.
+ * @param params supplied configuration <code>Parameters</code>
+ */
+ public DateConversion( Logger logger, Parameters params )
+ {
+ m_logger = logger;
+ m_value = params.getParameter( "value", "" );
+ }
+
+ /** Instructs the DataElement to populate the ISOMsg object.
+ * <p>
+ * <code>DataElement</code> implementations are responsible to know
+ * which field (a.k.a. bit) that it should populate in the
+ * <code>ISOMsg</code> structure. The caller must know whether the
+ * field is required or not, and if the <code>DataElement</code> has
+ * not been properly set, either in the course of the session or as
+ * part of its initialization, it should throw an ISOException.
+ * </p>
+ * <p>
+ * If the <code>DataElement</code> is nested, it is responsible for
+ * calling the <code>populate</code> method for each of the composite
+ * <code>DataElements</code>.
+ * </p>
+ * @param message the <code>ISOMsg</code> instance to populate with the
+ * value of the <code>DataElement</code>.
+ * @param required if true, the <code>DataElement</code> must make sure
+ * that its value object has been set during the session.
+ *
+ * @exception org.jpos.iso.ISOException if the ISOMsg can not be
populated.
+ */
+ public void populate( ISOMsg message, boolean required )
+ throws ISOException
+ {
+ if( m_logger.isDebugEnabled() )
+ {
+ m_logger.debug( "populate: " + message );
+ }
+
+ if( required && m_value == null )
+ {
+ throw new ISOException( "Required data element has not been set:
PrimaryAccountNumber" );
+ }
+ message.set( ISO8583_BIT_NUMBER, m_value );
+ }
+
+ /** Sets the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ * <p>
+ * The provided argument must be of the correct type, and be within
+ * its specification defined bounds, or an <code>IllegalArgumentException
+ * </code> will be thrown.
+ * </p>
+ * @exception IllegalArgumentException if the provided <code>value</code>
+ * argument is of the wrong class, contains illegal values,
+ * or is null.
+ */
+ public void set( Object value )
+ throws IllegalArgumentException
+ {
+ m_Representation.validate( value );
+ m_value = m_Representation.format( value );
+ }
+
+ /** Returns the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ *
+ * @return the value object of the DataElement, which is the same object
+ * that has previously been set with the <code>set()</code>
+ * method.
+ */
+ public Object get()
+ {
+ return m_value;
+ }
+}

Added:
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/DateEffective.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/DateEffective.java
Fri Mar 25 18:31:17 2005
@@ -0,0 +1,142 @@
+/*
+ * Copyright 2004-2005 Niclas Hedhman.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.dpml.iso8583.data.elements;
+
+
+import net.dpml.iso8583.data.DataElement;
+import net.dpml.iso8583.data.Representation;
+import net.dpml.iso8583.data.representation.N;
+import net.dpml.logging.Logger;
+import net.dpml.parameters.Parameters;
+import org.jpos.iso.ISOException;
+import org.jpos.iso.ISOMsg;
+
+
+/** <code>DataElement</code> implementation of DateEffective.
+ *
+ * @author <a href="mailto:niclas AT hedhman.org";>Niclas Hedhman</a>
+ *
+ * @see net.dpml.iso8583.data.DataElement
+ * @see net.dpml.iso8583.data.DataElementManager
+ *
+ * @metro.component lifestyle="transient" name="DateEffective"
+ * @metro.service type="net.dpml.iso8583.data.DataElement"
+ */
+public class DateEffective
+ implements DataElement
+{
+ /** The ISO8583 bit number */
+ static private int ISO8583_BIT_NUMBER = 13;
+
+ /** ISO8583 Representation formatter and validator. */
+ static private Representation m_Representation;
+
+ private String m_value;
+ private Logger m_logger;
+
+ /** Sets up the element type in a generic fashion. */
+ static
+ {
+ m_Representation = new N( 6 );
+ }
+
+ /** Constructor of DateEffective.
+ *
+ * @param logger supplied <code>Logger</code> instance.
+ * @param params supplied configuration <code>Parameters</code>
+ */
+ public DateEffective( Logger logger, Parameters params )
+ {
+ m_logger = logger;
+ m_value = params.getParameter( "value", "" );
+ }
+
+ /** Instructs the DataElement to populate the ISOMsg object.
+ * <p>
+ * <code>DataElement</code> implementations are responsible to know
+ * which field (a.k.a. bit) that it should populate in the
+ * <code>ISOMsg</code> structure. The caller must know whether the
+ * field is required or not, and if the <code>DataElement</code> has
+ * not been properly set, either in the course of the session or as
+ * part of its initialization, it should throw an ISOException.
+ * </p>
+ * <p>
+ * If the <code>DataElement</code> is nested, it is responsible for
+ * calling the <code>populate</code> method for each of the composite
+ * <code>DataElements</code>.
+ * </p>
+ * @param message the <code>ISOMsg</code> instance to populate with the
+ * value of the <code>DataElement</code>.
+ * @param required if true, the <code>DataElement</code> must make sure
+ * that its value object has been set during the session.
+ *
+ * @exception org.jpos.iso.ISOException if the ISOMsg can not be
populated.
+ */
+ public void populate( ISOMsg message, boolean required )
+ throws ISOException
+ {
+ if( m_logger.isDebugEnabled() )
+ {
+ m_logger.debug( "populate: " + message );
+ }
+
+ if( required && m_value == null )
+ {
+ throw new ISOException( "Required data element has not been set:
PrimaryAccountNumber" );
+ }
+ message.set( ISO8583_BIT_NUMBER, m_value );
+ }
+
+ /** Sets the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ * <p>
+ * The provided argument must be of the correct type, and be within
+ * its specification defined bounds, or an <code>IllegalArgumentException
+ * </code> will be thrown.
+ * </p>
+ * @exception IllegalArgumentException if the provided <code>value</code>
+ * argument is of the wrong class, contains illegal values,
+ * or is null.
+ */
+ public void set( Object value )
+ throws IllegalArgumentException
+ {
+ m_Representation.validate( value );
+ m_value = m_Representation.format( value );
+ }
+
+ /** Returns the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ *
+ * @return the value object of the DataElement, which is the same object
+ * that has previously been set with the <code>set()</code>
+ * method.
+ */
+ public Object get()
+ {
+ return m_value;
+ }
+}

Added:
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/DateExpiration.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/DateExpiration.java
Fri Mar 25 18:31:17 2005
@@ -0,0 +1,142 @@
+/*
+ * Copyright 2004-2005 Niclas Hedhman.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.dpml.iso8583.data.elements;
+
+
+import net.dpml.iso8583.data.DataElement;
+import net.dpml.iso8583.data.Representation;
+import net.dpml.iso8583.data.representation.N;
+import net.dpml.logging.Logger;
+import net.dpml.parameters.Parameters;
+import org.jpos.iso.ISOException;
+import org.jpos.iso.ISOMsg;
+
+
+/** <code>DataElement</code> implementation of DateExpiration.
+ *
+ * @author <a href="mailto:niclas AT hedhman.org";>Niclas Hedhman</a>
+ *
+ * @see net.dpml.iso8583.data.DataElement
+ * @see net.dpml.iso8583.data.DataElementManager
+ *
+ * @metro.component lifestyle="transient" name="DateExpiration"
+ * @metro.service type="net.dpml.iso8583.data.DataElement"
+ */
+public class DateExpiration
+ implements DataElement
+{
+ /** The ISO8583 bit number */
+ static private int ISO8583_BIT_NUMBER = 14;
+
+ /** ISO8583 Representation formatter and validator. */
+ static private Representation m_Representation;
+
+ private String m_value;
+ private Logger m_logger;
+
+ /** Sets up the element type in a generic fashion. */
+ static
+ {
+ m_Representation = new N( 4 );
+ }
+
+ /** Constructor of DateExpiration.
+ *
+ * @param logger supplied <code>Logger</code> instance.
+ * @param params supplied configuration <code>Parameters</code>
+ */
+ public DateExpiration( Logger logger, Parameters params )
+ {
+ m_logger = logger;
+ m_value = params.getParameter( "value", "" );
+ }
+
+ /** Instructs the DataElement to populate the ISOMsg object.
+ * <p>
+ * <code>DataElement</code> implementations are responsible to know
+ * which field (a.k.a. bit) that it should populate in the
+ * <code>ISOMsg</code> structure. The caller must know whether the
+ * field is required or not, and if the <code>DataElement</code> has
+ * not been properly set, either in the course of the session or as
+ * part of its initialization, it should throw an ISOException.
+ * </p>
+ * <p>
+ * If the <code>DataElement</code> is nested, it is responsible for
+ * calling the <code>populate</code> method for each of the composite
+ * <code>DataElements</code>.
+ * </p>
+ * @param message the <code>ISOMsg</code> instance to populate with the
+ * value of the <code>DataElement</code>.
+ * @param required if true, the <code>DataElement</code> must make sure
+ * that its value object has been set during the session.
+ *
+ * @exception org.jpos.iso.ISOException if the ISOMsg can not be
populated.
+ */
+ public void populate( ISOMsg message, boolean required )
+ throws ISOException
+ {
+ if( m_logger.isDebugEnabled() )
+ {
+ m_logger.debug( "populate: " + message );
+ }
+
+ if( required && m_value == null )
+ {
+ throw new ISOException( "Required data element has not been set:
PrimaryAccountNumber" );
+ }
+ message.set( ISO8583_BIT_NUMBER, m_value );
+ }
+
+ /** Sets the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ * <p>
+ * The provided argument must be of the correct type, and be within
+ * its specification defined bounds, or an <code>IllegalArgumentException
+ * </code> will be thrown.
+ * </p>
+ * @exception IllegalArgumentException if the provided <code>value</code>
+ * argument is of the wrong class, contains illegal values,
+ * or is null.
+ */
+ public void set( Object value )
+ throws IllegalArgumentException
+ {
+ m_Representation.validate( value );
+ m_value = m_Representation.format( value );
+ }
+
+ /** Returns the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ *
+ * @return the value object of the DataElement, which is the same object
+ * that has previously been set with the <code>set()</code>
+ * method.
+ */
+ public Object get()
+ {
+ return m_value;
+ }
+}

Added:
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/DateReconciliation.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/DateReconciliation.java
Fri Mar 25 18:31:17 2005
@@ -0,0 +1,142 @@
+/*
+ * Copyright 2004-2005 Niclas Hedhman.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.dpml.iso8583.data.elements;
+
+
+import net.dpml.iso8583.data.DataElement;
+import net.dpml.iso8583.data.Representation;
+import net.dpml.iso8583.data.representation.N;
+import net.dpml.logging.Logger;
+import net.dpml.parameters.Parameters;
+import org.jpos.iso.ISOException;
+import org.jpos.iso.ISOMsg;
+
+
+/** <code>DataElement</code> implementation of DateReconciliation.
+ *
+ * @author <a href="mailto:niclas AT hedhman.org";>Niclas Hedhman</a>
+ *
+ * @see net.dpml.iso8583.data.DataElement
+ * @see net.dpml.iso8583.data.DataElementManager
+ *
+ * @metro.component lifestyle="transient" name="DateReconciliation"
+ * @metro.service type="net.dpml.iso8583.data.DataElement"
+ */
+public class DateReconciliation
+ implements DataElement
+{
+ /** The ISO8583 bit number */
+ static private int ISO8583_BIT_NUMBER = 28;
+
+ /** ISO8583 Representation formatter and validator. */
+ static private Representation m_Representation;
+
+ private String m_value;
+ private Logger m_logger;
+
+ /** Sets up the element type in a generic fashion. */
+ static
+ {
+ m_Representation = new N( 8 );
+ }
+
+ /** Constructor of DateReconciliation.
+ *
+ * @param logger supplied <code>Logger</code> instance.
+ * @param params supplied configuration <code>Parameters</code>
+ */
+ public DateReconciliation( Logger logger, Parameters params )
+ {
+ m_logger = logger;
+ m_value = params.getParameter( "value", "" );
+ }
+
+ /** Instructs the DataElement to populate the ISOMsg object.
+ * <p>
+ * <code>DataElement</code> implementations are responsible to know
+ * which field (a.k.a. bit) that it should populate in the
+ * <code>ISOMsg</code> structure. The caller must know whether the
+ * field is required or not, and if the <code>DataElement</code> has
+ * not been properly set, either in the course of the session or as
+ * part of its initialization, it should throw an ISOException.
+ * </p>
+ * <p>
+ * If the <code>DataElement</code> is nested, it is responsible for
+ * calling the <code>populate</code> method for each of the composite
+ * <code>DataElements</code>.
+ * </p>
+ * @param message the <code>ISOMsg</code> instance to populate with the
+ * value of the <code>DataElement</code>.
+ * @param required if true, the <code>DataElement</code> must make sure
+ * that its value object has been set during the session.
+ *
+ * @exception org.jpos.iso.ISOException if the ISOMsg can not be
populated.
+ */
+ public void populate( ISOMsg message, boolean required )
+ throws ISOException
+ {
+ if( m_logger.isDebugEnabled() )
+ {
+ m_logger.debug( "populate: " + message );
+ }
+
+ if( required && m_value == null )
+ {
+ throw new ISOException( "Required data element has not been set:
PrimaryAccountNumber" );
+ }
+ message.set( ISO8583_BIT_NUMBER, m_value );
+ }
+
+ /** Sets the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ * <p>
+ * The provided argument must be of the correct type, and be within
+ * its specification defined bounds, or an <code>IllegalArgumentException
+ * </code> will be thrown.
+ * </p>
+ * @exception IllegalArgumentException if the provided <code>value</code>
+ * argument is of the wrong class, contains illegal values,
+ * or is null.
+ */
+ public void set( Object value )
+ throws IllegalArgumentException
+ {
+ m_Representation.validate( value );
+ m_value = m_Representation.format( value );
+ }
+
+ /** Returns the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ *
+ * @return the value object of the DataElement, which is the same object
+ * that has previously been set with the <code>set()</code>
+ * method.
+ */
+ public Object get()
+ {
+ return m_value;
+ }
+}

Added:
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/DateSettlement.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/DateSettlement.java
Fri Mar 25 18:31:17 2005
@@ -0,0 +1,142 @@
+/*
+ * Copyright 2004-2005 Niclas Hedhman.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.dpml.iso8583.data.elements;
+
+
+import net.dpml.iso8583.data.DataElement;
+import net.dpml.iso8583.data.Representation;
+import net.dpml.iso8583.data.representation.N;
+import net.dpml.logging.Logger;
+import net.dpml.parameters.Parameters;
+import org.jpos.iso.ISOException;
+import org.jpos.iso.ISOMsg;
+
+
+/** <code>DataElement</code> implementation of DateSettlement.
+ *
+ * @author <a href="mailto:niclas AT hedhman.org";>Niclas Hedhman</a>
+ *
+ * @see net.dpml.iso8583.data.DataElement
+ * @see net.dpml.iso8583.data.DataElementManager
+ *
+ * @metro.component lifestyle="transient" name="DateSettlement"
+ * @metro.service type="net.dpml.iso8583.data.DataElement"
+ */
+public class DateSettlement
+ implements DataElement
+{
+ /** The ISO8583 bit number */
+ static private int ISO8583_BIT_NUMBER = 15;
+
+ /** ISO8583 Representation formatter and validator. */
+ static private Representation m_Representation;
+
+ private String m_value;
+ private Logger m_logger;
+
+ /** Sets up the element type in a generic fashion. */
+ static
+ {
+ m_Representation = new N( 8 );
+ }
+
+ /** Constructor of DateSettlement.
+ *
+ * @param logger supplied <code>Logger</code> instance.
+ * @param params supplied configuration <code>Parameters</code>
+ */
+ public DateSettlement( Logger logger, Parameters params )
+ {
+ m_logger = logger;
+ m_value = params.getParameter( "value", "" );
+ }
+
+ /** Instructs the DataElement to populate the ISOMsg object.
+ * <p>
+ * <code>DataElement</code> implementations are responsible to know
+ * which field (a.k.a. bit) that it should populate in the
+ * <code>ISOMsg</code> structure. The caller must know whether the
+ * field is required or not, and if the <code>DataElement</code> has
+ * not been properly set, either in the course of the session or as
+ * part of its initialization, it should throw an ISOException.
+ * </p>
+ * <p>
+ * If the <code>DataElement</code> is nested, it is responsible for
+ * calling the <code>populate</code> method for each of the composite
+ * <code>DataElements</code>.
+ * </p>
+ * @param message the <code>ISOMsg</code> instance to populate with the
+ * value of the <code>DataElement</code>.
+ * @param required if true, the <code>DataElement</code> must make sure
+ * that its value object has been set during the session.
+ *
+ * @exception org.jpos.iso.ISOException if the ISOMsg can not be
populated.
+ */
+ public void populate( ISOMsg message, boolean required )
+ throws ISOException
+ {
+ if( m_logger.isDebugEnabled() )
+ {
+ m_logger.debug( "populate: " + message );
+ }
+
+ if( required && m_value == null )
+ {
+ throw new ISOException( "Required data element has not been set:
PrimaryAccountNumber" );
+ }
+ message.set( ISO8583_BIT_NUMBER, m_value );
+ }
+
+ /** Sets the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ * <p>
+ * The provided argument must be of the correct type, and be within
+ * its specification defined bounds, or an <code>IllegalArgumentException
+ * </code> will be thrown.
+ * </p>
+ * @exception IllegalArgumentException if the provided <code>value</code>
+ * argument is of the wrong class, contains illegal values,
+ * or is null.
+ */
+ public void set( Object value )
+ throws IllegalArgumentException
+ {
+ m_Representation.validate( value );
+ m_value = m_Representation.format( value );
+ }
+
+ /** Returns the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ *
+ * @return the value object of the DataElement, which is the same object
+ * that has previously been set with the <code>set()</code>
+ * method.
+ */
+ public Object get()
+ {
+ return m_value;
+ }
+}

Added:
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/FunctionCode.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/FunctionCode.java
Fri Mar 25 18:31:17 2005
@@ -0,0 +1,142 @@
+/*
+ * Copyright 2004-2005 Niclas Hedhman.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.dpml.iso8583.data.elements;
+
+
+import net.dpml.iso8583.data.DataElement;
+import net.dpml.iso8583.data.Representation;
+import net.dpml.iso8583.data.representation.N;
+import net.dpml.logging.Logger;
+import net.dpml.parameters.Parameters;
+import org.jpos.iso.ISOException;
+import org.jpos.iso.ISOMsg;
+
+
+/** <code>DataElement</code> implementation of FunctionCode.
+ *
+ * @author <a href="mailto:niclas AT hedhman.org";>Niclas Hedhman</a>
+ *
+ * @see net.dpml.iso8583.data.DataElement
+ * @see net.dpml.iso8583.data.DataElementManager
+ *
+ * @metro.component lifestyle="transient" name="FunctionCode"
+ * @metro.service type="net.dpml.iso8583.data.DataElement"
+ */
+public class FunctionCode
+ implements DataElement
+{
+ /** The ISO8583 bit number */
+ static private int ISO8583_BIT_NUMBER = 24;
+
+ /** ISO8583 Representation formatter and validator. */
+ static private Representation m_Representation;
+
+ private String m_value;
+ private Logger m_logger;
+
+ /** Sets up the element type in a generic fashion. */
+ static
+ {
+ m_Representation = new N( 3 );
+ }
+
+ /** Constructor of FunctionCode.
+ *
+ * @param logger supplied <code>Logger</code> instance.
+ * @param params supplied configuration <code>Parameters</code>
+ */
+ public FunctionCode( Logger logger, Parameters params )
+ {
+ m_logger = logger;
+ m_value = params.getParameter( "value", "" );
+ }
+
+ /** Instructs the DataElement to populate the ISOMsg object.
+ * <p>
+ * <code>DataElement</code> implementations are responsible to know
+ * which field (a.k.a. bit) that it should populate in the
+ * <code>ISOMsg</code> structure. The caller must know whether the
+ * field is required or not, and if the <code>DataElement</code> has
+ * not been properly set, either in the course of the session or as
+ * part of its initialization, it should throw an ISOException.
+ * </p>
+ * <p>
+ * If the <code>DataElement</code> is nested, it is responsible for
+ * calling the <code>populate</code> method for each of the composite
+ * <code>DataElements</code>.
+ * </p>
+ * @param message the <code>ISOMsg</code> instance to populate with the
+ * value of the <code>DataElement</code>.
+ * @param required if true, the <code>DataElement</code> must make sure
+ * that its value object has been set during the session.
+ *
+ * @exception org.jpos.iso.ISOException if the ISOMsg can not be
populated.
+ */
+ public void populate( ISOMsg message, boolean required )
+ throws ISOException
+ {
+ if( m_logger.isDebugEnabled() )
+ {
+ m_logger.debug( "populate: " + message );
+ }
+
+ if( required && m_value == null )
+ {
+ throw new ISOException( "Required data element has not been set:
PrimaryAccountNumber" );
+ }
+ message.set( ISO8583_BIT_NUMBER, m_value );
+ }
+
+ /** Sets the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ * <p>
+ * The provided argument must be of the correct type, and be within
+ * its specification defined bounds, or an <code>IllegalArgumentException
+ * </code> will be thrown.
+ * </p>
+ * @exception IllegalArgumentException if the provided <code>value</code>
+ * argument is of the wrong class, contains illegal values,
+ * or is null.
+ */
+ public void set( Object value )
+ throws IllegalArgumentException
+ {
+ m_Representation.validate( value );
+ m_value = m_Representation.format( value );
+ }
+
+ /** Returns the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ *
+ * @return the value object of the DataElement, which is the same object
+ * that has previously been set with the <code>set()</code>
+ * method.
+ */
+ public Object get()
+ {
+ return m_value;
+ }
+}

Added:
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/MerchantCategoryCode.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/MerchantCategoryCode.java
Fri Mar 25 18:31:17 2005
@@ -0,0 +1,142 @@
+/*
+ * Copyright 2004-2005 Niclas Hedhman.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.dpml.iso8583.data.elements;
+
+
+import net.dpml.iso8583.data.DataElement;
+import net.dpml.iso8583.data.Representation;
+import net.dpml.iso8583.data.representation.N;
+import net.dpml.logging.Logger;
+import net.dpml.parameters.Parameters;
+import org.jpos.iso.ISOException;
+import org.jpos.iso.ISOMsg;
+
+
+/** <code>DataElement</code> implementation of MerchantCategoryCode.
+ *
+ * @author <a href="mailto:niclas AT hedhman.org";>Niclas Hedhman</a>
+ *
+ * @see net.dpml.iso8583.data.DataElement
+ * @see net.dpml.iso8583.data.DataElementManager
+ *
+ * @metro.component lifestyle="transient" name="MerchantCategoryCode"
+ * @metro.service type="net.dpml.iso8583.data.DataElement"
+ */
+public class MerchantCategoryCode
+ implements DataElement
+{
+ /** The ISO8583 bit number */
+ static private int ISO8583_BIT_NUMBER = 26;
+
+ /** ISO8583 Representation formatter and validator. */
+ static private Representation m_Representation;
+
+ private String m_value;
+ private Logger m_logger;
+
+ /** Sets up the element type in a generic fashion. */
+ static
+ {
+ m_Representation = new N( 4 );
+ }
+
+ /** Constructor of MerchantCategoryCode.
+ *
+ * @param logger supplied <code>Logger</code> instance.
+ * @param params supplied configuration <code>Parameters</code>
+ */
+ public MerchantCategoryCode( Logger logger, Parameters params )
+ {
+ m_logger = logger;
+ m_value = params.getParameter( "value", "" );
+ }
+
+ /** Instructs the DataElement to populate the ISOMsg object.
+ * <p>
+ * <code>DataElement</code> implementations are responsible to know
+ * which field (a.k.a. bit) that it should populate in the
+ * <code>ISOMsg</code> structure. The caller must know whether the
+ * field is required or not, and if the <code>DataElement</code> has
+ * not been properly set, either in the course of the session or as
+ * part of its initialization, it should throw an ISOException.
+ * </p>
+ * <p>
+ * If the <code>DataElement</code> is nested, it is responsible for
+ * calling the <code>populate</code> method for each of the composite
+ * <code>DataElements</code>.
+ * </p>
+ * @param message the <code>ISOMsg</code> instance to populate with the
+ * value of the <code>DataElement</code>.
+ * @param required if true, the <code>DataElement</code> must make sure
+ * that its value object has been set during the session.
+ *
+ * @exception org.jpos.iso.ISOException if the ISOMsg can not be
populated.
+ */
+ public void populate( ISOMsg message, boolean required )
+ throws ISOException
+ {
+ if( m_logger.isDebugEnabled() )
+ {
+ m_logger.debug( "populate: " + message );
+ }
+
+ if( required && m_value == null )
+ {
+ throw new ISOException( "Required data element has not been set:
PrimaryAccountNumber" );
+ }
+ message.set( ISO8583_BIT_NUMBER, m_value );
+ }
+
+ /** Sets the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ * <p>
+ * The provided argument must be of the correct type, and be within
+ * its specification defined bounds, or an <code>IllegalArgumentException
+ * </code> will be thrown.
+ * </p>
+ * @exception IllegalArgumentException if the provided <code>value</code>
+ * argument is of the wrong class, contains illegal values,
+ * or is null.
+ */
+ public void set( Object value )
+ throws IllegalArgumentException
+ {
+ m_Representation.validate( value );
+ m_value = m_Representation.format( value );
+ }
+
+ /** Returns the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ *
+ * @return the value object of the DataElement, which is the same object
+ * that has previously been set with the <code>set()</code>
+ * method.
+ */
+ public Object get()
+ {
+ return m_value;
+ }
+}

Added:
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/MessageErrorIndicator.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/MessageErrorIndicator.java
Fri Mar 25 18:31:17 2005
@@ -0,0 +1,142 @@
+/*
+ * Copyright 2004-2005 Niclas Hedhman.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.dpml.iso8583.data.elements;
+
+
+import net.dpml.iso8583.data.DataElement;
+import net.dpml.iso8583.data.Representation;
+import net.dpml.iso8583.data.representation.VariableANSB;
+import net.dpml.logging.Logger;
+import net.dpml.parameters.Parameters;
+import org.jpos.iso.ISOException;
+import org.jpos.iso.ISOMsg;
+
+
+/** <code>DataElement</code> implementation of MessageErrorIndicator.
+ *
+ * @author <a href="mailto:niclas AT hedhman.org";>Niclas Hedhman</a>
+ *
+ * @see net.dpml.iso8583.data.DataElement
+ * @see net.dpml.iso8583.data.DataElementManager
+ *
+ * @metro.component lifestyle="transient" name="MessageErrorIndicator"
+ * @metro.service type="net.dpml.iso8583.data.DataElement"
+ */
+public class MessageErrorIndicator
+ implements DataElement
+{
+ /** The ISO8583 bit number */
+ static private int ISO8583_BIT_NUMBER = 18;
+
+ /** ISO8583 Representation formatter and validator. */
+ static private Representation m_Representation;
+
+ private String m_value;
+ private Logger m_logger;
+
+ /** Sets up the element type in a generic fashion. */
+ static
+ {
+ m_Representation = new VariableANSB( 140 );
+ }
+
+ /** Constructor of MessageErrorIndicator.
+ *
+ * @param logger supplied <code>Logger</code> instance.
+ * @param params supplied configuration <code>Parameters</code>
+ */
+ public MessageErrorIndicator( Logger logger, Parameters params )
+ {
+ m_logger = logger;
+ m_value = params.getParameter( "value", "" );
+ }
+
+ /** Instructs the DataElement to populate the ISOMsg object.
+ * <p>
+ * <code>DataElement</code> implementations are responsible to know
+ * which field (a.k.a. bit) that it should populate in the
+ * <code>ISOMsg</code> structure. The caller must know whether the
+ * field is required or not, and if the <code>DataElement</code> has
+ * not been properly set, either in the course of the session or as
+ * part of its initialization, it should throw an ISOException.
+ * </p>
+ * <p>
+ * If the <code>DataElement</code> is nested, it is responsible for
+ * calling the <code>populate</code> method for each of the composite
+ * <code>DataElements</code>.
+ * </p>
+ * @param message the <code>ISOMsg</code> instance to populate with the
+ * value of the <code>DataElement</code>.
+ * @param required if true, the <code>DataElement</code> must make sure
+ * that its value object has been set during the session.
+ *
+ * @exception org.jpos.iso.ISOException if the ISOMsg can not be
populated.
+ */
+ public void populate( ISOMsg message, boolean required )
+ throws ISOException
+ {
+ if( m_logger.isDebugEnabled() )
+ {
+ m_logger.debug( "populate: " + message );
+ }
+
+ if( required && m_value == null )
+ {
+ throw new ISOException( "Required data element has not been set:
PrimaryAccountNumber" );
+ }
+ message.set( ISO8583_BIT_NUMBER, m_value );
+ }
+
+ /** Sets the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ * <p>
+ * The provided argument must be of the correct type, and be within
+ * its specification defined bounds, or an <code>IllegalArgumentException
+ * </code> will be thrown.
+ * </p>
+ * @exception IllegalArgumentException if the provided <code>value</code>
+ * argument is of the wrong class, contains illegal values,
+ * or is null.
+ */
+ public void set( Object value )
+ throws IllegalArgumentException
+ {
+ m_Representation.validate( value );
+ m_value = m_Representation.format( value );
+ }
+
+ /** Returns the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ *
+ * @return the value object of the DataElement, which is the same object
+ * that has previously been set with the <code>set()</code>
+ * method.
+ */
+ public Object get()
+ {
+ return m_value;
+ }
+}

Added:
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/MessageReasonCode.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/MessageReasonCode.java
Fri Mar 25 18:31:17 2005
@@ -0,0 +1,142 @@
+/*
+ * Copyright 2004-2005 Niclas Hedhman.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.dpml.iso8583.data.elements;
+
+
+import net.dpml.iso8583.data.DataElement;
+import net.dpml.iso8583.data.Representation;
+import net.dpml.iso8583.data.representation.N;
+import net.dpml.logging.Logger;
+import net.dpml.parameters.Parameters;
+import org.jpos.iso.ISOException;
+import org.jpos.iso.ISOMsg;
+
+
+/** <code>DataElement</code> implementation of MessageReasonCode.
+ *
+ * @author <a href="mailto:niclas AT hedhman.org";>Niclas Hedhman</a>
+ *
+ * @see net.dpml.iso8583.data.DataElement
+ * @see net.dpml.iso8583.data.DataElementManager
+ *
+ * @metro.component lifestyle="transient" name="MessageReasonCode"
+ * @metro.service type="net.dpml.iso8583.data.DataElement"
+ */
+public class MessageReasonCode
+ implements DataElement
+{
+ /** The ISO8583 bit number */
+ static private int ISO8583_BIT_NUMBER = 25;
+
+ /** ISO8583 Representation formatter and validator. */
+ static private Representation m_Representation;
+
+ private String m_value;
+ private Logger m_logger;
+
+ /** Sets up the element type in a generic fashion. */
+ static
+ {
+ m_Representation = new N( 4 );
+ }
+
+ /** Constructor of MessageReasonCode.
+ *
+ * @param logger supplied <code>Logger</code> instance.
+ * @param params supplied configuration <code>Parameters</code>
+ */
+ public MessageReasonCode( Logger logger, Parameters params )
+ {
+ m_logger = logger;
+ m_value = params.getParameter( "value", "" );
+ }
+
+ /** Instructs the DataElement to populate the ISOMsg object.
+ * <p>
+ * <code>DataElement</code> implementations are responsible to know
+ * which field (a.k.a. bit) that it should populate in the
+ * <code>ISOMsg</code> structure. The caller must know whether the
+ * field is required or not, and if the <code>DataElement</code> has
+ * not been properly set, either in the course of the session or as
+ * part of its initialization, it should throw an ISOException.
+ * </p>
+ * <p>
+ * If the <code>DataElement</code> is nested, it is responsible for
+ * calling the <code>populate</code> method for each of the composite
+ * <code>DataElements</code>.
+ * </p>
+ * @param message the <code>ISOMsg</code> instance to populate with the
+ * value of the <code>DataElement</code>.
+ * @param required if true, the <code>DataElement</code> must make sure
+ * that its value object has been set during the session.
+ *
+ * @exception org.jpos.iso.ISOException if the ISOMsg can not be
populated.
+ */
+ public void populate( ISOMsg message, boolean required )
+ throws ISOException
+ {
+ if( m_logger.isDebugEnabled() )
+ {
+ m_logger.debug( "populate: " + message );
+ }
+
+ if( required && m_value == null )
+ {
+ throw new ISOException( "Required data element has not been set:
PrimaryAccountNumber" );
+ }
+ message.set( ISO8583_BIT_NUMBER, m_value );
+ }
+
+ /** Sets the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ * <p>
+ * The provided argument must be of the correct type, and be within
+ * its specification defined bounds, or an <code>IllegalArgumentException
+ * </code> will be thrown.
+ * </p>
+ * @exception IllegalArgumentException if the provided <code>value</code>
+ * argument is of the wrong class, contains illegal values,
+ * or is null.
+ */
+ public void set( Object value )
+ throws IllegalArgumentException
+ {
+ m_Representation.validate( value );
+ m_value = m_Representation.format( value );
+ }
+
+ /** Returns the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ *
+ * @return the value object of the DataElement, which is the same object
+ * that has previously been set with the <code>set()</code>
+ * method.
+ */
+ public Object get()
+ {
+ return m_value;
+ }
+}

Added:
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/PosCapability.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/PosCapability.java
Fri Mar 25 18:31:17 2005
@@ -0,0 +1,142 @@
+/*
+ * Copyright 2004-2005 Niclas Hedhman.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.dpml.iso8583.data.elements;
+
+
+import net.dpml.iso8583.data.DataElement;
+import net.dpml.iso8583.data.Representation;
+import net.dpml.iso8583.data.representation.ANB;
+import net.dpml.logging.Logger;
+import net.dpml.parameters.Parameters;
+import org.jpos.iso.ISOException;
+import org.jpos.iso.ISOMsg;
+
+
+/** <code>DataElement</code> implementation of PosCapability.
+ *
+ * @author <a href="mailto:niclas AT hedhman.org";>Niclas Hedhman</a>
+ *
+ * @see net.dpml.iso8583.data.DataElement
+ * @see net.dpml.iso8583.data.DataElementManager
+ *
+ * @metro.component lifestyle="transient" name="PosCapability"
+ * @metro.service type="net.dpml.iso8583.data.DataElement"
+ */
+public class PosCapability
+ implements DataElement
+{
+ /** The ISO8583 bit number */
+ static private int ISO8583_BIT_NUMBER = 27;
+
+ /** ISO8583 Representation formatter and validator. */
+ static private Representation m_Representation;
+
+ private String m_value;
+ private Logger m_logger;
+
+ /** Sets up the element type in a generic fashion. */
+ static
+ {
+ m_Representation = new ANB( 27 );
+ }
+
+ /** Constructor of PosCapability.
+ *
+ * @param logger supplied <code>Logger</code> instance.
+ * @param params supplied configuration <code>Parameters</code>
+ */
+ public PosCapability( Logger logger, Parameters params )
+ {
+ m_logger = logger;
+ m_value = params.getParameter( "value", "" );
+ }
+
+ /** Instructs the DataElement to populate the ISOMsg object.
+ * <p>
+ * <code>DataElement</code> implementations are responsible to know
+ * which field (a.k.a. bit) that it should populate in the
+ * <code>ISOMsg</code> structure. The caller must know whether the
+ * field is required or not, and if the <code>DataElement</code> has
+ * not been properly set, either in the course of the session or as
+ * part of its initialization, it should throw an ISOException.
+ * </p>
+ * <p>
+ * If the <code>DataElement</code> is nested, it is responsible for
+ * calling the <code>populate</code> method for each of the composite
+ * <code>DataElements</code>.
+ * </p>
+ * @param message the <code>ISOMsg</code> instance to populate with the
+ * value of the <code>DataElement</code>.
+ * @param required if true, the <code>DataElement</code> must make sure
+ * that its value object has been set during the session.
+ *
+ * @exception org.jpos.iso.ISOException if the ISOMsg can not be
populated.
+ */
+ public void populate( ISOMsg message, boolean required )
+ throws ISOException
+ {
+ if( m_logger.isDebugEnabled() )
+ {
+ m_logger.debug( "populate: " + message );
+ }
+
+ if( required && m_value == null )
+ {
+ throw new ISOException( "Required data element has not been set:
PrimaryAccountNumber" );
+ }
+ message.set( ISO8583_BIT_NUMBER, m_value );
+ }
+
+ /** Sets the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ * <p>
+ * The provided argument must be of the correct type, and be within
+ * its specification defined bounds, or an <code>IllegalArgumentException
+ * </code> will be thrown.
+ * </p>
+ * @exception IllegalArgumentException if the provided <code>value</code>
+ * argument is of the wrong class, contains illegal values,
+ * or is null.
+ */
+ public void set( Object value )
+ throws IllegalArgumentException
+ {
+ m_Representation.validate( value );
+ m_value = m_Representation.format( value );
+ }
+
+ /** Returns the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ *
+ * @return the value object of the DataElement, which is the same object
+ * that has previously been set with the <code>set()</code>
+ * method.
+ */
+ public Object get()
+ {
+ return m_value;
+ }
+}

Added:
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/PosDataCode.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/PosDataCode.java
Fri Mar 25 18:31:17 2005
@@ -0,0 +1,142 @@
+/*
+ * Copyright 2004-2005 Niclas Hedhman.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.dpml.iso8583.data.elements;
+
+
+import net.dpml.iso8583.data.DataElement;
+import net.dpml.iso8583.data.Representation;
+import net.dpml.iso8583.data.representation.B;
+import net.dpml.logging.Logger;
+import net.dpml.parameters.Parameters;
+import org.jpos.iso.ISOException;
+import org.jpos.iso.ISOMsg;
+
+
+/** <code>DataElement</code> implementation of PosDataCode.
+ *
+ * @author <a href="mailto:niclas AT hedhman.org";>Niclas Hedhman</a>
+ *
+ * @see net.dpml.iso8583.data.DataElement
+ * @see net.dpml.iso8583.data.DataElementManager
+ *
+ * @metro.component lifestyle="transient" name="PosDataCode"
+ * @metro.service type="net.dpml.iso8583.data.DataElement"
+ */
+public class PosDataCode
+ implements DataElement
+{
+ /** The ISO8583 bit number */
+ static private int ISO8583_BIT_NUMBER = 22;
+
+ /** ISO8583 Representation formatter and validator. */
+ static private Representation m_Representation;
+
+ private String m_value;
+ private Logger m_logger;
+
+ /** Sets up the element type in a generic fashion. */
+ static
+ {
+ m_Representation = new B( 16 );
+ }
+
+ /** Constructor of PosDataCode.
+ *
+ * @param logger supplied <code>Logger</code> instance.
+ * @param params supplied configuration <code>Parameters</code>
+ */
+ public PosDataCode( Logger logger, Parameters params )
+ {
+ m_logger = logger;
+ m_value = params.getParameter( "value", "" );
+ }
+
+ /** Instructs the DataElement to populate the ISOMsg object.
+ * <p>
+ * <code>DataElement</code> implementations are responsible to know
+ * which field (a.k.a. bit) that it should populate in the
+ * <code>ISOMsg</code> structure. The caller must know whether the
+ * field is required or not, and if the <code>DataElement</code> has
+ * not been properly set, either in the course of the session or as
+ * part of its initialization, it should throw an ISOException.
+ * </p>
+ * <p>
+ * If the <code>DataElement</code> is nested, it is responsible for
+ * calling the <code>populate</code> method for each of the composite
+ * <code>DataElements</code>.
+ * </p>
+ * @param message the <code>ISOMsg</code> instance to populate with the
+ * value of the <code>DataElement</code>.
+ * @param required if true, the <code>DataElement</code> must make sure
+ * that its value object has been set during the session.
+ *
+ * @exception org.jpos.iso.ISOException if the ISOMsg can not be
populated.
+ */
+ public void populate( ISOMsg message, boolean required )
+ throws ISOException
+ {
+ if( m_logger.isDebugEnabled() )
+ {
+ m_logger.debug( "populate: " + message );
+ }
+
+ if( required && m_value == null )
+ {
+ throw new ISOException( "Required data element has not been set:
PrimaryAccountNumber" );
+ }
+ message.set( ISO8583_BIT_NUMBER, m_value );
+ }
+
+ /** Sets the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ * <p>
+ * The provided argument must be of the correct type, and be within
+ * its specification defined bounds, or an <code>IllegalArgumentException
+ * </code> will be thrown.
+ * </p>
+ * @exception IllegalArgumentException if the provided <code>value</code>
+ * argument is of the wrong class, contains illegal values,
+ * or is null.
+ */
+ public void set( Object value )
+ throws IllegalArgumentException
+ {
+ m_Representation.validate( value );
+ m_value = m_Representation.format( value );
+ }
+
+ /** Returns the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ *
+ * @return the value object of the DataElement, which is the same object
+ * that has previously been set with the <code>set()</code>
+ * method.
+ */
+ public Object get()
+ {
+ return m_value;
+ }
+}

Modified:
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/PrimaryAccountNumber.java
==============================================================================
---
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/PrimaryAccountNumber.java
(original)
+++
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/PrimaryAccountNumber.java
Fri Mar 25 18:31:17 2005
@@ -19,28 +19,74 @@


import net.dpml.iso8583.data.DataElement;
-
+import net.dpml.iso8583.data.Representation;
+import net.dpml.iso8583.data.representation.VariableN;
import net.dpml.logging.Logger;
-
+import net.dpml.parameters.Parameters;
import org.jpos.iso.ISOException;
import org.jpos.iso.ISOMsg;

-/** Interface for a data element in ISO-8583 messages.
+
+/** <code>DataElement</code> implementation of PrimaryAccountNumber.
+ *
+ * @author <a href="mailto:niclas AT hedhman.org";>Niclas Hedhman</a>
+ *
+ * @see net.dpml.iso8583.data.DataElement
+ * @see net.dpml.iso8583.data.DataElementManager
*
- * @metro.component name="primary-account-number" lifestyle="transient"
+ * @metro.component lifestyle="transient" name="PrimaryAccountNumber"
* @metro.service type="net.dpml.iso8583.data.DataElement"
*/
public class PrimaryAccountNumber
implements DataElement
{
- private String m_account;
+ /** The ISO8583 bit number */
+ static private int ISO8583_BIT_NUMBER = 2;
+
+ /** ISO8583 Representation formatter and validator. */
+ static private Representation m_Representation;
+
+ private String m_value;
private Logger m_logger;

- public PrimaryAccountNumber( Logger logger )
+ /** Sets up the element type in a generic fashion. */
+ static
+ {
+ m_Representation = new VariableN( 19 );
+ }
+
+ /** Constructor of PrimaryAccountNumber.
+ *
+ * @param logger supplied <code>Logger</code> instance.
+ * @param params supplied configuration <code>Parameters</code>
+ */
+ public PrimaryAccountNumber( Logger logger, Parameters params )
{
m_logger = logger;
+ m_value = params.getParameter( "value", "" );
}

+ /** Instructs the DataElement to populate the ISOMsg object.
+ * <p>
+ * <code>DataElement</code> implementations are responsible to know
+ * which field (a.k.a. bit) that it should populate in the
+ * <code>ISOMsg</code> structure. The caller must know whether the
+ * field is required or not, and if the <code>DataElement</code> has
+ * not been properly set, either in the course of the session or as
+ * part of its initialization, it should throw an ISOException.
+ * </p>
+ * <p>
+ * If the <code>DataElement</code> is nested, it is responsible for
+ * calling the <code>populate</code> method for each of the composite
+ * <code>DataElements</code>.
+ * </p>
+ * @param message the <code>ISOMsg</code> instance to populate with the
+ * value of the <code>DataElement</code>.
+ * @param required if true, the <code>DataElement</code> must make sure
+ * that its value object has been set during the session.
+ *
+ * @exception org.jpos.iso.ISOException if the ISOMsg can not be
populated.
+ */
public void populate( ISOMsg message, boolean required )
throws ISOException
{
@@ -49,40 +95,49 @@
m_logger.debug( "populate: " + message );
}

- if( required && m_account == null )
+ if( required && m_value == null )
{
throw new ISOException( "Required data element has not been set:
PrimaryAccountNumber" );
}
- message.set( 2, m_account );
+ message.set( ISO8583_BIT_NUMBER, m_value );
}

+ /** Sets the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ * <p>
+ * The provided argument must be of the correct type, and be within
+ * its specification defined bounds, or an <code>IllegalArgumentException
+ * </code> will be thrown.
+ * </p>
+ * @exception IllegalArgumentException if the provided <code>value</code>
+ * argument is of the wrong class, contains illegal values,
+ * or is null.
+ */
public void set( Object value )
throws IllegalArgumentException
{
- if( value instanceof String == false )
- {
- throw new IllegalArgumentException( "Value must be a
java.lang.String: " + value );
- }
-
- if( value == null )
- {
- throw new IllegalArgumentException( "Null argument not allowed."
);
- }
- String number = (String) value;
- if( number.length() > 19 )
- {
- throw new IllegalArgumentException( "Account numbers can not be
longer than 19 characters: " + number );
- }
- m_account = number;
+ m_Representation.validate( value );
+ m_value = m_Representation.format( value );
}

+ /** Returns the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ *
+ * @return the value object of the DataElement, which is the same object
+ * that has previously been set with the <code>set()</code>
+ * method.
+ */
public Object get()
{
- return m_account;
+ return m_value;
}

- public void reset()
- {
- m_account = null;
- }
}

Added:
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/ProcessingCode.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/ProcessingCode.java
Fri Mar 25 18:31:17 2005
@@ -0,0 +1,142 @@
+/*
+ * Copyright 2004-2005 Niclas Hedhman.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.dpml.iso8583.data.elements;
+
+
+import net.dpml.iso8583.data.DataElement;
+import net.dpml.iso8583.data.Representation;
+import net.dpml.iso8583.data.representation.AN;
+import net.dpml.logging.Logger;
+import net.dpml.parameters.Parameters;
+import org.jpos.iso.ISOException;
+import org.jpos.iso.ISOMsg;
+
+
+/** <code>DataElement</code> implementation of ProcessingCode.
+ *
+ * @author <a href="mailto:niclas AT hedhman.org";>Niclas Hedhman</a>
+ *
+ * @see net.dpml.iso8583.data.DataElement
+ * @see net.dpml.iso8583.data.DataElementManager
+ *
+ * @metro.component lifestyle="transient" name="ProcessingCode"
+ * @metro.service type="net.dpml.iso8583.data.DataElement"
+ */
+public class ProcessingCode
+ implements DataElement
+{
+ /** The ISO8583 bit number */
+ static private int ISO8583_BIT_NUMBER = 3;
+
+ /** ISO8583 Representation formatter and validator. */
+ static private Representation m_Representation;
+
+ private String m_value;
+ private Logger m_logger;
+
+ /** Sets up the element type in a generic fashion. */
+ static
+ {
+ m_Representation = new AN( 6 );
+ }
+
+ /** Constructor of ProcessingCode.
+ *
+ * @param logger supplied <code>Logger</code> instance.
+ * @param params supplied configuration <code>Parameters</code>
+ */
+ public ProcessingCode( Logger logger, Parameters params )
+ {
+ m_logger = logger;
+ m_value = params.getParameter( "value", "" );
+ }
+
+ /** Instructs the DataElement to populate the ISOMsg object.
+ * <p>
+ * <code>DataElement</code> implementations are responsible to know
+ * which field (a.k.a. bit) that it should populate in the
+ * <code>ISOMsg</code> structure. The caller must know whether the
+ * field is required or not, and if the <code>DataElement</code> has
+ * not been properly set, either in the course of the session or as
+ * part of its initialization, it should throw an ISOException.
+ * </p>
+ * <p>
+ * If the <code>DataElement</code> is nested, it is responsible for
+ * calling the <code>populate</code> method for each of the composite
+ * <code>DataElements</code>.
+ * </p>
+ * @param message the <code>ISOMsg</code> instance to populate with the
+ * value of the <code>DataElement</code>.
+ * @param required if true, the <code>DataElement</code> must make sure
+ * that its value object has been set during the session.
+ *
+ * @exception org.jpos.iso.ISOException if the ISOMsg can not be
populated.
+ */
+ public void populate( ISOMsg message, boolean required )
+ throws ISOException
+ {
+ if( m_logger.isDebugEnabled() )
+ {
+ m_logger.debug( "populate: " + message );
+ }
+
+ if( required && m_value == null )
+ {
+ throw new ISOException( "Required data element has not been set:
PrimaryAccountNumber" );
+ }
+ message.set( ISO8583_BIT_NUMBER, m_value );
+ }
+
+ /** Sets the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ * <p>
+ * The provided argument must be of the correct type, and be within
+ * its specification defined bounds, or an <code>IllegalArgumentException
+ * </code> will be thrown.
+ * </p>
+ * @exception IllegalArgumentException if the provided <code>value</code>
+ * argument is of the wrong class, contains illegal values,
+ * or is null.
+ */
+ public void set( Object value )
+ throws IllegalArgumentException
+ {
+ m_Representation.validate( value );
+ m_value = m_Representation.format( value );
+ }
+
+ /** Returns the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ *
+ * @return the value object of the DataElement, which is the same object
+ * that has previously been set with the <code>set()</code>
+ * method.
+ */
+ public Object get()
+ {
+ return m_value;
+ }
+}

Added:
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/ReconciliationIndicator.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/ReconciliationIndicator.java
Fri Mar 25 18:31:17 2005
@@ -0,0 +1,143 @@
+/*
+ * Copyright 2004-2005 Niclas Hedhman.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.dpml.iso8583.data.elements;
+
+
+import net.dpml.iso8583.data.DataElement;
+import net.dpml.iso8583.data.Representation;
+import net.dpml.iso8583.data.representation.N;
+import net.dpml.logging.Logger;
+import net.dpml.parameters.Parameters;
+import org.jpos.iso.ISOException;
+import org.jpos.iso.ISOMsg;
+
+
+/** <code>DataElement</code> implementation of ReconciliationIndicator.
+ *
+ * @author <a href="mailto:niclas AT hedhman.org";>Niclas Hedhman</a>
+ *
+ * @see net.dpml.iso8583.data.DataElement
+ * @see net.dpml.iso8583.data.DataElementManager
+ *
+ * @metro.component lifestyle="transient" name="ReconciliationIndicator"
+ * @metro.service type="net.dpml.iso8583.data.DataElement"
+ */
+public class ReconciliationIndicator
+ implements DataElement
+{
+ /** The ISO8583 bit number */
+ static private int ISO8583_BIT_NUMBER = 29;
+
+ /** ISO8583 Representation formatter and validator. */
+ static private Representation m_Representation;
+
+ private String m_value;
+ private Logger m_logger;
+
+ /** Sets up the element type in a generic fashion. */
+ static
+ {
+ m_Representation = new N( 3 );
+ }
+
+ /** Constructor of ReconciliationIndicator.
+ *
+ * @param logger supplied <code>Logger</code> instance.
+ * @param params supplied configuration <code>Parameters</code>
+ */
+ public ReconciliationIndicator( Logger logger, Parameters params )
+ {
+ m_logger = logger;
+ m_value = params.getParameter( "value", "" );
+ }
+
+ /** Instructs the DataElement to populate the ISOMsg object.
+ * <p>
+ * <code>DataElement</code> implementations are responsible to know
+ * which field (a.k.a. bit) that it should populate in the
+ * <code>ISOMsg</code> structure. The caller must know whether the
+ * field is required or not, and if the <code>DataElement</code> has
+ * not been properly set, either in the course of the session or as
+ * part of its initialization, it should throw an ISOException.
+ * </p>
+ * <p>
+ * If the <code>DataElement</code> is nested, it is responsible for
+ * calling the <code>populate</code> method for each of the composite
+ * <code>DataElements</code>.
+ * </p>
+ * @param message the <code>ISOMsg</code> instance to populate with the
+ * value of the <code>DataElement</code>.
+ * @param required if true, the <code>DataElement</code> must make sure
+ * that its value object has been set during the session.
+ *
+ * @exception org.jpos.iso.ISOException if the ISOMsg can not be
populated.
+ */
+ public void populate( ISOMsg message, boolean required )
+ throws ISOException
+ {
+ if( m_logger.isDebugEnabled() )
+ {
+ m_logger.debug( "populate: " + message );
+ }
+
+ if( required && m_value == null )
+ {
+ throw new ISOException( "Required data element has not been set:
PrimaryAccountNumber" );
+ }
+ message.set( ISO8583_BIT_NUMBER, m_value );
+ }
+
+ /** Sets the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ * <p>
+ * The provided argument must be of the correct type, and be within
+ * its specification defined bounds, or an <code>IllegalArgumentException
+ * </code> will be thrown.
+ * </p>
+ * @exception IllegalArgumentException if the provided <code>value</code>
+ * argument is of the wrong class, contains illegal values,
+ * or is null.
+ */
+ public void set( Object value )
+ throws IllegalArgumentException
+ {
+ m_Representation.validate( value );
+ m_value = m_Representation.format( value );
+ }
+
+ /** Returns the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ *
+ * @return the value object of the DataElement, which is the same object
+ * that has previously been set with the <code>set()</code>
+ * method.
+ */
+ public Object get()
+ {
+ return m_value;
+ }
+
+}

Added:
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/SystemsTraceAuditNumber.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/SystemsTraceAuditNumber.java
Fri Mar 25 18:31:17 2005
@@ -0,0 +1,144 @@
+/*
+ * Copyright 2004-2005 Niclas Hedhman.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.dpml.iso8583.data.elements;
+
+
+import net.dpml.iso8583.data.DataElement;
+import net.dpml.iso8583.data.Representation;
+import net.dpml.iso8583.data.representation.N;
+import net.dpml.logging.Logger;
+import net.dpml.parameters.Parameters;
+import org.jpos.iso.ISOException;
+import org.jpos.iso.ISOMsg;
+
+
+/** <code>DataElement</code> implementation of SystemsTraceAuditNumber.
+ *
+ * @author <a href="mailto:niclas AT hedhman.org";>Niclas Hedhman</a>
+ *
+ * @see net.dpml.iso8583.data.DataElement
+ * @see net.dpml.iso8583.data.DataElementManager
+ *
+ * @metro.component lifestyle="transient" name="SystemsTraceAuditNumber"
+ * @metro.service type="net.dpml.iso8583.data.DataElement"
+ */
+public class SystemsTraceAuditNumber
+ implements DataElement
+{
+ /** The ISO8583 bit number */
+ static private int ISO8583_BIT_NUMBER = 11;
+
+ /** ISO8583 Representation formatter and validator. */
+ static private Representation m_Representation;
+
+ private String m_value;
+ private Logger m_logger;
+
+ /** Sets up the element type in a generic fashion. */
+ static
+ {
+ m_Representation = new N( 12 );
+ }
+
+ /** Constructor of SystemsTraceAuditNumber.
+ *
+ * @param logger supplied <code>Logger</code> instance.
+ * @param params supplied configuration <code>Parameters</code>
+ */
+ public SystemsTraceAuditNumber( Logger logger, Parameters params )
+ {
+ m_logger = logger;
+ m_value = params.getParameter( "value", "" );
+ }
+
+ /** Instructs the DataElement to populate the ISOMsg object.
+ * <p>
+ * <code>DataElement</code> implementations are responsible to know
+ * which field (a.k.a. bit) that it should populate in the
+ * <code>ISOMsg</code> structure. The caller must know whether the
+ * field is required or not, and if the <code>DataElement</code> has
+ * not been properly set, either in the course of the session or as
+ * part of its initialization, it should throw an ISOException.
+ * </p>
+ * <p>
+ * If the <code>DataElement</code> is nested, it is responsible for
+ * calling the <code>populate</code> method for each of the composite
+ * <code>DataElements</code>.
+ * </p>
+ * @param message the <code>ISOMsg</code> instance to populate with the
+ * value of the <code>DataElement</code>.
+ * @param required if true, the <code>DataElement</code> must make sure
+ * that its value object has been set during the session.
+ *
+ * @exception org.jpos.iso.ISOException if the ISOMsg can not be
populated.
+ */
+ public void populate( ISOMsg message, boolean required )
+ throws ISOException
+ {
+ if( m_logger.isDebugEnabled() )
+ {
+ m_logger.debug( "populate: " + message );
+ }
+
+ if( required && m_value == null )
+ {
+ throw new ISOException( "Required data element has not been set:
PrimaryAccountNumber" );
+ }
+ message.set( ISO8583_BIT_NUMBER, m_value );
+ }
+
+ /** Sets the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ * <p>
+ * The provided argument must be of the correct type, and be within
+ * its specification defined bounds, or an <code>IllegalArgumentException
+ * </code> will be thrown.
+ * </p>
+ * @exception IllegalArgumentException if the provided <code>value</code>
+ * argument is of the wrong class, contains illegal values,
+ * or is null.
+ */
+ public void set( Object value )
+ throws IllegalArgumentException
+ {
+ m_Representation.validate( value );
+ m_value = m_Representation.format( value );
+ }
+
+ /** Returns the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ *
+ * @return the value object of the DataElement, which is the same object
+ * that has previously been set with the <code>set()</code>
+ * method.
+ */
+ public Object get()
+ {
+ return m_value;
+ }
+
+
+}

Added:
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/TransactionLifeCycleIdentificationData.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/TransactionLifeCycleIdentificationData.java
Fri Mar 25 18:31:17 2005
@@ -0,0 +1,143 @@
+/*
+ * Copyright 2004-2005 Niclas Hedhman.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.dpml.iso8583.data.elements;
+
+
+import net.dpml.iso8583.data.DataElement;
+import net.dpml.iso8583.data.Representation;
+import net.dpml.iso8583.data.representation.ANS;
+import net.dpml.logging.Logger;
+import net.dpml.parameters.Parameters;
+import org.jpos.iso.ISOException;
+import org.jpos.iso.ISOMsg;
+
+
+/** <code>DataElement</code> implementation of
TransactionLifeCycleIdentificationData.
+ *
+ * @author <a href="mailto:niclas AT hedhman.org";>Niclas Hedhman</a>
+ *
+ * @see net.dpml.iso8583.data.DataElement
+ * @see net.dpml.iso8583.data.DataElementManager
+ *
+ * @metro.component lifestyle="transient"
name="TransactionLifeCycleIdentificationData"
+ * @metro.service type="net.dpml.iso8583.data.DataElement"
+ */
+public class TransactionLifeCycleIdentificationData
+ implements DataElement
+{
+ /** The ISO8583 bit number */
+ static private int ISO8583_BIT_NUMBER = 21;
+
+ /** ISO8583 Representation formatter and validator. */
+ static private Representation m_Representation;
+
+ private String m_value;
+ private Logger m_logger;
+
+ /** Sets up the element type in a generic fashion. */
+ static
+ {
+ m_Representation = new ANS( 22 );
+ }
+
+ /** Constructor of TransactionLifeCycleIdentificationData.
+ *
+ * @param logger supplied <code>Logger</code> instance.
+ * @param params supplied configuration <code>Parameters</code>
+ */
+ public TransactionLifeCycleIdentificationData( Logger logger, Parameters
params )
+ {
+ m_logger = logger;
+ m_value = params.getParameter( "value", "" );
+ }
+
+ /** Instructs the DataElement to populate the ISOMsg object.
+ * <p>
+ * <code>DataElement</code> implementations are responsible to know
+ * which field (a.k.a. bit) that it should populate in the
+ * <code>ISOMsg</code> structure. The caller must know whether the
+ * field is required or not, and if the <code>DataElement</code> has
+ * not been properly set, either in the course of the session or as
+ * part of its initialization, it should throw an ISOException.
+ * </p>
+ * <p>
+ * If the <code>DataElement</code> is nested, it is responsible for
+ * calling the <code>populate</code> method for each of the composite
+ * <code>DataElements</code>.
+ * </p>
+ * @param message the <code>ISOMsg</code> instance to populate with the
+ * value of the <code>DataElement</code>.
+ * @param required if true, the <code>DataElement</code> must make sure
+ * that its value object has been set during the session.
+ *
+ * @exception org.jpos.iso.ISOException if the ISOMsg can not be
populated.
+ */
+ public void populate( ISOMsg message, boolean required )
+ throws ISOException
+ {
+ if( m_logger.isDebugEnabled() )
+ {
+ m_logger.debug( "populate: " + message );
+ }
+
+ if( required && m_value == null )
+ {
+ throw new ISOException( "Required data element has not been set:
PrimaryAccountNumber" );
+ }
+ message.set( ISO8583_BIT_NUMBER, m_value );
+ }
+
+ /** Sets the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ * <p>
+ * The provided argument must be of the correct type, and be within
+ * its specification defined bounds, or an <code>IllegalArgumentException
+ * </code> will be thrown.
+ * </p>
+ * @exception IllegalArgumentException if the provided <code>value</code>
+ * argument is of the wrong class, contains illegal values,
+ * or is null.
+ */
+ public void set( Object value )
+ throws IllegalArgumentException
+ {
+ m_Representation.validate( value );
+ m_value = m_Representation.format( value );
+ }
+
+ /** Returns the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ *
+ * @return the value object of the DataElement, which is the same object
+ * that has previously been set with the <code>set()</code>
+ * method.
+ */
+ public Object get()
+ {
+ return m_value;
+ }
+
+}

Added:
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/XX.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/elements/XX.java
Fri Mar 25 18:31:17 2005
@@ -0,0 +1,142 @@
+/*
+ * Copyright 2004-2005 Niclas Hedhman.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.dpml.iso8583.data.elements;
+
+
+import net.dpml.iso8583.data.DataElement;
+import net.dpml.iso8583.data.Representation;
+import net.dpml.iso8583.data.representation.B;
+import net.dpml.logging.Logger;
+import net.dpml.parameters.Parameters;
+import org.jpos.iso.ISOException;
+import org.jpos.iso.ISOMsg;
+
+
+/** <code>DataElement</code> implementation of XX.
+ *
+ * @author <a href="mailto:niclas AT hedhman.org";>Niclas Hedhman</a>
+ *
+ * @see net.dpml.iso8583.data.DataElement
+ * @see net.dpml.iso8583.data.DataElementManager
+ *
+ * @metro.component lifestyle="transient" name="XX" // TODO ENTER CORRECT
NAME
+ * @metro.service type="net.dpml.iso8583.data.DataElement"
+ */
+public class XX
+ implements DataElement
+{
+ /** The ISO8583 bit number */
+ static private int ISO8583_BIT_NUMBER = 0; //TODO Enter correct one
+
+ /** ISO8583 Representation formatter and validator. */
+ static private Representation m_Representation;
+
+ private String m_value;
+ private Logger m_logger;
+
+ /** Sets up the element type in a generic fashion. */
+ static
+ {
+ m_Representation = new B( 0 ); // TODO; Enter correct
+ }
+
+ /** Constructor of XX.
+ *
+ * @param logger supplied <code>Logger</code> instance.
+ * @param params supplied configuration <code>Parameters</code>
+ */
+ public XX( Logger logger, Parameters params )
+ {
+ m_logger = logger;
+ m_value = params.getParameter( "value", "" );
+ }
+
+ /** Instructs the DataElement to populate the ISOMsg object.
+ * <p>
+ * <code>DataElement</code> implementations are responsible to know
+ * which field (a.k.a. bit) that it should populate in the
+ * <code>ISOMsg</code> structure. The caller must know whether the
+ * field is required or not, and if the <code>DataElement</code> has
+ * not been properly set, either in the course of the session or as
+ * part of its initialization, it should throw an ISOException.
+ * </p>
+ * <p>
+ * If the <code>DataElement</code> is nested, it is responsible for
+ * calling the <code>populate</code> method for each of the composite
+ * <code>DataElements</code>.
+ * </p>
+ * @param message the <code>ISOMsg</code> instance to populate with the
+ * value of the <code>DataElement</code>.
+ * @param required if true, the <code>DataElement</code> must make sure
+ * that its value object has been set during the session.
+ *
+ * @exception ISOException if the ISOMsg can not be populated.
+ */
+ public void populate( ISOMsg message, boolean required )
+ throws ISOException
+ {
+ if( m_logger.isDebugEnabled() )
+ {
+ m_logger.debug( "populate: " + message );
+ }
+
+ if( required && m_value == null )
+ {
+ throw new ISOException( "Required data element has not been set:
PrimaryAccountNumber" );
+ }
+ message.set( ISO8583_BIT_NUMBER, m_value );
+ }
+
+ /** Sets the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ * <p>
+ * The provided argument must be of the correct type, and be within
+ * its specification defined bounds, or an <code>IllegalArgumentException
+ * </code> will be thrown.
+ * </p>
+ * @exception IllegalArgumentException if the provided <code>value</code>
+ * argument is of the wrong class, contains illegal values,
+ * or is null.
+ */
+ public void set( Object value )
+ throws IllegalArgumentException
+ {
+ m_Representation.validate( value );
+ m_value = m_Representation.format( value );
+ }
+
+ /** Returns the value object of the DataElement.
+ * <p>
+ * Each <code>DataElement</code> implementation defines what the value
+ * object is, and whether a default value can be
configured/parameterized
+ * or must be set during the session.
+ * </p>
+ *
+ * @return the value object of the DataElement, which is the same object
+ * that has previously been set with the <code>set()</code>
+ * method.
+ */
+ public Object get()
+ {
+ return m_value;
+ }
+}

Added:
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/A.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/A.java
Fri Mar 25 18:31:17 2005
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2004-2005 Niclas Hedhman.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.dpml.iso8583.data.representation;
+
+import net.dpml.iso8583.data.Representation;
+import net.dpml.lang.NullArgumentException;
+
+public class A
+ implements Representation
+{
+
+ private int m_length;
+
+ public A( int length )
+ {
+ m_length = length;
+ }
+
+ public void validate( Object value )
+ throws IllegalArgumentException
+ {
+ if( value == null )
+ throw new NullArgumentException( "value" );
+ // TODO; check type
+ // TODO; check length
+ }
+
+ public String format( Object obj )
+ {
+ // TODO; generate string
+ return null;
+ }
+}

Added:
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/AN.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/AN.java
Fri Mar 25 18:31:17 2005
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2004-2005 Niclas Hedhman.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.dpml.iso8583.data.representation;
+
+import net.dpml.iso8583.data.Representation;
+import net.dpml.lang.NullArgumentException;
+
+public class AN
+ implements Representation
+{
+ private int m_length;
+
+ public AN( int length )
+ {
+ m_length = length;
+ }
+
+ public void validate( Object value )
+ throws IllegalArgumentException
+ {
+ if( value == null )
+ throw new NullArgumentException( "value" );
+ // TODO; check type
+ // TODO; check length
+ }
+
+ public String format( Object obj )
+ {
+ // TODO; generate string
+ return null;
+ }
+}

Added:
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/ANB.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/ANB.java
Fri Mar 25 18:31:17 2005
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2004-2005 Niclas Hedhman.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.dpml.iso8583.data.representation;
+
+import net.dpml.iso8583.data.Representation;
+import net.dpml.lang.NullArgumentException;
+
+public class ANB
+ implements Representation
+{
+
+ private int m_length;
+
+ public ANB( int length )
+ {
+ m_length = length;
+ }
+
+ public void validate( Object value )
+ throws IllegalArgumentException
+ {
+ if( value == null )
+ throw new NullArgumentException( "value" );
+ // TODO; check type
+ // TODO; check length
+ }
+
+ public String format( Object obj )
+ {
+ // TODO; generate string
+ return null;
+ }
+}

Added:
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/ANP.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/ANP.java
Fri Mar 25 18:31:17 2005
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2004-2005 Niclas Hedhman.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.dpml.iso8583.data.representation;
+
+import net.dpml.iso8583.data.Representation;
+import net.dpml.lang.NullArgumentException;
+
+public class ANP
+ implements Representation
+{
+
+ private int m_length;
+
+ public ANP( int length )
+ {
+ m_length = length;
+ }
+
+ public void validate( Object value )
+ throws IllegalArgumentException
+ {
+ if( value == null )
+ throw new NullArgumentException( "value" );
+ // TODO; check type
+ // TODO; check length
+ }
+
+ public String format( Object obj )
+ {
+ // TODO; generate string
+ return null;
+ }
+}

Added:
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/ANS.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/ANS.java
Fri Mar 25 18:31:17 2005
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2004-2005 Niclas Hedhman.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.dpml.iso8583.data.representation;
+
+import net.dpml.iso8583.data.Representation;
+import net.dpml.lang.NullArgumentException;
+
+public class ANS
+ implements Representation
+{
+
+ private int m_length;
+
+ public ANS( int length )
+ {
+ m_length = length;
+ }
+
+ public void validate( Object value )
+ throws IllegalArgumentException
+ {
+ if( value == null )
+ throw new NullArgumentException( "value" );
+ // TODO; check type
+ // TODO; check length
+ }
+
+ public String format( Object obj )
+ {
+ // TODO; generate string
+ return null;
+ }
+}

Added:
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/ANSB.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/ANSB.java
Fri Mar 25 18:31:17 2005
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2004-2005 Niclas Hedhman.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.dpml.iso8583.data.representation;
+
+import net.dpml.iso8583.data.Representation;
+import net.dpml.lang.NullArgumentException;
+
+public class ANSB
+ implements Representation
+{
+
+ private int m_length;
+
+ public ANSB( int length )
+ {
+ m_length = length;
+ }
+
+ public void validate( Object value )
+ throws IllegalArgumentException
+ {
+ if( value == null )
+ throw new NullArgumentException( "value" );
+ // TODO; check type
+ // TODO; check length
+ }
+
+ public String format( Object obj )
+ {
+ // TODO; generate string
+ return null;
+ }
+}

Added:
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/AS.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/AS.java
Fri Mar 25 18:31:17 2005
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2004-2005 Niclas Hedhman.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.dpml.iso8583.data.representation;
+
+import net.dpml.iso8583.data.Representation;
+import net.dpml.lang.NullArgumentException;
+
+public class AS
+ implements Representation
+{
+
+ private int m_length;
+
+ public AS( int length )
+ {
+ m_length = length;
+ }
+
+ public void validate( Object value )
+ throws IllegalArgumentException
+ {
+ if( value == null )
+ throw new NullArgumentException( "value" );
+ // TODO; check type
+ // TODO; check length
+ }
+
+ public String format( Object obj )
+ {
+ // TODO; generate string
+ return null;
+ }
+}

Added:
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/B.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/B.java
Fri Mar 25 18:31:17 2005
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2004-2005 Niclas Hedhman.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.dpml.iso8583.data.representation;
+
+import net.dpml.iso8583.data.Representation;
+import net.dpml.lang.NullArgumentException;
+
+public class B
+ implements Representation
+{
+
+ private int m_length;
+
+ public B( int length )
+ {
+ m_length = length;
+ }
+
+ public void validate( Object value )
+ throws IllegalArgumentException
+ {
+ if( value == null )
+ throw new NullArgumentException( "value" );
+ // TODO; check type
+ // TODO; check length
+ }
+
+ public String format( Object obj )
+ {
+ // TODO; generate string
+ return null;
+ }
+}

Added:
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/N.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/N.java
Fri Mar 25 18:31:17 2005
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2004-2005 Niclas Hedhman.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.dpml.iso8583.data.representation;
+
+import net.dpml.iso8583.data.Representation;
+import net.dpml.lang.NullArgumentException;
+
+public class N
+ implements Representation
+{
+
+ private int m_length;
+
+ public N( int length )
+ {
+ m_length = length;
+ }
+
+ public void validate( Object value )
+ throws IllegalArgumentException
+ {
+ if( value == null )
+ throw new NullArgumentException( "value" );
+ // TODO; check type
+ // TODO; check length
+ }
+
+ public String format( Object obj )
+ {
+ return null;
+ }
+}

Added:
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/VariableAN.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/VariableAN.java
Fri Mar 25 18:31:17 2005
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2004-2005 Niclas Hedhman.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.dpml.iso8583.data.representation;
+
+import net.dpml.iso8583.data.Representation;
+import net.dpml.lang.NullArgumentException;
+
+public class VariableAN
+ implements Representation
+{
+
+ private int m_length;
+
+ public VariableAN( int length )
+ {
+ m_length = length;
+ }
+
+ public void validate( Object value )
+ throws IllegalArgumentException
+ {
+ if( value == null )
+ throw new NullArgumentException( "value" );
+ // TODO; check type
+ // TODO; check length
+ }
+
+ public String format( Object obj )
+ {
+ // TODO; generate string
+ return null;
+ }
+}

Added:
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/VariableANS.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/VariableANS.java
Fri Mar 25 18:31:17 2005
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2004-2005 Niclas Hedhman.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.dpml.iso8583.data.representation;
+
+import net.dpml.iso8583.data.Representation;
+import net.dpml.lang.NullArgumentException;
+
+public class VariableANS
+ implements Representation
+{
+
+ private int m_length;
+
+ public VariableANS( int length )
+ {
+ m_length = length;
+ }
+
+ public void validate( Object value )
+ throws IllegalArgumentException
+ {
+ if( value == null )
+ throw new NullArgumentException( "value" );
+ // TODO; check type
+ // TODO; check length
+ }
+
+ public String format( Object obj )
+ {
+ // TODO; generate string
+ return null;
+ }
+}

Added:
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/VariableANSB.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/VariableANSB.java
Fri Mar 25 18:31:17 2005
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2004-2005 Niclas Hedhman.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.dpml.iso8583.data.representation;
+
+import net.dpml.iso8583.data.Representation;
+import net.dpml.lang.NullArgumentException;
+
+public class VariableANSB
+ implements Representation
+{
+
+ private int m_length;
+
+ public VariableANSB( int length )
+ {
+ m_length = length;
+ }
+
+ public void validate( Object value )
+ throws IllegalArgumentException
+ {
+ if( value == null )
+ throw new NullArgumentException( "value" );
+ // TODO; check type
+ // TODO; check length
+ }
+
+ public String format( Object obj )
+ {
+ // TODO; generate string
+ return null;
+ }
+}

Added:
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/VariableB.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/VariableB.java
Fri Mar 25 18:31:17 2005
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2004-2005 Niclas Hedhman.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.dpml.iso8583.data.representation;
+
+import net.dpml.iso8583.data.Representation;
+import net.dpml.lang.NullArgumentException;
+
+public class VariableB
+ implements Representation
+{
+
+ private int m_length;
+
+ public VariableB( int length )
+ {
+ m_length = length;
+ }
+
+ public void validate( Object value )
+ throws IllegalArgumentException
+ {
+ if( value == null )
+ throw new NullArgumentException( "value" );
+ // TODO; check type
+ // TODO; check length
+ }
+
+ public String format(Object obj)
+ {
+ // TODO; generate string
+ return null;
+ }
+}

Added:
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/VariableN.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/VariableN.java
Fri Mar 25 18:31:17 2005
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2004-2005 Niclas Hedhman.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.dpml.iso8583.data.representation;
+
+import net.dpml.iso8583.data.Representation;
+import net.dpml.lang.NullArgumentException;
+
+public class VariableN
+ implements Representation
+{
+
+ private int m_length;
+
+ public VariableN( int length )
+ {
+ m_length = length;
+ }
+
+ public void validate( Object value )
+ throws IllegalArgumentException
+ {
+ if( value == null )
+ throw new NullArgumentException( "value" );
+ // TODO; check type
+ // TODO; check length
+ }
+
+ public String format( Object obj )
+ {
+ // TODO; generate string
+ return null;
+ }
+}

Added:
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/VariableZ.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/VariableZ.java
Fri Mar 25 18:31:17 2005
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2004-2005 Niclas Hedhman.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.dpml.iso8583.data.representation;
+
+import net.dpml.iso8583.data.Representation;
+import net.dpml.lang.NullArgumentException;
+
+public class VariableZ
+ implements Representation
+{
+
+ private int m_length;
+
+ public VariableZ( int length )
+ {
+ m_length = length;
+ }
+
+ public void validate( Object value )
+ throws IllegalArgumentException
+ {
+ if( value == null )
+ throw new NullArgumentException( "value" );
+ // TODO; check type
+ // TODO; check length
+ }
+
+ public String format( Object obj )
+ {
+ // TODO; generate string
+ return null;
+ }
+}

Added:
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/XN.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/iso8583/elements/src/main/net/dpml/iso8583/data/representation/XN.java
Fri Mar 25 18:31:17 2005
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2004-2005 Niclas Hedhman.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.dpml.iso8583.data.representation;
+
+import net.dpml.iso8583.data.Representation;
+import net.dpml.lang.NullArgumentException;
+
+public class XN
+ implements Representation
+{
+
+ private int m_length;
+
+ public XN( int length )
+ {
+ m_length = length;
+ }
+
+ public void validate( Object value )
+ throws IllegalArgumentException
+ {
+ if( value == null )
+ throw new NullArgumentException( "value" );
+ // TODO; check type
+ // TODO; check length
+ }
+
+ public String format( Object obj )
+ {
+ // TODO; generate string
+ return null;
+ }
+}

Modified: development/planet/users/niclas/iso8583/iso8583.iws
==============================================================================
--- development/planet/users/niclas/iso8583/iso8583.iws (original)
+++ development/planet/users/niclas/iso8583/iso8583.iws Fri Mar 25 18:31:17
2005
@@ -38,8 +38,8 @@
<autoRefresh>false</autoRefresh>
</component>
<component name="Commander">
- <leftPanel />
- <rightPanel />
+ <leftPanel url="file://$PROJECT_DIR$/channels" />
+ <rightPanel url="file://$PROJECT_DIR$/channels" />
<splitter proportion="0.5" />
</component>
<component name="CompilerWorkspaceConfiguration">
@@ -146,26 +146,75 @@
<option name="HIDE_WARNINGS" value="false" />
</component>
<component name="FileEditorManager" split-orientation="vertical"
split-proportion="0.5">
- <first-group
selected-file="file://$PROJECT_DIR$/elements/src/main/net/dpml/iso8583/data/elements/TEMPLATE.tjava">
- <entry
file="file://$PROJECT_DIR$/packaging/src/main/net/dpml/iso8583/packaging/Base1Packager.java"
pinned="false">
+ <first-group
selected-file="file://$PROJECT_DIR$/elements/src/main/net/dpml/iso8583/data/elements/ContinuationBit.java">
+ <entry
file="file://$PROJECT_DIR$/elements/src/main/net/dpml/iso8583/data/elements/SystemsTraceAuditNumber.java"
pinned="false">
<provider selected="true" editor-type-id="text-editor">
- <state line="35" column="9" selection-start="1065"
selection-end="1065" vertical-scroll-proportion="0.35315984">
+ <state line="39" column="13" selection-start="1319"
selection-end="1319" vertical-scroll-proportion="0.3324573">
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry
file="file://$PROJECT_DIR$/elements/src/main/net/dpml/iso8583/data/elements/TransactionLifeCycleIdentificationData.java"
pinned="false">
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="39" column="13" selection-start="1351"
selection-end="1351" vertical-scroll-proportion="0.3324573">
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry
file="file://$PROJECT_DIR$/elements/src/main/net/dpml/iso8583/data/elements/XX.java"
pinned="false">
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="39" column="13" selection-start="1304"
selection-end="1304" vertical-scroll-proportion="0.45335084">
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
- <entry
file="file://$PROJECT_DIR$/elements/src/main/net/dpml/iso8583/data/manager/DefaultManager.java"
pinned="false">
+ <entry
file="file://$PROJECT_DIR$/elements/src/main/net/dpml/iso8583/data/elements/AmountCardHolderBilling.java"
pinned="false">
<provider selected="true" editor-type-id="text-editor">
- <state line="87" column="55" selection-start="2864"
selection-end="2864" vertical-scroll-proportion="0.6282528">
+ <state line="39" column="13" selection-start="1319"
selection-end="1319" vertical-scroll-proportion="0.3324573">
<folding />
</state>
</provider>
</entry>
- <entry
file="file://$PROJECT_DIR$/elements/src/main/net/dpml/iso8583/data/elements/TEMPLATE.tjava"
pinned="false">
+ <entry
file="file://$PROJECT_DIR$/elements/src/main/net/dpml/iso8583/data/elements/AmountCardholderBillingFee.java"
pinned="false">
<provider selected="true" editor-type-id="text-editor">
- <state line="29" column="30" selection-start="856"
selection-end="856" vertical-scroll-proportion="0.16666667">
+ <state line="39" column="13" selection-start="1325"
selection-end="1325" vertical-scroll-proportion="0.32325888">
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry
file="file://$PROJECT_DIR$/elements/src/main/net/dpml/iso8583/data/elements/AmountReconciliation.java"
pinned="false">
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="39" column="13" selection-start="1313"
selection-end="1313" vertical-scroll-proportion="0.3324573">
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry
file="file://$PROJECT_DIR$/elements/src/main/net/dpml/iso8583/data/elements/AmountsOriginal.java"
pinned="false">
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="39" column="13" selection-start="1303"
selection-end="1303" vertical-scroll-proportion="0.32325888">
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry
file="file://$PROJECT_DIR$/elements/src/main/net/dpml/iso8583/data/elements/AmountTransaction.java"
pinned="false">
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="39" column="13" selection-start="1307"
selection-end="1307" vertical-scroll-proportion="0.3324573">
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry
file="file://$PROJECT_DIR$/elements/src/main/net/dpml/iso8583/data/elements/CardSequenceNumber.java"
pinned="false">
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="39" column="13" selection-start="1309"
selection-end="1309" vertical-scroll-proportion="0.32325888">
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry
file="file://$PROJECT_DIR$/elements/src/main/net/dpml/iso8583/data/elements/ContinuationBit.java"
pinned="false">
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="39" column="13" selection-start="1303"
selection-end="1303" vertical-scroll-proportion="0.3324573">
<folding />
</state>
</provider>
@@ -186,25 +235,32 @@
<component name="J2EEProjectPane" />
<component name="NamedScopeManager" />
<component name="PackagesPane">
- <expanded_node url="net.dpml" module="elements" type="package" />
- <expanded_node url="net.dpml.iso8583.data.manager" module="elements"
type="package" />
- <expanded_node url="net.dpml.iso8583" module="elements" type="package" />
- <expanded_node url="" module="api" type="module" />
- <expanded_node url="net" module="elements" type="package" />
- <expanded_node url="net.dpml.iso8583.data" module="elements"
type="package" />
+ <expanded_node url="net.dpml.iso8583.data.representation"
module="elements" type="package" />
<expanded_node url="" module="elements" type="module" />
<expanded_node url="net.dpml.iso8583.data.elements" module="elements"
type="package" />
- <expanded_node url="net" module="api" type="package" />
- <expanded_node url="net.dpml" module="api" type="package" />
- <expanded_node url="net.dpml.iso8583" module="api" type="package" />
</component>
- <component name="ProjectPane" />
+ <component name="ProjectPane">
+ <expanded_node url="file://$PROJECT_DIR$/elements/src/main/net/dpml"
module="elements" type="directory" />
+ <expanded_node
url="file://$PROJECT_DIR$/elements/src/main/net/dpml/iso8583"
module="elements" type="directory" />
+ <expanded_node
url="file://$PROJECT_DIR$/elements/src/test/net/dpml/iso8583/test/data"
module="elements" type="directory" />
+ <expanded_node
url="file://$PROJECT_DIR$/elements/src/main/net/dpml/iso8583/data"
module="elements" type="directory" />
+ <expanded_node url="file://$PROJECT_DIR$/elements/src" module="elements"
type="directory" />
+ <expanded_node url="file://$PROJECT_DIR$/elements/src/test/net/dpml"
module="elements" type="directory" />
+ <expanded_node url="file://$PROJECT_DIR$/elements/src/main/net"
module="elements" type="directory" />
+ <expanded_node url="" module="elements" type="module" />
+ <expanded_node url="file://$PROJECT_DIR$/elements/src/test"
module="elements" type="directory" />
+ <expanded_node url="file://$PROJECT_DIR$/elements" module="elements"
type="directory" />
+ <expanded_node url="file://$PROJECT_DIR$/elements/src/test/net"
module="elements" type="directory" />
+ <expanded_node
url="file://$PROJECT_DIR$/elements/src/test/net/dpml/iso8583"
module="elements" type="directory" />
+ <expanded_node url="file://$PROJECT_DIR$/elements/src/main"
module="elements" type="directory" />
+ <expanded_node
url="file://$PROJECT_DIR$/elements/src/test/net/dpml/iso8583/test"
module="elements" type="directory" />
+ </component>
<component name="ProjectView">
<navigator currentView="PackagesPane" splitterProportion="0.5">
- <flattenPackages />
+ <flattenPackages PackagesPane="true" />
<showMembers />
<showModules PackagesPane="true" />
- <showLibraryContents />
+ <showLibraryContents PackagesPane="false" />
<hideEmptyPackages />
<showStructure PackagesPane="false" ProjectPane="false" />
<autoscrollToSource />
@@ -217,6 +273,7 @@
<property name="MemberChooser.showClasses" value="true" />
<property name="MemberChooser.sorted" value="false" />
<property name="GoToFile.includeJavaFiles" value="false" />
+ <property name="last_opened_file_path" value="/home/niclas" />
<property name="GoToClass.toSaveIncludeLibraries" value="false" />
</component>
<component name="RunManager">
@@ -306,24 +363,24 @@
</todo-panel>
</component>
<component name="ToolWindowManager">
- <frame x="10" y="0" width="1260" height="977" extended-state="0" />
- <editor active="false" />
+ <frame x="10" y="0" width="1260" height="977" extended-state="1" />
+ <editor active="true" />
<layout>
<window_info id="CVS" active="false" anchor="bottom" auto_hide="false"
internal_type="docked" type="docked" visible="false" weight="0.33" order="8"
/>
- <window_info id="SvgViewer" active="false" anchor="right"
auto_hide="false" internal_type="docked" type="docked" visible="false"
weight="0.33" order="3" />
+ <window_info id="SvgViewer" active="false" anchor="right"
auto_hide="false" internal_type="docked" type="docked" visible="false"
weight="0.33028287" order="3" />
<window_info id="TODO" active="false" anchor="bottom"
auto_hide="false" internal_type="docked" type="docked" visible="false"
weight="0.33" order="7" />
- <window_info id="Project" active="true" anchor="left"
auto_hide="false" internal_type="docked" type="docked" visible="true"
weight="0.20216306" order="0" />
- <window_info id="Find" active="false" anchor="bottom"
auto_hide="false" internal_type="docked" type="docked" visible="false"
weight="0.33" order="1" />
- <window_info id="Structure" active="false" anchor="left"
auto_hide="false" internal_type="docked" type="docked" visible="false"
weight="0.25" order="1" />
+ <window_info id="Project" active="false" anchor="left"
auto_hide="false" internal_type="docked" type="docked" visible="true"
weight="0.19301164" order="0" />
+ <window_info id="Find" active="false" anchor="bottom"
auto_hide="false" internal_type="docked" type="docked" visible="false"
weight="0.32979977" order="1" />
+ <window_info id="Structure" active="false" anchor="left"
auto_hide="false" internal_type="docked" type="docked" visible="false"
weight="0.24958402" order="1" />
<window_info id="Messages" active="false" anchor="bottom"
auto_hide="false" internal_type="docked" type="docked" visible="false"
weight="0.32979977" order="8" />
<window_info id="Inspection" active="false" anchor="bottom"
auto_hide="false" internal_type="docked" type="docked" visible="false"
weight="0.4" order="6" />
<window_info id="Dependency Viewer" active="false" anchor="bottom"
auto_hide="false" internal_type="docked" type="docked" visible="false"
weight="0.33" order="8" />
<window_info id="Ant Build" active="false" anchor="right"
auto_hide="false" internal_type="docked" type="docked" visible="false"
weight="0.25" order="1" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false"
internal_type="docked" type="docked" visible="false" weight="0.33" order="2"
/>
<window_info id="Hierarchy" active="false" anchor="right"
auto_hide="false" internal_type="docked" type="docked" visible="false"
weight="0.25" order="2" />
- <window_info id="Clover" active="false" anchor="left"
auto_hide="false" internal_type="docked" type="docked" visible="false"
weight="0.33" order="-1" />
+ <window_info id="Clover" active="false" anchor="left"
auto_hide="false" internal_type="docked" type="docked" visible="false"
weight="0.3294509" order="3" />
<window_info id="Debug" active="false" anchor="bottom"
auto_hide="false" internal_type="docked" type="docked" visible="false"
weight="0.4" order="4" />
- <window_info id="simpleUML" active="false" anchor="left"
auto_hide="false" internal_type="docked" type="docked" visible="false"
weight="0.33" order="3" />
+ <window_info id="simpleUML" active="false" anchor="left"
auto_hide="false" internal_type="docked" type="docked" visible="false"
weight="0.3294509" order="3" />
<window_info id="Commander" active="false" anchor="right"
auto_hide="false" internal_type="sliding" type="sliding" visible="false"
weight="0.4" order="0" />
<window_info id="Web" active="false" anchor="left" auto_hide="false"
internal_type="docked" type="docked" visible="false" weight="0.25" order="2"
/>
<window_info id="Message" active="false" anchor="bottom"
auto_hide="false" internal_type="docked" type="docked" visible="false"
weight="0.33" order="0" />
@@ -399,71 +456,113 @@
<option name="FILTER_TARGETS" value="false" />
</component>
<component name="editorHistoryManager">
- <entry
file="file://$PROJECT_DIR$/api/src/main/net/dpml/iso8583/authorization/AuthorizationResponse.java">
+ <entry
file="file://$PROJECT_DIR$/elements/src/main/net/dpml/iso8583/data/elements/PosCapability.java">
<provider selected="true" editor-type-id="text-editor">
- <state line="48" column="38" selection-start="1294"
selection-end="1294" vertical-scroll-proportion="0.59311223">
+ <state line="66" column="0" selection-start="2050"
selection-end="2050" vertical-scroll-proportion="0.8646518">
+ <folding>
+ <element signature="imports" expanded="true" />
+ </folding>
+ </state>
+ </provider>
+ </entry>
+ <entry
file="file://$PROJECT_DIR$/elements/src/main/net/dpml/iso8583/data/elements/PosDataCode.java">
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="68" column="0" selection-start="2038"
selection-end="2038" vertical-scroll-proportion="0.8646518">
+ <folding>
+ <element signature="imports" expanded="true" />
+ </folding>
+ </state>
+ </provider>
+ </entry>
+ <entry
file="file://$PROJECT_DIR$/elements/src/main/net/dpml/iso8583/data/elements/PrimaryAccountNumber.java">
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="66" column="0" selection-start="2096"
selection-end="2096" vertical-scroll-proportion="0.8672799">
<folding />
</state>
</provider>
</entry>
- <entry
file="file://$PROJECT_DIR$/api/src/main/net/dpml/iso8583/authorization/AuthorizationRequest.java">
+ <entry
file="file://$PROJECT_DIR$/elements/src/main/net/dpml/iso8583/data/elements/ProcessingCode.java">
<provider selected="true" editor-type-id="text-editor">
- <state line="24" column="17" selection-start="748"
selection-end="748" vertical-scroll-proportion="0.13011153">
+ <state line="66" column="0" selection-start="2051"
selection-end="2051" vertical-scroll-proportion="0.8646518">
<folding />
</state>
</provider>
</entry>
- <entry
file="file://$PROJECT_DIR$/elements/src/main/net/dpml/iso8583/data/elements/PrimaryAccountNumber.java">
+ <entry
file="file://$PROJECT_DIR$/elements/src/main/net/dpml/iso8583/data/elements/ReconciliationIndicator.java">
<provider selected="true" editor-type-id="text-editor">
- <state line="43" column="29" selection-start="1236"
selection-end="1236" vertical-scroll-proportion="0.5018587">
- <folding>
- <element signature="imports" expanded="true" />
- </folding>
+ <state line="66" column="0" selection-start="2095"
selection-end="2095" vertical-scroll-proportion="0.8646518">
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry
file="file://$PROJECT_DIR$/elements/src/main/net/dpml/iso8583/data/elements/SystemsTraceAuditNumber.java">
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="39" column="13" selection-start="1319"
selection-end="1319" vertical-scroll-proportion="0.3324573">
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry
file="file://$PROJECT_DIR$/elements/src/main/net/dpml/iso8583/data/elements/TransactionLifeCycleIdentificationData.java">
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="39" column="13" selection-start="1351"
selection-end="1351" vertical-scroll-proportion="0.3324573">
+ <folding />
</state>
</provider>
</entry>
- <entry
file="file://$PROJECT_DIR$/api/src/main/net/dpml/iso8583/authorization/AuthorizationAdvice.java">
+ <entry
file="file://$PROJECT_DIR$/elements/src/main/net/dpml/iso8583/data/elements/XX.java">
<provider selected="true" editor-type-id="text-editor">
- <state line="30" column="15" selection-start="941"
selection-end="941" vertical-scroll-proportion="0.41584158">
+ <state line="39" column="13" selection-start="1304"
selection-end="1304" vertical-scroll-proportion="0.45335084">
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
- <entry
file="file://$PROJECT_DIR$/api/src/main/net/dpml/iso8583/authorization/AuthorizationService.java">
+ <entry
file="file://$PROJECT_DIR$/elements/src/main/net/dpml/iso8583/data/elements/AmountCardHolderBilling.java">
<provider selected="true" editor-type-id="text-editor">
- <state line="20" column="12" selection-start="675"
selection-end="675" vertical-scroll-proportion="0.115384616">
+ <state line="39" column="13" selection-start="1319"
selection-end="1319" vertical-scroll-proportion="0.3324573">
<folding />
</state>
</provider>
</entry>
- <entry
file="file://$PROJECT_DIR$/api/src/main/net/dpml/iso8583/TimeDate.java">
+ <entry
file="file://$PROJECT_DIR$/elements/src/main/net/dpml/iso8583/data/elements/AmountCardholderBillingFee.java">
<provider selected="true" editor-type-id="text-editor">
- <state line="26" column="18" selection-start="744"
selection-end="744" vertical-scroll-proportion="0.28846154">
+ <state line="39" column="13" selection-start="1325"
selection-end="1325" vertical-scroll-proportion="0.32325888">
<folding />
</state>
</provider>
</entry>
- <entry
file="file://$PROJECT_DIR$/packaging/src/main/net/dpml/iso8583/packaging/Base1Packager.java">
+ <entry
file="file://$PROJECT_DIR$/elements/src/main/net/dpml/iso8583/data/elements/AmountReconciliation.java">
<provider selected="true" editor-type-id="text-editor">
- <state line="35" column="9" selection-start="1065"
selection-end="1065" vertical-scroll-proportion="0.35315984">
- <folding>
- <element signature="imports" expanded="true" />
- </folding>
+ <state line="39" column="13" selection-start="1313"
selection-end="1313" vertical-scroll-proportion="0.3324573">
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry
file="file://$PROJECT_DIR$/elements/src/main/net/dpml/iso8583/data/elements/AmountsOriginal.java">
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="39" column="13" selection-start="1303"
selection-end="1303" vertical-scroll-proportion="0.32325888">
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry
file="file://$PROJECT_DIR$/elements/src/main/net/dpml/iso8583/data/elements/AmountTransaction.java">
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="39" column="13" selection-start="1307"
selection-end="1307" vertical-scroll-proportion="0.3324573">
+ <folding />
</state>
</provider>
</entry>
- <entry
file="file://$PROJECT_DIR$/elements/src/main/net/dpml/iso8583/data/elements/TEMPLATE.tjava">
+ <entry
file="file://$PROJECT_DIR$/elements/src/main/net/dpml/iso8583/data/elements/ContinuationBit.java">
<provider selected="true" editor-type-id="text-editor">
- <state line="29" column="30" selection-start="856"
selection-end="856" vertical-scroll-proportion="0.16666667">
+ <state line="39" column="13" selection-start="1303"
selection-end="1303" vertical-scroll-proportion="0.3324573">
<folding />
</state>
</provider>
</entry>
- <entry
file="file://$PROJECT_DIR$/elements/src/main/net/dpml/iso8583/data/manager/DefaultManager.java">
+ <entry
file="file://$PROJECT_DIR$/elements/src/main/net/dpml/iso8583/data/elements/CardSequenceNumber.java">
<provider selected="true" editor-type-id="text-editor">
- <state line="87" column="55" selection-start="2864"
selection-end="2864" vertical-scroll-proportion="0.6282528">
+ <state line="39" column="13" selection-start="1309"
selection-end="1309" vertical-scroll-proportion="0.32325888">
<folding />
</state>
</provider>

Modified: development/planet/users/niclas/iso8583/packaging/packaging.iml
==============================================================================
--- development/planet/users/niclas/iso8583/packaging/packaging.iml
(original)
+++ development/planet/users/niclas/iso8583/packaging/packaging.iml Fri
Mar 25 18:31:17 2005
@@ -7,6 +7,7 @@
<exclude-exploded />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main" isTestSource="false"
/>
+ <sourceFolder url="file://$MODULE_DIR$/src/test" isTestSource="true" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />



  • svn commit: r2140 - in development/planet/users/niclas/iso8583: . api/src/main/net/dpml/iso8583/data channels channels/src/test elements elements/src/main/net/dpml/iso8583/data/elements elements/src/main/net/dpml/iso8583/data/representation elements/src/test elements/src/test/net elements/src/test/net/dpml elements/src/test/net/dpml/iso8583 elements/src/test/net/dpml/iso8583/test elements/src/test/net/dpml/iso8583/test/data elements/src/test/net/dpml/iso8583/test/data/elements elements/src/test/net/dpml/iso8583/test/data/manager elements/src/test/net/dpml/iso8583/test/data/representation packaging packaging/src/test, niclas, 03/25/2005

Archive powered by MHonArc 2.6.24.

Top of Page