Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

...

Schritt 8: Sourcecode-Anpassungen in den Java-Regeln

 

 

Java-Package

Java-Klasse

Kurzbeschreibung

a

org.nuclet.mt940.job

MT940ImportJob

Konfiguration des Eingangsverzeichnisses (MT940_DIRECTORY, s.o.)

  MT940ImportJob

Konfiguration des Zeichensatz der einzulesenden MT940-Dateien

  MT940ImportJob

Konfiguration des Dateiendung der einzulesenden MT940-Dateien

 

 

MT940ImportJob

Konfiguration des verwendeten Referenz-Typus (MT940_REFERENCE_TYPE)

b

 

MT940Importer

Behandlung des Referenzobjekts zu einem Bankumsatz nach erfolgter Zuordnung in Methode processReference()

c

org.nuclet.mt940.logic

MT940Logic

Auslesen aller beim Import und der Zuordnung zu berücksichtigenden Referenzobjekte in Methode getReferences()

d

org.nuclet.mt940.rule

CheckBankTransactionRef

Behandlung der Referenzobjekte beim manuellen Zuordnen/Entfernen zu/von einem Bankumsatz in Methode checkReferences()

eorg.nuclet.mt940.wrapperCurrencyWrapperWrapper-Objekt für Währungen, d.h. hier wird eine Schnittstelle zur tatsächlich genutzten Währungsentität definiert
forg.nuclet.mt940.facadeCurrencyFacadeDefinition von notwendigen Datenbankzugriffen auf die tatsächlich genutzte Währungsentität

Tabelle 4: Anwendungsspezifische Anpassungen in Java-Regeln

...

Codeblock
languagejava
titleorg.nuclet.mt940.rule.CheckBankTransactionRef
/**
   * Check, if the changes done to the given bank transaction should result in further
   * changes and/or state changes of the references <code>BusinessObject</code>
   * 
   * @param context the current context
   * 
   * @throws BusinessException, in case an error or exception occurs
   */
  private void checkReferences(UpdateContext context) throws BusinessException
  {
      // @replace!
      //
      // This code segment needs to be filled with application specific behaviour.
      //
      //
  }


e) CurrencyWrapper

 

Die Klasse CurrencyWrapper dient als Nuclet-Schnittstelle zur tatsächlich genutzten Währungsentität. Der Konstruktor der Klasse und die Methode getIso4217Code() sind mit anwendungsspezifischem Verhalten zu befüllen. Letztere Methode sollte den ISO-4217-Währungscode (siehe dazu Wikipedia) des Währunsobjektes zurückliefern. Beispiele dazu sind in Kommentarblöcken angegeben; diese Beispiele sind bei der Integration also an die tatächlich genutzte Währungsentität (bzw. deren BusinessObject-Klasse) anzupassen.


Codeblock
languagejava
titleorg.nuclet.mt940.wrapper
package org.nuclet.mt940.wrapper;


import org.nuclos.api.businessobject.BusinessObject;

// @replace
//
// mit eigenem Code zu ersetzen, Beispiel:
//
// import org.nuclet.currency.Currency;


/**
 * Konkrete Wrapper-Klasse für Währungsobjekte
 * 
 */
public class CurrencyWrapper extends AbstractCurrencyWrapper 
{
    public CurrencyWrapper(final BusinessObject currency)
    {
        // @replace Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
        //
        // Beispiel:
        //
        // if (currency instanceof Currency) {
        //    this.businessObject = currency;
        // }
    }

    /**
     * Liefert die Datenbank-ID des Währungsobjektes.
     */
    public Long getId()
    {
        return this.businessObject.getId();
    }

    /**
     * Liefert den ISO-4217-Code des Währungsobjektes.
     * @see https://de.wikipedia.org/wiki/ISO_4217
     * @see https://en.wikipedia.org/wiki/ISO_4217
     */
    public String getIso4217Code()
    {
        // @replace Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
        //
        // Beispiel:
        //
        // return ((Currency)this.businessObject).getIso4217Code();

        return null;
    }
}


f) CurrencyFacade

 

 

In der Klasse CurrencyFacade muss die Methode getCurrencyByIso4217Code() mit anwendungsspezifischem Verhalten gefüllt werden. Die Methode erwartet einen ISO-4217-Währungscode (siehe Wikipedia) als Parameter und sollte ein Objekt vom Typ CurrencyWrapper (siehe Punkt e), oben) zurückgeben. Ein Beispiel dazu ist in einem Kommentarblock angegeben, dieses Beispiel ist an die tatächlich genutzte Währungsentität (bzw. deren BusinessObject-Klasse) anzupassen.


Codeblock
languagejava
titleorg.nuclet.mt940.facade.CurrencyFacade
package org.nuclet.mt940.facade;


import java.util.List;

import org.nuclos.api.businessobject.Query;
import org.nuclos.api.businessobject.QueryOperation;
import org.nuclos.api.businessobject.SearchExpression;
import org.nuclos.api.context.JobContext;
import org.nuclos.api.context.RuleContext;
import org.nuclos.api.exception.BusinessException; 
import org.nuclos.api.provider.QueryProvider;
import org.nuclos.api.provider.BusinessObjectProvider;

import org.nuclet.common.facade.AbstractFacade;
import org.nuclet.mt940.wrapper.AbstractCurrencyWrapper;

// @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
//
// Beispiel:
// 
// import org.nuclet.currency.Currency;


/**
 * Facade for Business Objects of type "Currency"
 * 
 * 
 * @version 1.0
 * @date 07.08.2013
 * @nuclet org.nuclet.MT940
 * @nucletversion 1.1.0
 * @sincenucletversion 1.1.0
 * @since 07.08.2013
 * @author frank.lehmann@nuclos.de 
 * 
 */
public class CurrencyFacade extends AbstractCurrencyFacade
{        
    private static final CurrencyFacade instance = new CurrencyFacade();        
    
    /**
     * Liefert die Singleton-Instanz dieser Klasse
     *
     */
    public static CurrencyFacade getInstance()
    {
        return instance;
    } 
    
    /**
     * Fetches the currency which determined by a given ISO 4217 code from the database
     * 
     * @param strIso4217Code the ISO 4217 code of the currency to be found
     * 
     * @return the currency which is marked as "base currency" from the database
     * @throws BusinessException, if more than one currency-objects are found 
     */
    public AbstractCurrencyWrapper getCurrencyByIso4217Code(final String strIso4217Code)
    {
        // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
        //
        // Beispiel:
        //
        // 
        // final Query<Currency> queryGetCurrency = QueryProvider.create(Currency.class);
        // queryGetCurrency.where(Currency.Iso4217Code.eq(strIso4217Code));
        //                
        // final List<Currency> lstCurrency = QueryProvider.execute(queryGetCurrency);
        //    
        // if (lstCurrency != null && lstCurrency.size() > 0) {    
        //    return new CurrencyWrapper(lstCurrency.get(0));
        // } else {
        //     return null;
        // }
        
        return null;
    }
        
}


 


Nutzung

 

Einrichten des Eingangsverzeichnisses

...