Not logged in.  Login/Logout/Register | List snippets | | Create snippet | Upload image | Upload data

58
LINES

< > BotCompany Repo | #1027846 // test_tok_eventFunctions

JavaX fragment (include) [tags: use-pretranspiled]

Transpiled version (8055L) is out of date.

1  
svoid test_tok_eventFunctions() {
2  
  // no args
3  
  testTranspilationFunction tok_eventFunctions(
4  
    "event blubb;", [[
5  
      transient Set<Runnable> onBlubb;
6  
      public selfType onBlubb(Runnable r) { onBlubb = createOrAddToSyncLinkedHashSet(onBlubb, r); this; }
7  
      public selfType removeBlubbListener(Runnable r) { main remove(onBlubb, r); this; }
8  
      public void blubb() { if (onBlubb != null) for (listener : onBlubb) pcallF_typed(listener); }
9  
    ]]);
10  
    
11  
  // with args
12  
  testTranspilationFunction tok_eventFunctions(
13  
    "event newX(X x);", [[
14  
      transient Set<IVF1<X>> onNewX;
15  
      public selfType onNewX(IVF1<X> f) { onNewX = createOrAddToSyncLinkedHashSet(onNewX, f); this; }
16  
      public selfType removeNewXListener(IVF1<X> f) { main remove(onNewX, f); this; }
17  
      public void newX(X x) { if (onNewX != null) for (listener : onNewX) pcallF_typed(listener, x); }
18  
    ]]);
19  
    
20  
  // "on" prefix handled correctly
21  
  testTranspilationFunction tok_eventFunctions(
22  
    "event onBlubb;", [[
23  
      transient Set<Runnable> onBlubb;
24  
      public selfType onBlubb(Runnable r) { onBlubb = createOrAddToSyncLinkedHashSet(onBlubb, r); this; }
25  
      public selfType removeBlubbListener(Runnable r) { main remove(onBlubb, r); this; }
26  
      public void blubb() { if (onBlubb != null) for (listener : onBlubb) pcallF_typed(listener); }
27  
    ]]);
28  
    
29  
  // "fire" prefix handled correctly
30  
  testTranspilationFunction tok_eventFunctions(
31  
    "event fireBlubb;", [[
32  
      transient Set<Runnable> onBlubb;
33  
      public selfType onBlubb(Runnable r) { onBlubb = createOrAddToSyncLinkedHashSet(onBlubb, r); this; }
34  
      public selfType removeBlubbListener(Runnable r) { main remove(onBlubb, r); this; }
35  
      public void fireBlubb() { if (onBlubb != null) for (listener : onBlubb) pcallF_typed(listener); }
36  
    ]]);
37  
    
38  
  // firing functions can now have a body
39  
  testTranspilationFunction tok_eventFunctions(
40  
    "event newX(X x) { bla; }", [[
41  
      transient Set<IVF1<X>> onNewX;
42  
      public selfType onNewX(IVF1<X> f) { onNewX = createOrAddToSyncLinkedHashSet(onNewX, f); this; }
43  
      public selfType removeNewXListener(IVF1<X> f) { main remove(onNewX, f); this; }
44  
      public void newX(X x) { bla; if (onNewX != null) for (listener : onNewX) pcallF_typed(listener, x); }
45  
    ]]);
46  
  
47  
  // static event
48  
  testTranspilationFunction tok_eventFunctions(
49  
    "static event blubb;", [[
50  
      static transient Set<Runnable> onBlubb;
51  
      public static selfType onBlubb(Runnable r) { onBlubb = createOrAddToSyncLinkedHashSet(onBlubb, r); this; }
52  
      public static selfType removeBlubbListener(Runnable r) { main remove(onBlubb, r); this; }
53  
      public static void blubb() { if (onBlubb != null) for (listener : onBlubb) pcallF_typed(listener); }
54  
    ]]);
55  
    
56  
  S s = "void event aka setEvent() {}";
57  
  testTranspilationFunction tok_eventFunctions(s, s);
58  
}

Author comment

Began life as a copy of #1025409

download  show line numbers  debug dex  old transpilations   

Travelled to 9 computer(s): bhatertpkbcr, ekrmjmnbrukm, mowyntqkapby, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tvejysmllsmz, vouqrxazstgt, xrpafgyirdlv

No comments. add comment

Snippet ID: #1027846
Snippet name: test_tok_eventFunctions
Eternal ID of this version: #1027846/21
Text MD5: a74166140c506b1993bcb03dfd226077
Author: stefan
Category: javax / transpiling
Type: JavaX fragment (include)
Public (visible to everyone): Yes
Archived (hidden from active list): No
Created/modified: 2022-11-26 17:55:17
Source code size: 2912 bytes / 58 lines
Pitched / IR pitched: No / No
Views / Downloads: 208 / 464
Version history: 20 change(s)
Referenced in: [show references]