Versionen im Vergleich

Schlüssel

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

...

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 (die Klassen befinden sich alle im Java-Package org.nuclet.sepa.facade):

Fassaden-KlasseAnmerkungFunktion
Java-PackageAnzupassende Methoden
Anwendungsfall
CreditorFacadeneu ab v2.0.0
DebitorFacade
  • Definition der tatsächlichen
Debitorenklasse
  • Kreditorenklasse (Kontakt, Lieferant, etc.)
  • Wrapper-Methoden
org.nuclet.sepa.facade
  • getDebitorWrapper(UpdateContext)
  • getDebitorWrapper(Modifiable)
  • getWrappedClass()
ReferenceFacade
Überweisungen
CreditorReferenceFacadeneu ab v2.0.0
  • Definition der tatsächlich verwendeten Referenzobjekte bei Überweisungen (Eingangsrechnung, Forderung, etc.)
  • Wrapper-Methoden
CreditTransferReferenceFacadeneu ab v2.0.0
  • Definition der tatsächlichen Zahlungsreferenzklasse (Rechnungsposition, Forderung, Buchung, etc.)
  • Definition von Attributen
Definition der tatsächlichen Debitorenklasse
  • Wrapper-Methoden
org.nuclet.sepa.facade
  • getReferenceWrapper(Modifiable)
  • getWrappedClass()
PaymentReferenceFacade
DebitorFacadeneu ab v2.0.0
  • Definition der tatsächlichen Debitorenklasse (Kontakt, Kunde, Mitglied, etc.)
  • Wrapper-Methoden
Lastschriften
DebitorReferenceFacadeneu ab v2.0.0
  • Definition der tatsächlichen Zahlungsreferenzklasse (Ausgangsrechnung, Forderung, etc.)
  • Definition von Attributen
  • Wrapper-Methoden
