package com.github.geequery.codegen.ast; import java.lang.annotation.Annotation; import java.util.HashMap; import java.util.Map; public class JavaAnnotation implements JavaElement{ String name; Map<String,Object> properties=new HashMap<String,Object>(); public JavaAnnotation(Class<? extends Annotation> clz){ this.name=clz.getName(); } public JavaAnnotation(String name){ } public String getName() { return name; } public void setName(String name) { this.name = name; } public Map<String, Object> getProperties() { return properties; } public void setProperties(Map<String, Object> properties) { this.properties = properties; } public void put(String key,Object value){ properties.put(key, value); } public String toCode(JavaUnit main) { StringBuilder sb=new StringBuilder(); sb.append("@").append(main.getJavaClassName(name)); if(properties.size()>0){ sb.append("("); int n=0; for(String key: properties.keySet()){ Object v=properties.get(key); if(v==null)continue; if(n>0)sb.append(","); sb.append(key).append("="); if(v instanceof CharSequence){ sb.append("\"").append((String)v).append("\""); }else{ sb.append(String.valueOf(v)); } n++; } sb.append(")"); } return sb.toString(); } public void buildImport(JavaUnit javaUnit) { } }