in my project i have to implements some annotations specifying a set of data type and the operation i can do on them.
After this i have to annotate some classes of my models package, specifying in that way what type of operation i can to on this class.
Eventually, at compile time, i have to parse the class with annotated field and build a new model representing the class and each operation i can do on its properties.
I was wondering what if the way i listed below could be a correct way to do this:
For example:
public @interface MySearchableType1 {         
    enum operations{
         EQUAL,
         NOT_EQUAL,
         LIKE,
         NOT_LIKE,
         IN,
         NOT_IN     
    }        
 }
public @interface MySearchableType2 {
    enum operations{
        EQUAL,
        NOT_EQUAL               
    }        
}
public class MyClass {
    public String name;
    @MySearchableType1
    public String property1;
    @MySearchableType2
    public String property2;
}
the final product should be something like this:
public class MyModelClass{
     public Map<String, String[]> property1 = new HasMap<String,String[]>();
    property1.put("property1", ["EQUAL", "NOT_EQUAL", "LIKE", "NOT_LIKE", "IN", "NOT_IN"]); 
    public Map<String, String[]> property2 = new HasMap<String,String[]>();
    property2.put("property21", ["EQUAL", "NOT_EQUAL"]);
}
What can i use to reach my target? Is it possible to obtain instanced .class file like the one i wrote maybe using spring? Can you give me an example?
                        
https://deors.wordpress.com/2011/10/08/annotation-processors/
How to generate code dynamically with annotations at build time in Java?
Could be an answer