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

45
LINES

< > BotCompany Repo | #1035084 // ResolvableLASClass (is an implementation of Type)

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

Transpiled version (31176L) is out of date.

1  
persistable sclass ResolvableLASClass is IResolvableClass {
2  
  transient ILASClassLoader lasClassLoader;
3  
  LASClassDef classDef;
4  
5  
  *(ILASClassLoader *lasClassLoader, LASClassDef *classDef) {}
6  
  
7  
  public S resolveToClassName() {
8  
    ret classDef.finalClassName();
9  
  }
10  
  
11  
  Class resolvedClass() {
12  
    ret classDef.resolvedClass;
13  
  }
14  
  
15  
  public Class get aka resolveToClass() {
16  
    if (resolvedClass() == null) {
17  
      if (lasClassLoader == null)
18  
        fail("Need LASClassLoader to define " + classDef.userGivenName);
19  
      Class resolvedClass = lasClassLoader.defineLASClass(classDef.finalClassName(),
20  
        -> classDef.toBytes());
21  
      assertNotNull(+resolvedClass);
22  
        
23  
      // set resolvedClass & init static fields
24  
      classDef.init(resolvedClass);
25  
    }
26  
    
27  
    ret assertNotNull("resolvedClass", resolvedClass());
28  
  }
29  
  
30  
  // This function is very defensive (doesn't resolve anything)
31  
  toString {
32  
    if (resolvedClass() != null)
33  
      ret className(resolvedClass());
34  
    
35  
    try object userGivenName();
36  
    
37  
    if (classDef.classHash_cache != null)
38  
      ret classDef.finalClassNameWithoutPrefix();
39  
      
40  
    ret or2(userGivenName(), "script-defined class")
41  
      + " [unresolved]";
42  
  }
43  
  
44  
  S userGivenName() { ret classDef.userGivenName; }
45  
}

download  show line numbers  debug dex  old transpilations   

Travelled to 4 computer(s): bhatertpkbcr, ekrmjmnbrukm, mowyntqkapby, mqqgnosmbjvj

No comments. add comment

Snippet ID: #1035084
Snippet name: ResolvableLASClass (is an implementation of Type)
Eternal ID of this version: #1035084/20
Text MD5: 982c5f58c6619223ae2df78559a9eb5a
Author: stefan
Category: javax / left arrow script
Type: JavaX fragment (include)
Public (visible to everyone): Yes
Archived (hidden from active list): No
Created/modified: 2025-10-22 17:07:04
Source code size: 1313 bytes / 45 lines
Pitched / IR pitched: No / No
Views / Downloads: 812 / 1058
Version history: 19 change(s)
Referenced in: [show references]