Sie zeigen eine alte Version dieser Seite an. Zeigen Sie die aktuelle Version an.

Unterschiede anzeigen Seitenhistorie anzeigen

« Vorherige Version anzeigen Version 12 Nächste Version anzeigen »

Das SEPA-Nuclet arbeitet mit Wrapper-Objekte anstelle der nur dem Zielnuclet bekannten BusinessObjects (siehe Abschnitt 4.8.1). Daher muss bei der Integration des SEPA-Nuclets dafür gesorgt werden, dass gewisse Datenbankzugriffe auf den tatsächlich genutzten Businessobjekte operieren können. D.h. die verwendeten Klassen und Attributnamen müssen bekannt sein. Die Bereitstellung erfolgt über businessobjektbezogene Fassaden.

Außerdem stellen die Fassaden Wrapper-Methoden bereit, die die tatsächlich verwendeten Businessobjekte auf die in Abschnitt 4.8.1. definierten Wrapper-Objekte umwandeln. Diese Methoden sind von Ihnen im Normalfall nicht anzupassen, sofern Sie die Wrapper-Klassen aus dem SEPA-Nuclet verwenden.

Bei der Anbindung des SEPA-Nuclets sind die folgende Fassadenklassen für Debitoren, Referenzen und Zahlungsreferenzen anzupassen:

Fassaden-KlasseFunktionJava-Package
DebitorFacade
  • Definition der tatsächlichen Debitorenklasse
  • Wrapper-Methoden
org.nuclet.sepa.facade
ReferenceFacade
  • Definition der tatsächlichen Klasse für Referenzobjekte
  • Wrapper-Methoden
org.nuclet.sepa.facade
PaymentReferenceFacade
  • Definition der tatsächlichen Zahlungsreferenzklasse
  • Definition von Attributen
  • Wrapper-Methoden
org.nuclet.sepa.facade

Tabelle 4.8.2: Übersicht, Anpassungen in Fassaden-Klassen

 

 

4.7.2.1 DebitorFacade

In der Klasse DebitorFacade muss eine Methode implementiert werden:

  • getWrappedClass() sollte die Java-Klasse des verwendeten Debitorenobjektes zurückgeben

Ein Beispiel dazu ist jeweils in einem Kommentarblock angegeben, dieses Beispiel ist an das tatsächlich genutzte Debitorenbusinessobjekt (bzw. dessen BusinessObject-Klasse) anzupassen.

Bitte beachten Sie außerdem, dass das generische "<T>" in den Zeilen 36 und 84 entsprechend ersetzt werden muss.

org.nuclet.sepa.facade.DebitorFacade
package org.nuclet.sepa.facade;


import java.util.ArrayList;
import java.util.List;

import org.nuclos.api.businessobject.BusinessObject;
import org.nuclos.api.businessobject.facade.Modifiable;
import org.nuclos.api.context.UpdateContext;
import org.nuclos.api.exception.BusinessException;

import org.nuclet.sepa.wrapper.AbstractDebitorWrapper;
import org.nuclet.sepa.wrapper.DebitorWrapper;


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


/**
 * Facade for Business Objects of type "Debitor"
 *  
 * @version 1.0
 * @date 21.03.2014
 * @nuclet org.nuclet.SEPA
 * @nucletversion 1.0.0
 * @sincenucletversion 1.0.0
 * @since 21.03.2014
 * 
 * @author frank.lehmann@nuclos.de
 * 
 */
public class DebitorFacade<T extends BusinessObject & Modifiable> extends AbstractDebitorFacade<T> // replace! AbstractDebitorFacade<Client>
{
    private static final DebitorFacade instance = new DebitorFacade();            
    
    
    /**
     * Liefert die Singleton-Instanz dieser Klasse
     *
     */
    public static DebitorFacade getInstance()
    {
        return instance;
    }                 
    
    /**
     * Wrap the context's actual reference objects inside an <code>AbstractReferenceWrapper</code>
     * 
     * @param context A given <code>UpdateContext</code>
     * 
     * @return the context's actual reference object, wrapped inside an <code>AbstractReferenceWrapper</code>
     *
     */
    public AbstractDebitorWrapper getDebitorWrapper(final UpdateContext context)
    {
        return new DebitorWrapper(context.getBusinessObject(getWrappedClass()));                
    }
    
    
    /**
     * Wrap the actual reference object inside an <code>AbstractReferenceWrapper</code>
     * 
     * @param boDebitor The actual reference object
     * 
     * @return the actual reference object, wrapped inside an <code>AbstractReferenceWrapper</code>
     *
     */
    public AbstractDebitorWrapper getDebitorWrapper(final Modifiable boDebitor)
    {
        return new DebitorWrapper(boDebitor);
    }
    
    /**
     * Get the class of the actual reference objects, i.e. the class wrapped by <code>DebitorWrapper</code>
     * 
     * @return the class of the actual reference objects, i.e. the class wrapped by <code>DebitorWrapper</code>
     *
     */
    public Class<T> getWrappedClass() // @replace! public class<Client> getWrappedClass()
    {
        // @replace! 
        //
        // return Client.class;
        
        return null;
    } 
        
}
4.7.2.2 ReferenceFacade

In der Klasse ReferenceFacade muss ebenfalls nur eine Methode implementiert werden:

  • getWrappedClass() sollte die Java-Klasse des verwendeten Referenzobjektes zurückgeben

Ein Beispiel dazu ist jeweils in einem Kommentarblock angegeben, dieses Beispiel ist an das tatsächlich genutzte Referenzbusinessobjekt (bzw. dessen BusinessObject-Klasse) anzupassen.

Bitte beachten Sie außerdem, dass das generische "<T>" in den Zeilen 33 und 65 entsprechend ersetzt werden muss.

