phax / jcodemodel

A heavily extended fork of the com.sun.codemodel (from 2013/09)
Other
93 stars 34 forks source link

Inner Class #88

Closed robertomorati closed 3 years ago

robertomorati commented 3 years ago

Hi @phax

Could you help me with another issue?

How to create an Inner class with my scenario, follow (?):

public class Foo extends  RuntimeException {​​​​​
  public static class InnerFoo extends Foo{​​​​​

  }​​​​​
}​​​​​

Thank you so much,

phax commented 3 years ago

The unit test https://github.com/phax/jcodemodel/blob/master/src/test/java/com/helger/jcodemodel/InnerClassFuncTest.java is your friend here. The outcome of this test is:

package org.test;

public class DaTestClass {

    public DaTestClass.Inner getInner() {
    }

    public DaTestClass.Inner.InnerInner getInnerInner() {
    }

    public DaTestClassInner getInner2() {
    }

    public DaTestClassInner.Inner2 getInner2Inner() {
    }

    public class DaTestClassInner {

        public class Inner2 {
        }
    }

    public class Inner {

        public class InnerInner {
        }
    }
}

and

package org.test;

import org.test.DaTestClass.DaTestClassInner;

public class OtherClass {

    public DaTestClass.Inner getInner() {
    }

    public DaTestClass.Inner.InnerInner getInnerInner() {
    }

    public DaTestClassInner.Inner2 getInner2Inner() {
    }

    public DaTestClass getOuter() {
    }
}

Happy coding

glelouet commented 3 years ago

Is there a FAQ ? Or a example project to let people have a glance at those use cases ?

Many cases I was wondering how to do some specific thing, like create an enum with abstract method, etc.

phax commented 3 years ago

No, there is no Wiki yet. I could create one, but would need input from the community but I don't have the resources to provide the full content on my own. So if there are some volunteers that would help :)

phax commented 3 years ago

@glelouet I started at https://github.com/phax/jcodemodel/wiki/How-Tos - I hope this approximately what you were looking for

glelouet commented 3 years ago

you rock :)

glelouet commented 3 years ago

can you make a second project, phax/jcodemodel-examples ? Should be a pom. that way we can make examples in the example1/src/main/java and they will be automatically compiled to example1/src/generated/java. This is, to avoid having a huge page of examples. Instead you just link those examples source and generated files ; also this way the code will be always up to date as long as the jcodemodel-examples is redeployed.

phax commented 3 years ago

Well it has pros and cons - when linking to the examples, than it means, that the code is not visible on a single page - than you need to jump back and forth. On the other hand when having a test project that means, that we can always verify the examples are compiling. Hmmm....

glelouet commented 3 years ago

your choice, just a suggestion.