DirectDebitReferenceFacade
org
neu ab v2.
nuclet
0.
sepa.facade
  • getPaymentReferenceWrapper(Modifiable)
  • getWrappedClass()
  • getSEPAPaymentInformationAttribute()
    0
    • Definition der tatsächlich verwendeten Referenzobjekte bei Lastschriften (Rechnungsposition, Forderung, Buchung, etc.)
    • Wrapper-Methoden

    ReferenceFacade

    wird ab v2.0.0 ersetzt durch DebitorReferenceFacade

    obsolet
    • Definition der tatsächlich verwendeten Referenzobjekte
    • Wrapper-Methoden
    Lastschriften

    PaymentReferenceFacade

    wird ab v2.0.0 ersetzt durch DirectDebitReferenceFacade

    obsolet
    • Definition der tatsächlichen Zahlungsreferenzklasse
    • Definition von Attributen
    • Wrapper-Methoden

     Tabelle 4.8.2: Übersicht, Anpassungen in Fassaden-Klassen

     




    4.7.2.1

    ...

    CreditorFacade

    In der Klasse CurrencyFacade müssen die Methode getWrappedClass() und getIso4217CodeAttribute() CreditorFacade muss eine Methode implementiert werden:

    • getWrappedClass() sollte die Java-Klasse des verwendeten Währungsobjektes (bspw. org.nuclet.currency.Currency) zurückgeben
    • getIso4217CodeAttribute() sollte dasjenige Attribut des verwendeten Währungsobjektes zurückliefern, dass den ISO-4217-Code repräsentiert (bspw. prg.nuclet.currency.Currency.Iso4217Code)
    • Kreditorenobjektes zurückgeben

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

    Hinweis

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

    Codeblock
    languagejava
    Codeblock
    languagejava
    titleorg.nuclet.mt940sepa.facade.CurrencyFacadeCreditorFacade
    linenumberstrue
    collapsetrue
    package org.nuclet.mt940sepa.facade;
    
    
    import java.util.ArrayList;
    import java.util.List;
    
    import org.nuclos.api.businessobject.BusinessObject;
    import org.nuclos.api.businessobject.Queryfacade.Modifiable;
    import org.nuclos.api.businessobjectcontext.QueryOperationUpdateContext;
    import org.nuclos.api.businessobjectexception.SearchExpressionBusinessException;
    
    import org.nuclosnuclet.apisepa.businessobjectfacade.attribute.StringAttributeAbstractCreditorFacade;
    import org.nuclosnuclet.apisepa.contextwrapper.JobContextAbstractCreditorWrapper;
    import org.nuclosnuclet.apisepa.contextwrapper.RuleContext;
    import org.nuclos.api.exception.BusinessException; 
    CreditorWrapper;
    
    
    // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
    //
    // Beispiel:
    // 
    // import org.nuclosnuclet.apibusinesstemplate.provider.QueryProviderSupplier;
    import org.nuclos.api.provider.BusinessObjectProvider;
    
    import org.nuclet.common.facade.AbstractFacade;
    import
    
    
    /**
     * Facade for Business Objects of type "Creditor"
     * 
     * @version 1.0
     * @date 30.01.2015
     * @nuclet org.nuclet.SEPA
     * @nucletversion 2.0.0
     * @sincenucletversion 2.0.0
     * @since 30.01.2015
     * 
     * @author frank.lehmann@nuclos.de
     * 
     */
    public class CreditorFacade<T extends BusinessObject & Modifiable> extends AbstractCreditorFacade<T> // replace! AbstractCreditorFacade<Supplier>
    {
     private static final CreditorFacade instance = new CreditorFacade(); 
     
     
     /**
     * Liefert die Singleton-Instanz dieser Klasse
     *
     */
     public static CreditorFacade 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 AbstractCreditorWrapper getWrapper(final UpdateContext context)
     {
     return new CreditorWrapper(context.getBusinessObject(getWrappedClass())); 
     }
     
     
     /**
     * Wrap the actual reference object inside an <code>AbstractReferenceWrapper</code>
     * 
     * @param boCreditor The actual reference object
     * 
     * @return the actual reference object, wrapped inside an <code>AbstractReferenceWrapper</code>
     *
     */
     public AbstractCreditorWrapper getWrapper(final Modifiable boCreditor)
     {
     return new CreditorWrapper(boCreditor);
     }
     
     /**
     * Get the class of the actual reference objects, i.e. the class wrapped by <code>CreditorWrapper</code>
     * 
     * @return the class of the actual reference objects, i.e. the class wrapped by <code>CreditorWrapper</code>
     *
     */
     public Class<T> getWrappedClass() // @replace! public class<Supplier> getWrappedClass()
     {
     // @replace! 
     //
     // return Supplier.class;
     
     return null;
     } 
     
    }
    4.7.2.2 CreditorReferenceFacade

    In der Klasse CreditorReferenceFacade 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.

    Hinweis

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

    Codeblock
    languagejava
    firstline1
    titleorg.nuclet.sepa.facade.CreditorReferenceFacade
    linenumberstrue
    collapsetrue
    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.facade.AbstractCreditorReferenceFacade;
    import org.nuclet.sepa.wrapper.AbstractCreditorReferenceWrapper;
    import org.nuclet.sepa.wrapper.CreditorReferenceWrapper;
    
    
    // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
    // 
    // import org.nuclet.businesstemplate.SupplierBilling;
    
    
    /**
     * Facade for Business Objects of type "Creditor Reference"
     *  
     * 
     * @version 1.0
     * @date 02.02.2015
     * @nuclet org.nuclet.SEPA
     * @nucletversion 2.0.0
     * @sincenucletversion 2.0.0
     * @since 02.02.2015
     * 
     * @author frank.lehmann@nuclos.de
     * 
     */
    public class CreditorReferenceFacade<T extends BusinessObject & Modifiable> extends AbstractCreditorReferenceFacade<T> // @replace public class<ClientBilling> getWrappedClass()
    {
        private static final CreditorReferenceFacade instance = new CreditorReferenceFacade();            
        
        
        /**
         * Liefert die Singleton-Instanz dieser Klasse
         *
         */
        public static CreditorReferenceFacade getInstance()
        {mt940.wrapper.AbstractCurrencyWrapper;
    import org.nuclet.mt940.wrapper.CurrencyWrapper;
    
    // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
    //
    // Beispiel:
    // 
    // import org.nuclet.currency.Currency;
    
    
    /**
     * Facade for Business Objects of type "Currency"
     * 
     * 
     * @version 1.1
     * @date 20.02.2014
     * @nuclet org.nuclet.MT940
     * @nucletversion 1.4.0
     * @sincenucletversion 1.1.0
     * @since 07.08.2013
     * @author frank.lehmann@nuclos.de 
     * 
     */
    public class CurrencyFacade<T extends BusinessObject> extends AbstractCurrencyFacade<T>
    {        
        private static final CurrencyFacade instance = new CurrencyFacade();        
        
        /**
         * Liefert die Singleton-Instanz dieser Klasse
         *
         */
        public static CurrencyFacade getInstance()
        {
            return instance;
        }     
        
        /**
         * Wrap the actual currency objects inside an <code>AbstractCurrencyWrapper</code>
         * 
         * @return the actual currency objects, wrapped inside an <code>AbstractCurrencyWrapper</code>
         *
         */
        public AbstractCurrencyWrapper getCurrencyWrapper(final BusinessObject boCurrency)
        {
            return new CurrencyWrapper(boCurrency);
        }
        
        /**
         * Get the class of the actual currency objects, i.e. the class wrapped by <code>CurrencyWrapper</code>
         * 
         * @return the class of the actual currency objects, i.e. the class wrapped by <code>CurrencyWrapper</code>
         *
         */
        public Class<T> getWrappedClass()
        {
            // @replace! 
            //
            // return Currency.class;
            
            return null;
        }
        
        /**
         * Get the attribute <code>NuclosState</code> of the actual currency objects
         * 
         * @return the attribute <code>NuclosState</code> of the actual reference objects
         *
         */
        public StringAttribute getIso4217CodeAttribute()
        {
            // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
            //
            // Beispiel:
            //
            // Currency.Iso4217Code;
            
            return nullinstance;
        }         
    }

     

    4.7.2.2 ReferenceFacade

    In der Klasse ReferenceFacade müssen die Methode getWrappedClass() und getNuclosStateAttribute() implementiert werden:

    • getWrappedClass() sollte die Java-Klasse des verwendeten Referenzobjektes (bspw. org.nuclet.businessobject.ClientBilling) zurückgeben
    • getNuclosStateAttribute() sollte dasjenige Attribut des verwendeten Referenzobjektes zurückliefern, dass den Nuclos-Status repräsentiert

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

    Die Beschreibung zur Anpassung der beiden Methoden getSourceStates() und getDestinationStates() finden Sie im nächsten Abschnitt (4.7.3).

            
        
        /**
         * Wrap the actual reference objects inside an <code>AbstractCreditorReferenceWrapper</code>
         * 
         * @return the actual reference objects, wrapped inside an <code>AbstractCreditorReferenceWrapper</code>
         *
         */
        public AbstractCreditorReferenceWrapper getWrapper(final Modifiable boReference)
        {
            return new CreditorReferenceWrapper(boReference);
        }
        
        /**
         * Get the class of the actual reference objects, i.e. the class wrapped by <code>CreditorReferenceWrapper</code>
         * 
         * @return the class of the actual reference objects, i.e. the class wrapped by <code>CreditorReferenceWrapper</code>
         *
         */
        public Class<T> getWrappedClass() // @replace public class<SupplierBilling> getWrappedClass()
        {
            // @replace! 
            //
            // return SupplierBilling.class;
            
            return null;
        } 
            
    }


    4.7.2.3 CreditTransferReferenceFacade

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

    • getSEPATransactionIdAttribute() sollte das Attribut zurückliefern, das auf die SEPA-Transaktion 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.

    Hinweis

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

    Codeblock
    languagejava
    firstline1
    titleorg.nuclet.sepa.facade.CreditTransferReferenceFacade
    linenumberstrue
    collapsetrue
    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.facade.AbstractCreditTransferReferenceFacade;
    import org.nuclet.sepa.wrapper.AbstractCreditTransferReferenceWrapper;
    import org.nuclet.sepa.wrapper.CreditTransferReferenceWrapper;
    
    
    // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
    //
    // Beispiel:
    // 
    // import org.nuclet.businesstemplate.SupplierBillingPosition;
    
    
    /**
     * Facade for Business Objects of type "CreditTransferReference"
     * 
     * @note replaces the original class PaymentReferenceFacade
     *  
     * @version 1.0
     * @date 02.02.2015
     * @nuclet org.nuclet.SEPA
     * @nucletversion 2.0.0
     * @sincenucletversion 2.0.0
     * @since 02.02.2015
     * 
     * @author frank.lehmann@nuclos.de
     * 
     */
    public class CreditTransferReferenceFacade<T extends BusinessObject & Modifiable> extends AbstractCreditTransferReferenceFacade<T> // @replace! AbstractCreditTransferReferenceFacade<SupplierBillingPosition>
    {
        private static final CreditTransferReferenceFacade instance = new CreditTransferReferenceFacade();            
        
        
        /**
         * Liefert die Singleton-Instanz dieser Klasse
         *
         */
        public static CreditTransferReferenceFacade getInstance()
        {
            return instance;
        }                 
        
        /**
         * Wrap the actual payment reference objects inside an <code>AbstractCreditTransferReferenceWrapper</code>
         * 
         * @return the actual payment reference objects, wrapped inside an <code>AbstractCreditTransferReferenceWrapper</code>
         *
         */
        public AbstractCreditTransferReferenceWrapper getWrapper(final Modifiable boDirectDebitReference)
        {
            return new CreditTransferReferenceWrapper(boDirectDebitReference);
        }
        
        /**
         * Get the class of the actual payment reference objects, i.e. the class wrapped by <code>CreditTransferReferenceWrapper</code>
         * 
         * @return the class of the actual payment reference objects, i.e. the class wrapped by <code>CreditTransferReferenceWrapper</code>
         *
         */
        public Class<T> getWrappedClass() // @replace! public Class<SupplierBillingPosition> getWrappedClass()
        {
            // @replace! 
            //
            // return SupplierBillingPosition.class;
            
            return null;
        } 
        
        /**
         * Get the attribue, that identifies the SEPA transaction
         * 
         * @return the attribue, that identifies the SEPA transaction
         *
         */
        protected ForeignKeyAttribute<Long> getSEPATransactionIdAttribute()
        {
            // @replace!
            //
            // return SupplierBillingPosition.SEPATransactionId;
            
            return null;
        }
            
    }


    4.7.2.4 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.

    Hinweis

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

    Codeblock
    languagejava
    titleorg.nuclet.sepa.facade.DebitorFacade
    linenumberstrue
    collapsetrue
    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.facade.AbstractDebitorFacade;
    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.1.4
     * @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 getWrapper(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 getWrapper(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
    Codeblock
    languagejava
    titleorg.nuclet.mt940.facade.ReferenceFacade
    linenumberstrue
    collapsetrue
    package org.nuclet.mt940.facade;
    
    
    import java.util.ArrayList;
    import java.util.List;
    
    import org.nuclos.api.businessobject.BusinessObject;
    import org.nuclos.api.businessobject.Query;
    import org.nuclos.api.businessobject.QueryOperation;
    import org.nuclos.api.businessobject.SearchExpression;
    import org.nuclos.api.businessobject.attribute.PrimaryKeyAttribute;
    import org.nuclos.api.businessobject.facade.Stateful;
    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.nuclos.api.statemodel.State;
    
    import org.nuclet.common.facade.AbstractFacade;
    
    import org.nuclet.mt940.statemodel.ReferenceStatemodel;
    import org.nuclet.mt940.wrapper.AbstractReferenceWrapper;
    import org.nuclet.mt940.wrapper.ReferenceWrapper;
    
    // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
    //
    // Beispiel:
    // 
    // import org.nuclet.businesstemplate.ClientBilling;
    
    
    /**
     * Facade for Business Objects of type "Reference"
     * 
     * 
     * @version 1.1
     * @date 20.02.2014
     * @nuclet org.nuclet.MT940
     * @nucletversion 1.4.0
     * @sincenucletversion 1.2.0
     * @since 20.09.2013
     * @author frank.lehmann@nuclos.de 
     * 
     */
    public class ReferenceFacade<T extends BusinessObject & Stateful> extends AbstractReferenceFacade<T>
    {
        private static final ReferenceFacade instance = new ReferenceFacade();            
        
        
        /**
         * Liefert die Singleton-Instanz dieser Klasse
         *
         */
        public static ReferenceFacade getInstance()
        {
            return instance;// @replace! 
        }    //
            // return Client.class;
            
         
       return null;
        /**} 
          * Liefert eine Liste von Quellzuständen zum gegebenen Statuswechsel.
         * 
         * @param stateChange Der Statuswechsel, repräsentiert durch ein Objekt vom Typ <code>StateChange</code>.
         * 
         * @return eine Liste von Quellzuständen zum gegebenen Statuswechsel
         * 
         */
        public List<State> getSourceStates(final ReferenceStatemodel.StateChange stateChange)
        {
            final List<State> lstSourceStates = new ArrayList<State>();
            
            switch (stateChange) {        
                case PaymentReceived:
                    // @replace Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
                    //
                    // Beispiel:
                    //
                    // lstSourceStateIds.add(ProcessClientBillingSM.State_AB);
                    // lstSourceStateIds.add(ProcessClientBillingSM.State_XY);
                
                    break;
                default:
                    break;
            }
            
            return lstSourceStates;
        }
        
        /**
         * Liefert den Zielzustand zum gegebenen Statuswechsel.
         * 
         * @param stateChange Der Statuswechsel, repräsentiert durch ein Objekt vom Typ <code>StateChange</code>.
         * 
         * @return der Zielzustand von Quellzuständen zum gegebenen Statuswechsel
         * 
         */
        public State getDestinationState(final ReferenceStatemodel.StateChange stateChange)
        {
            switch (stateChange) {        
                case PaymentReceived:
                    // @replace 
    }
    4.7.2.5 DebitorReferenceFacade

    In der Klasse DebitorReferenceFacade 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.

    Hinweis

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

    Codeblock
    languagejava
    titleorg.nuclet.sepa.facade.DebitorReferenceFacade
    linenumberstrue
    collapsetrue
    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.AbstractDebitorReferenceWrapper;
    import org.nuclet.sepa.wrapper.DebitorReferenceWrapper;
    
    
    // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
    // 
    // import org.nuclet.businesstemplate.ClientBilling;
    
    
    /**
     * Facade for Business Objects of type "Debitor Reference"
     * 
     * @note replaces the original class ReferenceFacade
     * 
     * @version 1.0
     * @date 30.01.2015
     * @nuclet org.nuclet.SEPA
     * @nucletversion 2.0.0
     * @sincenucletversion 2.0.0
     * @since 30.01.2015
     * 
     * @author frank.lehmann@nuclos.de
     * 
     */
    public class DebitorReferenceFacade<T extends BusinessObject & Modifiable> extends AbstractDebitorReferenceFacade<T> // @replace public class<ClientBilling> getWrappedClass()
    {
     private static final DebitorReferenceFacade instance = new DebitorReferenceFacade(); 
     
     
     /**
     * Liefert die Singleton-Instanz dieser Klasse
     *
     */
     public static DebitorReferenceFacade getInstance()
     {
     return instance;
     } 
     
     /**
     * Wrap the actual reference objects inside an <code>AbstractDebitorReferenceWrapper</code>
     * 
     * @return the actual reference objects, wrapped inside an <code>AbstractDebitorReferenceWrapper</code>
     *
     */
     public AbstractDebitorReferenceWrapper getWrapper(final Modifiable boReference)
     {
     return new DebitorReferenceWrapper(boReference);
     }
     
     /**
     * Get the class of the actual reference objects, i.e. the class wrapped by <code>DebitorReferenceWrapper</code>
     * 
     * @return the class of the actual reference objects, i.e. the class wrapped by <code>DebitorReferenceWrapper</code>
     *
     */
     public Class<T> getWrappedClass() // @replace public class<ClientBilling> getWrappedClass()
     {
     // @replace! 
     //
     // return ClientBilling.class;
     
     return null;
     } 
     
    }
    4.7.2.6 DirectDebitReferenceFacade

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

    • getSEPATransactionIdAttribute() sollte das Attribut zurückliefern, das auf die SEPA-Transaktion 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.

    Hinweis

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

    Codeblock
    languagejava
    titleorg.nuclet.sepa.facade.DirectDebitReferenceFacade
    linenumberstrue
    collapsetrue
    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.facade.AbstractDirectDebitReferenceFacade;
    import org.nuclet.sepa.wrapper.AbstractDirectDebitReferenceWrapper;
    import org.nuclet.sepa.wrapper.DirectDebitReferenceWrapper;
    
    
    // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
                    //
    // Beispiel:
    // 
    // import org.nuclet.businesstemplate.ClientBillingPosition;
    
    
    /**
     * Facade for Business Objects of type "DirectDebitReference"
     *   // Beispiel:
     * @note replaces the original class PaymentReferenceFacade
     *  
     * @version 1.0
     *  //@date 30.01.2015
     * @nuclet org.nuclet.SEPA
     * @nucletversion 2.0.0
     * @sincenucletversion 2.0.0
     * @since 30.01.2015
     * 
     * // return ProcessClientBillingSM.State_ZZ;
                    //
             @author frank.lehmann@nuclos.de
     * 
     */
    public class DirectDebitReferenceFacade<T extends BusinessObject & Modifiable> extends AbstractDirectDebitReferenceFacade<T> // @replace! AbstractPaymentReferenceFacade<ClientBillingPosition>
    {
        private static final DirectDebitReferenceFacade instance = new DirectDebitReferenceFacade();       
         
        
        
       return null; /**
         * Liefert die Singleton-Instanz dieser Klasse
          *
         */
        public static DirectDebitReferenceFacade default:getInstance()
        {
                return nullinstance;
        }     }
            
        }
        
        /**
         * Wrap the actual payment reference objects inside an <code>AbstractReferenceWrapper<<code>AbstractDirectDebitReferenceWrapper</code>
         * 
         * @return the actual payment reference objects, wrapped inside an <code>AbstractReferenceWrapper</code>
         *
         */
        public AbstractReferenceWrapper getReferenceWrapper(final BusinessObject boReference)
        {
            // @replace! 
       <code>AbstractDirectDebitReferenceWrapper</code>
         *
         /*/
        public AbstractDirectDebitReferenceWrapper getWrapper(final  // return new ReferenceWrapper(boReference);Modifiable boDirectDebitReference)
            {
            return new ReferenceWrapperDirectDebitReferenceWrapper(boReferenceboDirectDebitReference);
        }
        
        /**
         * Get the class of the actual payment reference objects, i.e. the class wrapped by <code>ReferenceWrapper<<code>DirectDebitReferenceWrapper</code>
         * 
         * @return the class of the actual payment reference objects, i.e. the class wrapped by <code>ReferenceWrapper<<code>DirectDebitReferenceWrapper</code>
         *
         */
        public Class<T> getWrappedClass() // @replace! public Class<ClientBillingPosition> getWrappedClass()
        {
            // @replace! 
            //
            // return ClientBillingClientBillingPosition.class;
            
            return null;
        } 
        
        /**
         * Get the attribute <code>NuclosState</code> ofattribue, that identifies the actual referenceSEPA objectstransaction
         * 
         * @return the attribute <code>NuclosState</code> ofattribue, that identifies the actualSEPA reference objectstransaction
         *
         */
        publicprotected PrimaryKeyAttribute<State>ForeignKeyAttribute<Long> getNuclosStateAttributegetSEPATransactionIdAttribute()
        {
            // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
            //
            // Beispiel:
            //
            // ClientBilling.NuclosStatereturn ClientBillingPosition.SEPAPaymentInformation;
            
            return null;
        }
            
    }