org.nuclet.sepa.facade.ReferenceFacade
package org.nuclet.sepa.facade;


import java.util.ArrayList;
import java.util.List;

import org.nuclos.api.businessobject.BusinessObject;
import org.nuclos.api.businessobject.facade.Modifiable;
import org.nuclos.api.exception.BusinessException; 

import org.nuclet.sepa.wrapper.AbstractReferenceWrapper;
import org.nuclet.sepa.wrapper.ReferenceWrapper;


// @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
// 
// import org.nuclet.businesstemplate.ClientBilling;


/**
 * Facade for Business Objects of type "Reference"
 *  
 * @version 1.0
 * @date 21.03.2014
 * @nuclet org.nuclet.SEPA
 * @nucletversion 1.0.0
 * @sincenucletversion 1.0.0
 * @since 21.03.2014
 * 
 * @author frank.lehmann@nuclos.de
 * 
 */
public class ReferenceFacade<T extends BusinessObject & Modifiable> extends AbstractReferenceFacade<T> // @replace public class<ClientBilling> getWrappedClass()
{
    private static final ReferenceFacade instance = new ReferenceFacade();            
    
    
    /**
     * Liefert die Singleton-Instanz dieser Klasse
     *
     */
    public static ReferenceFacade getInstance()
    {
        return instance;
    }                 
    
    /**
     * Wrap the actual reference objects inside an <code>AbstractReferenceWrapper</code>
     * 
     * @return the actual reference objects, wrapped inside an <code>AbstractReferenceWrapper</code>
     *
     */
    public AbstractReferenceWrapper getReferenceWrapper(final Modifiable boReference)
    {
        return new ReferenceWrapper(boReference);
    }
    
    /**
     * Get the class of the actual reference objects, i.e. the class wrapped by <code>ReferenceWrapper</code>
     * 
     * @return the class of the actual reference objects, i.e. the class wrapped by <code>ReferenceWrapper</code>
     *
     */
    public Class<T> getWrappedClass() // @replace public class<ClientBilling> getWrappedClass()
    {
        // @replace! 
        //
        // return ClientBilling.class;
        
        return null;
    } 
        
}

 

4.7.2.3 PaymentReferenceFacade

In der Klasse PaymentReferenceFacade müssen zwei Methoden implementiert werden:

  • getSEPAPaymentInformationAttribute() sollte das Attribut zurückliefern, das auf die SEPA-Zahlungsinformationen referenziert
  • getWrappedClass() sollte die Java-Klasse des verwendeten Zahlungsreferenzobjektes zurückgeben

Ein Beispiel dazu ist jeweils in einem Kommentarblock angegeben, dieses Beispiel ist an das tatsächlich genutzte Zahlungsreferenzbusinessobjekt (bzw. dessen BusinessObject-Klasse) anzupassen.

Bitte beachten Sie außerdem, dass das generische "<T>" in den Zeilen 36 und 67 entsprechend ersetzt werden muss.

org.nuclet.sepa.facade.PaymentReferenceFacade
package org.nuclet.sepa.facade;


import java.util.ArrayList;
import java.util.List;

import org.nuclos.api.businessobject.BusinessObject;
import org.nuclos.api.businessobject.facade.Modifiable;
import org.nuclos.api.businessobject.attribute.ForeignKeyAttribute;
import org.nuclos.api.exception.BusinessException; 

import org.nuclet.sepa.wrapper.AbstractPaymentReferenceWrapper;
import org.nuclet.sepa.wrapper.PaymentReferenceWrapper;


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


/**
 * Facade for Business Objects of type "PaymentReference"
 *  
 * @version 1.0
 * @date 21.03.2014
 * @nuclet org.nuclet.SEPA
 * @nucletversion 1.0.0
 * @sincenucletversion 1.0.0
 * @since 21.03.2014
 * 
 * @author frank.lehmann@nuclos.de
 * 
 */
public class PaymentReferenceFacade<T extends BusinessObject & Modifiable> extends AbstractPaymentReferenceFacade<T> // @replace! AbstractPaymentReferenceFacade<ClientBillingPosition>
{
    private static final PaymentReferenceFacade instance = new PaymentReferenceFacade();            
    
    
    /**
     * Liefert die Singleton-Instanz dieser Klasse
     *
     */
    public static PaymentReferenceFacade getInstance()
    {
        return instance;
    }                 
    
    /**
     * Wrap the actual payment reference objects inside an <code>AbstractPaymentReferenceWrapper</code>
     * 
     * @return the actual payment reference objects, wrapped inside an <code>AbstractPaymentReferenceWrapper</code>
     *
     */
    public AbstractPaymentReferenceWrapper getPaymentReferenceWrapper(final Modifiable boPaymentReference)
    {
        return new PaymentReferenceWrapper(boPaymentReference);
    }
    
    /**
     * Get the class of the actual payment reference objects, i.e. the class wrapped by <code>PaymentReferenceWrapper</code>
     * 
     * @return the class of the actual payment reference objects, i.e. the class wrapped by <code>PaymentReferenceWrapper</code>
     *
     */
    public Class<T> getWrappedClass() // @replace! public Class<ClientBillingPosition> getWrappedClass()
    {
        // @replace! 
        //
        // return ClientBillingPosition.class;
        
        return null;
    } 
    
    /**
     * Get the attribue, that identifies the SEPA payment information
     * 
     * @return the attribue, that identifies the SEPA payment information
     *
     */
    protected ForeignKeyAttribute<Long> getSEPAPaymentInformationAttribute()
    {
        // @replace!
        //
        // return ClientBillingPosition.SEPAPaymentInformation;
        
        return null;
    }
        
}

 

 

  • Keine Stichwörter