本文整理汇总了Java中com.sun.codemodel.ClassType类的典型用法代码示例。如果您正苦于以下问题:Java ClassType类的具体用法?Java ClassType怎么用?Java ClassType使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
ClassType类属于com.sun.codemodel包,在下文中一共展示了ClassType类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: buildTemplateConstraint
import com.sun.codemodel.ClassType; //导入依赖的package包/类
private JDefinedClass buildTemplateConstraint(String name) {
try {
JDefinedClass tplConstraint = codeModel._class(Config.CFG.getBasePackageName() + ".annot."+name, ClassType.ANNOTATION_TYPE_DECL);
tplConstraint.annotate(Documented.class);
tplConstraint.annotate(Retention.class).param("value", RetentionPolicy.RUNTIME);
tplConstraint.annotate(Target.class).paramArray("value").param(ElementType.TYPE).param(ElementType.ANNOTATION_TYPE).param(ElementType.FIELD).param(ElementType.METHOD);
// Using direct as I don't know how to build default { } with code model
tplConstraint.direct("\n" + " Class<?>[] groups() default {};\n" + " String message() default \"Invalid value\";\n" + " Class<? extends Payload>[] payload() default {};\n");
// Hack to force the import of javax.validation.Payload
tplConstraint.javadoc().addThrows((JClass) codeModel._ref(Payload.class)).add("Force import");
return tplConstraint;
} catch (JClassAlreadyExistsException e) {
throw new RuntimeException("Tried to create an already existing class: " + name, e);
}
}
示例2: MetaJavaBean
import com.sun.codemodel.ClassType; //导入依赖的package包/类
/**
* Creates a new MetaJavaBean with random fields.
*
* @param fqn
* The fully qualified name of the bean's class.
* @param numFields
* Number of simple type fields that will be added.
*/
public MetaJavaBean(JCodeModel cm, String fqn, int numFields) {
super(cm, fqn, ClassType.CLASS);
// Empty constructor
getGeneratedClass().constructor(JMod.PUBLIC);
// Init the simple fields
this.fields = Maps.newHashMapWithExpectedSize(numFields);
for (int i = 0; i < numFields; ++i) {
String fieldName = "field" + Config.CFG.nextUniqueNum();
JavaBeanBasicField field = new JavaBeanBasicField(this, fieldName);
fields.put(fieldName, field);
}
}
示例3: define
import com.sun.codemodel.ClassType; //导入依赖的package包/类
@Override
public JType define(AbstractType t) {
JDefinedClass defineClass = writer.defineClass(t, ClassType.INTERFACE);
for (AbstractType st:t.superTypes()){
AbstractType superType = st;
JType type = writer.getType(superType);
defineClass._extends((JClass) type);
}
t.toPropertiesView().properties().forEach(p -> {
String name = writer.propNameGenerator.name(p);
JType propType = writer.getType(p.range(), false, false, p);
//defineClass.field(JMod.PRIVATE, propType, name);
defineClass.method(JMod.PUBLIC, propType,
"get" + Character.toUpperCase(name.charAt(0)) + name.substring(1));
defineClass.method(JMod.PUBLIC, writer.getModel()._ref(void.class),
(p.range().isBoolean() ? "is" : "set") + Character.toUpperCase(name.charAt(0)) + name.substring(1));
});
writer.annotate(defineClass, t);
return defineClass;
}
示例4: defineClass
import com.sun.codemodel.ClassType; //导入依赖的package包/类
public JDefinedClass defineClass(AbstractType t, ClassType type) {
String fullyQualifiedName = nameGenerator.fullyQualifiedName(t);
try {
JDefinedClass _class = mdl._class(fullyQualifiedName, type);
if (config.addGenerated) {
_class.annotate(Generated.class).param("value", JavaWriter.class.getPackage().getName()).param("date",
new Date().toString());
}
if (t.hasDirectMeta(Description.class)) {
String description = t.oneMeta(Description.class).value();
_class.javadoc().add(description);
}
return _class;
} catch (JClassAlreadyExistsException e) {
throw new IllegalStateException(e);
}
}
示例5: shouldFindEnumValues
import com.sun.codemodel.ClassType; //导入依赖的package包/类
@SuppressWarnings("unchecked")
@Test
public void shouldFindEnumValues() throws IllegalAccessException {
klass = modelPackage._getClass("Colour");
assertThat(klass.getClassType()).isEqualTo(ClassType.ENUM);
Map<String,JEnumConstant> enums = (Map<String, JEnumConstant>) FieldUtils.readField(klass, "enumConstantsByName", true);
assertThat(enums.keySet()).contains("LIGHT_BLUE", "RED");
JEnumConstant lightBlue = enums.get("LIGHT_BLUE");
assertThat(lightBlue.javadoc().get(0)).isEqualTo("Colour of the sky");
List<JExpression> args = (List<JExpression>) FieldUtils.readField(lightBlue, "args", true);
assertThat(args).hasSize(1);
assertThat(args.get(0)).isInstanceOf(JStringLiteral.class);
String literal = (String) FieldUtils.readField(args.get(0), "str", true);
assertThat(literal).isEqualTo("lightBlue");
}
示例6: generateJava
import com.sun.codemodel.ClassType; //导入依赖的package包/类
private byte[] generateJava() throws Exception {
JDefinedClass classModel = codeModel._class(JMod.PUBLIC | JMod.FINAL, className, ClassType.CLASS);
Class<?> contractInterface = Class.forName(contractInterfaceName);
classModel._implements(contractInterface);
classModel._extends(AbstractDataTransferObject.class);
List<FieldModel> fields = determineFields(contractInterface);
renderConstantsClass(classModel);
renderElementsClass(classModel, fields);
renderClassLevelAnnotations(classModel, fields);
renderFields(classModel, fields);
renderFutureElementsField(classModel);
renderPrivateJaxbConstructor(classModel, fields);
renderBuilderConstructor(classModel, fields);
renderGetters(classModel, fields);
renderBuilderClass(classModel, fields, contractInterface);
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
codeModel.build(new SingleStreamCodeWriter(outputStream));
return outputStream.toByteArray();
}
示例7: caseAPortDeclaration
import com.sun.codemodel.ClassType; //导入依赖的package包/类
@Override
public void caseAPortDeclaration(APortDeclaration node
) {
TypeModifierAdapter modap = new TypeModifierAdapter(context);
for (PModifier m : node.getModifier()) {
m.apply(modap);
}
int mods = modap.getMods();
JDefinedClass c = context.declare(mods, node.getIdentifier(), ClassType.CLASS);
try {
c.mods().setPublic(); // ports should be public so Kompics can load them
c._extends(PortType.class);
PortBodyAdapter pba = new PortBodyAdapter(c.instanceInit(), context);
node.getPortBody().apply(pba);
} finally {
context.popScope();
}
}
示例8: declare
import com.sun.codemodel.ClassType; //导入依赖的package包/类
JDefinedClass declare(int mods, TIdentifier identifier, ClassType ctype, Optional<String> name) {
if (current instanceof Scope.Typey) {
try {
Scope.Typey typeyScope = (Scope.Typey) current;
Type t = typeyScope.declare(mods, identifier, ctype, name);
global.addType(t);
current = t.scope;
scopeStack.push(current);
//System.out.println("Pushing scope " + current);
return t.definition;
} catch (JClassAlreadyExistsException ex) {
throw new RuntimeException(ex);
}
} else {
Logger.error("Cannot add a type (" + identifier.getText() + ") to a Scope (" + current.getClass().getName() + ") that doesn't allow types!");
throw new RuntimeException("Invalid Scope for operation!");
}
}
示例9: generete
import com.sun.codemodel.ClassType; //导入依赖的package包/类
@Override
public void generete(Const definition) throws Exception {
JDefinedClass jExceptionClass = this.getJavaPackage()._class(JMod.PUBLIC, definition.getName(), ClassType.CLASS);
jExceptionClass._extends(org.apache.thrift.TException.class);
// this.context.getTypeRegistry().add(jExceptionClass);
int[] count = { 0 };
// for (Const constDef : subprogram.constants) {
JType fieldType = this.resolvType(definition.getType());
JExpression exp = this.buildStaticExpression(jConstantsClass, fieldType, definition.getName(), definition.getValue() , count);
jConstantsClass.field(JMod.PUBLIC | JMod.FINAL | JMod.STATIC, fieldType, definition.getName(), exp);
// }
}
示例10: generete
import com.sun.codemodel.ClassType; //导入依赖的package包/类
@Override
public void generete(Service definition) throws Exception {
JDefinedClass jServiceClass = this.getJavaPackage()._class(JMod.PUBLIC,
definition.getName(), ClassType.CLASS);
JDefinedClass _interfaceIface = createServicesInterface(definition,
jServiceClass);
createServicesClient(definition, jServiceClass);
createServicesProcessor(definition, jServiceClass, _interfaceIface);
JDefinedClass _asyncInterfaceIface = createServicesAsyncInterface(
definition, jServiceClass);
createServicesAsyncClient(definition, jServiceClass);
createServicesAsyncProcessor(definition, jServiceClass,
_asyncInterfaceIface);
}
示例11: getThriftType
import com.sun.codemodel.ClassType; //导入依赖的package包/类
public static String getThriftType(JCodeModel cm, JType jType) {
if (cm.BOOLEAN.equals(jType) || cm.ref(Boolean.class).equals(jType)) {
return "org.apache.thrift.protocol.TType.BOOL";
} else if (cm.BYTE.equals(jType) || cm.ref(Byte.class).equals(jType)) {
return "org.apache.thrift.protocol.TType.BYTE";
} else if (cm.CHAR.equals(jType) || cm.ref(Character.class).equals(jType)) {
return "org.apache.thrift.protocol.TType.STRING";
} else if (cm.DOUBLE.equals(jType) || cm.ref(Double.class).equals(jType)) {
return "org.apache.thrift.protocol.TType.DOUBLE";
} else if (cm.FLOAT.equals(jType) || cm.ref(Float.class).equals(jType)) {
return "org.apache.thrift.protocol.TType.DOUBLE";
} else if (cm.INT.equals(jType) || cm.ref(Integer.class).equals(jType)) {
return "org.apache.thrift.protocol.TType.I32";
} else if (cm.LONG.equals(jType) || cm.ref(Long.class).equals(jType)) {
return "org.apache.thrift.protocol.TType.I64";
} else if (cm.ref(String.class).equals(jType)) {
return "org.apache.thrift.protocol.TType.STRING";
} else if (cm.SHORT.equals(jType) || cm.ref(Short.class).equals(jType)) {
return "org.apache.thrift.protocol.TType.I16";
} else if (jType instanceof JDefinedClass && ClassType.ENUM.equals(((JDefinedClass) jType).getClassType())) {
return "org.apache.thrift.protocol.TType.ENUM";
} else {
return "org.apache.thrift.protocol.TType.STRUCT";
}
}
示例12: NodeGenerator
import com.sun.codemodel.ClassType; //导入依赖的package包/类
public NodeGenerator(Symbols symbols, String pckg, JCodeModel model, Framework f,
SymbolsGenerator symbolsGen) throws JClassAlreadyExistsException{
this.symbols = symbols;
this.framework = f;
this.symbolsGen = symbolsGen;
this.model = model;
this.pckg = pckg;
String name = pckg == null ? VISITOR : pckg + "." + VISITOR;
this.visitorInterface = model._class(name, ClassType.INTERFACE);
CodeGenerator.appendJDocHeader(visitorInterface);
name = pckg == null ? SYMBOLS : pckg + "." + SYMBOLS;
this.eofTokenClass = this.defineEOFToken();
this.tokens = this.defineTokenNodes();
this.abstractNodes= this.defineAbstractNodes();
this.concreteNodes= this.defineConcreteNodes();
}
示例13: defineAbstractNode
import com.sun.codemodel.ClassType; //导入依赖的package包/类
/**
* @author Jennifer Zou
* @param s
* @return
* @throws JClassAlreadyExistsException
*/
private JDefinedClass defineAbstractNode(String s) throws JClassAlreadyExistsException{
String name = pckg == null ? s + "AbstractNode" : pckg+"."+NODES+"."+s+"AbstractNode";
JDefinedClass asn= model._class(JMod.PUBLIC+JMod.ABSTRACT, name, ClassType.CLASS);
CodeGenerator.appendJDocHeader(asn);
asn._implements(framework.getNodeInterface().narrow(visitorInterface));
//declare the type method
JMethod type= asn.method(JMod.PUBLIC, framework.getSymbolInterface(), TYPE);
type.annotate(Override.class);
type.body()._return(symbolsGen.getSymbolObj(s));
//define replace method
JMethod replace= asn.method(JMod.PUBLIC, asn, REPLACE);
replace.annotate(Override.class);
replace.body()._return(JExpr._this());
//define toString()
JMethod toString= asn.method(JMod.PUBLIC, String.class, "toString");
toString.annotate(Override.class);
toString.body()._return(JExpr.invoke(JExpr.invoke(type), "toString"));
return asn;
}
示例14: defineClass
import com.sun.codemodel.ClassType; //导入依赖的package包/类
private JDefinedClass defineClass(String pckg, JCodeModel model, Framework f)
throws JClassAlreadyExistsException{
String name = pckg == null ? NAME : pckg + "." + NAME;
JDefinedClass c = CodeGenerator.appendJDocHeader(
model._class(JMod.PUBLIC, name, ClassType.ENUM));
JVar str = c.field(JMod.PRIVATE+JMod.FINAL, String.class, "name");
JMethod cons = c.constructor(JMod.PRIVATE);
cons.body().assign(JExpr._this().ref(str), cons.param(String.class, "name"));
JMethod defCons = c.constructor(JMod.PRIVATE);
defCons.body().assign(JExpr._this().ref(str), JExpr._null());
JMethod toString = c.method(JMod.PUBLIC, String.class, "toString");
toString.annotate(Override.class);
toString.body()._if(str.eq(JExpr._null()))._then()._return(JExpr.invoke(JExpr._super(), "toString"));
toString.body()._return(str);
c._implements(f.getSymbolInterface());
JMethod type = c.method(JMod.PUBLIC, int.class, "type");
type.annotate(Override.class);
type.body()._return(JExpr.invoke(JExpr._this(), "ordinal"));
return c;
}
示例15: buildJavaClass
import com.sun.codemodel.ClassType; //导入依赖的package包/类
private void buildJavaClass() {
try {
JCodeModel codeModel = new JCodeModel();
JDefinedClass definedClass = codeModel._class(this.clazz.getCanonicalClassName(), ClassType.INTERFACE);
definedClass.javadoc().append(this.clazz.getJavaDoc());
String genericType = this.clazz.getPackageName().replace(".service", ".model.ICollectionModel");
definedClass.generify("T extends " + genericType + "<?>");
this.appendClassMethods(codeModel, definedClass);
codeModel.build(new File("src/main/java"));
} catch (Exception ex) {
throw new RuntimeException(ex);
}
}