Interface.Stateless

Java, Groovy, Python, JavaScript und TypeScript

ide.<Programmiersprache>.Interface.Stateless = true | false | xxx (default=false)

True | False

Mit dem Wert true wird das Interface stateless und generisch, d.h. zu­stands­los und typisiert, ge­ne­riert und dieser Typ ist dann auch ein zu­sätz­licher Parameter in den Methoden und in der Execute-Methode des Regel­moduls:

Eintrag in einer LFET.Pro­ject.ini-Datei:
ide.Java.Interface.Stateless = true
Eintrag in einer LFET.Project.yaml-Datei:
ide.Java:
  Enabled: true

  Interface:
    Stateless: true
Beispiel für ein generiertes Java-Interface und Regel­modul mit diesem Parameter:
interface ZahlungswegeOnlineshop_Iface<T>
{
  boolean isBestellwert_Gering(T model);
  boolean isBestellwert_Normal(T model);
class ZahlungswegeOnlineshop_RulesEngine
{
  <T> void execute(ZahlungswegeOnlineshop_Iface iface, T model)
  {
    if (iface.isBestellwert_Gering(model) )
    {
      if (iface.isRegionInnerhalbVonDeutschland_Nord(model) )
      {
        iface.doKreditkarteDPunktVISA_VISA(model);
        iface.doOnlineDPunktPaypal_Paypal(model);
        iface.doOnlineDPunktSofortueberweisungPunktDe_Sofort(model);
        iface.doLastschriftverfahren_LSV(model);
      }
Zum Vergleich dasselbe Java-Interface und Regel­modul ohne diesen Parameter:
interface ZahlungswegeOnlineshop_Iface
{
  booleanisBestellwert_Gering();
  booleanisBestellwert_Normal();
class ZahlungswegeOnlineshop_RulesEngine
{
  void execute(ZahlungswegeOnlineshop_Ifaceiface)
  {
    if(iface.isBestellwert_Gering() )
    {
      if (iface.isRegionInnerhalbVonDeutschland_Nord() )
      {
        iface.doKreditkarteDPunktVISA_VISA();
        iface.doOnlineDPunktPaypal_Paypal();
        iface.doOnlineDPunktSofortueberweisungPunktDe_Sofort();
        iface.doLastschriftverfahren_LSV();
      }

Bounded Type

ide.<Programmiersprache>.Interface.Stateless = boundedType

Mit einem Wert ungleich true oder false wird das Interface stateless und generisch mit bounded Type ge­ne­riert:

ide.Java.Interface.Stateless = package.MyType
Beispiel für ein generiertes Java-Interface und Regel­modul mit diesem Parameter:
interface ZahlungswegeOnlineshop_Iface<T extends package.MyType>
{
  public boolean isBestellwert_Gering(T model);
  public boolean isBestellwert_Normal(T model);
class ZahlungswegeOnlineshop_RulesEngine
{
  <T extends package.MyType> void execute(ZahlungswegeOnlineshop_Iface iface, T model)
  {
    if (iface.isBestellwert_Gering(model) )
    {
      if (iface.isRegionInnerhalbVonDeutschland_Nord(model) )
      {
        iface.doKreditkarteDPunktVISA_VISA(model);
        iface.doOnlineDPunktPaypal_Paypal(model);
        iface.doOnlineDPunktSofortueberweisungPunktDe_Sofort(model);
        iface.doLastschriftverfahren_LSV(model);
      }