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

32
LINES

< > BotCompany Repo | #1002534 // Has Default Constructor Bot

JavaX source code [tags: use-pretranspiled] - run with: x30.jar

Libraryless. Click here for Pure Java version (3069L/20K/66K).

!752

!include #1002529 // Explain

answer {
  if "does this class have a default constructor: *" exceptionToUser {
   S java = m.unq(0);
    Explain explain = jExplainFull(java, "source");

    // make sure it's actually a class declaration
    //assertTrue("Bad class: " + explain.className(), litlist("classdecl", "emptyclass").contains(explain.className()));
    
    // go to class declaration instead
    Explain e2 = explain.findFirst("classdecl");
    if (e2 == null)
      ret "oops " + structure(explain);
    explain = e2;
    
    L<Explain> ctors = explain.findAll2("constructordecl");
    
    if (empty(ctors)) ret "Yes - an invisible one.";
    
    for (Explain ctor : ctors) {
      Explain args = ctor.findFirst("argsdecl2");
      if (args.findFirst("argsdecl") != null) // has arguments - not the default constructor
        continue;
      ret "Yes.";
    }
    
    ret "No.";
  }
}

Author comment

Began life as a copy of #1002532

download  show line numbers  debug dex  old transpilations   

Travelled to 13 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, gwrvuhgaqvyk, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt

No comments. add comment

Snippet ID: #1002534
Snippet name: Has Default Constructor Bot
Eternal ID of this version: #1002534/1
Text MD5: ab5c01fb757a961fd9d17ca4f7f32226
Transpilation MD5: df56e82046c8294070b53cc5e9823085
Author: stefan
Category: eleu / thinking about javax
Type: JavaX source code
Public (visible to everyone): Yes
Archived (hidden from active list): No
Created/modified: 2016-02-02 03:21:26
Source code size: 936 bytes / 32 lines
Pitched / IR pitched: No / No
Views / Downloads: 567 / 987
Referenced in: [show references]