类 com.sun.codemodel.JEnumConstant 源码实例Demo

下面列出了怎么用 com.sun.codemodel.JEnumConstant 的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: apicurio-studio   文件: JaxRsEnumRule.java

private void addEnumConstants(JsonNode node, JDefinedClass _enum, JsonNode customNames, JType type) {
    Collection<String> existingConstantNames = new ArrayList<String>();
    for (int i = 0; i < node.size(); i++) {
        JsonNode value = node.path(i);

        if (!value.isNull()) {
            String constantName = getConstantName(value.asText(), customNames.path(i).asText());
            constantName = makeUnique(constantName, existingConstantNames);
            existingConstantNames.add(constantName);

            JEnumConstant constant = _enum.enumConstant(constantName);
            
            String typeName = type.unboxify().fullName(); 
            if(typeName.equals("int")){ // integer
                constant.arg(JExpr.lit(value.intValue()));   
            } else if(typeName.equals("long")){ // integer-as-long
                constant.arg(JExpr.lit(value.longValue()));
            } else if(typeName.equals("double")){ // number
                constant.arg(JExpr.lit(value.doubleValue()));
            } else if(typeName.equals("boolean")){ // boolean
                constant.arg(JExpr.lit(value.booleanValue()));    
            } else { // string, null, array, object?  
                // only string should really be valid here... TODO throw error?
                constant.arg(JExpr.lit(value.asText()));
            }
            ruleFactory.getAnnotator().enumConstant(_enum, constant, value.asText());
        }
    }
}
 

public <T> EnumBuilder withEnum(T name, Class<T> type) {
	pojoCreationCheck();
	String cleaned = NamingHelper.cleanNameForJavaEnum(name.toString());
	if (!doesEnumContainField(type, cleaned)) {
		withValueField(type);
		ENUM_CACHE.put(cleaned, true);
		logger.debug("Adding field: {} to {}", name, this.pojo.name());
		if (StringUtils.hasText(cleaned)) {
			JEnumConstant enumConstant = this.pojo.enumConstant(cleaned);
			if (type.equals(Integer.class)) {
				enumConstant.arg(JExpr.lit((Integer) name));
			} else if (type.equals(Boolean.class)) {
				enumConstant.arg(JExpr.lit((Boolean) name));
			} else if (type.equals(Double.class)) {
				enumConstant.arg(JExpr.lit((Double) name));
			} else if (type.equals(Float.class)) {
				enumConstant.arg(JExpr.lit((Float) name));
			} else if (type.equals(Long.class)) {
				enumConstant.arg(JExpr.lit((Long) name));
			} else {
				enumConstant.arg(JExpr.lit(name.toString()));
				enumConstant.annotate(JsonProperty.class).param("value", name.toString());
			}
		}
	}
	return this;
}
 

public CMEnumConstantOutline(MEnumOutline enumOutline,
		MEnumConstantInfo<NType, NClass> target, JEnumConstant code) {
	Validate.notNull(enumOutline);
	Validate.notNull(target);
	Validate.notNull(code);
	this.enumOutline = enumOutline;
	this.target = target;
	this.code = code;
}
 

public JEnumConstant getCode() {
	return code;
}
 

public JEnumConstant getCode(); 
 类所在包
 类方法
 同包方法