当前位置: 首页>>代码示例>>Java>>正文


Java JTypeVar类代码示例

本文整理汇总了Java中com.sun.codemodel.JTypeVar的典型用法代码示例。如果您正苦于以下问题:Java JTypeVar类的具体用法?Java JTypeVar怎么用?Java JTypeVar使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


JTypeVar类属于com.sun.codemodel包,在下文中一共展示了JTypeVar类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: addPublicGetMethod

import com.sun.codemodel.JTypeVar; //导入依赖的package包/类
private JMethod addPublicGetMethod(JDefinedClass jclass, JMethod internalGetMethod, JFieldRef notFoundValue) {
    JMethod method = jclass.method(PUBLIC, jclass.owner()._ref(Object.class), GETTER_NAME);
    JTypeVar returnType = method.generify("T");
    method.type(returnType);
    Models.suppressWarnings(method, "unchecked");
    JVar nameParam = method.param(String.class, "name");
    JBlock body = method.body();
    JVar valueVar = body.decl(jclass.owner()._ref(Object.class), "value",
            invoke(internalGetMethod).arg(nameParam).arg(notFoundValue));
    JConditional found = method.body()._if(notFoundValue.ne(valueVar));
    found._then()._return(cast(returnType, valueVar));
    JBlock notFound = found._else();

    JMethod getAdditionalProperties = jclass.getMethod("getAdditionalProperties", new JType[] {});
    if (getAdditionalProperties != null) {
        notFound._return(cast(returnType, invoke(getAdditionalProperties).invoke("get").arg(nameParam)));
    } else {
        notFound._throw(illegalArgumentInvocation(jclass, nameParam));
    }

    return method;
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:23,代码来源:DynamicPropertiesRule.java

示例2: generateNewCopyBuilderMethod

import com.sun.codemodel.JTypeVar; //导入依赖的package包/类
JMethod generateNewCopyBuilderMethod(final boolean partial) {
	final JDefinedClass typeDefinition = this.typeOutline.isInterface() && ((DefinedInterfaceOutline)this.typeOutline).getSupportInterface() != null ? ((DefinedInterfaceOutline)this.typeOutline).getSupportInterface() : this.definedClass;
	final int mods = this.implement ? this.definedClass.isAbstract() ? JMod.PUBLIC | JMod.ABSTRACT : JMod.PUBLIC : JMod.NONE;
	final JMethod copyBuilderMethod = typeDefinition.method(mods, this.builderClass.raw, this.settings.getNewCopyBuilderMethodName());
	final JTypeVar copyBuilderMethodTypeParam = copyBuilderMethod.generify(BuilderGenerator.PARENT_BUILDER_TYPE_PARAMETER_NAME);
	final JVar parentBuilderParam = copyBuilderMethod.param(JMod.FINAL, copyBuilderMethodTypeParam, BuilderGenerator.PARENT_BUILDER_PARAM_NAME);
	final CopyGenerator copyGenerator = this.pluginContext.createCopyGenerator(copyBuilderMethod, partial);
	copyBuilderMethod.type(this.builderClass.raw.narrow(copyBuilderMethodTypeParam));
	final JMethod copyBuilderConvenienceMethod = typeDefinition.method(mods, this.builderClass.raw.narrow(this.pluginContext.voidClass), this.settings.getNewCopyBuilderMethodName());
	final CopyGenerator copyConvenienceGenerator = this.pluginContext.createCopyGenerator(copyBuilderConvenienceMethod, partial);
	if (this.implement && !this.definedClass.isAbstract()) {
		copyBuilderMethod.body()._return(copyGenerator.generatePartialArgs(this.pluginContext._new((JClass)copyBuilderMethod.type()).arg(parentBuilderParam).arg(JExpr._this()).arg(JExpr.TRUE)));
		copyBuilderConvenienceMethod.body()._return(copyConvenienceGenerator.generatePartialArgs(this.pluginContext.invoke(this.settings.getNewCopyBuilderMethodName()).arg(JExpr._null())));
	}
	if (this.typeOutline.getSuperClass() != null) {
		copyBuilderMethod.annotate(Override.class);
		copyBuilderConvenienceMethod.annotate(Override.class);
	}
	return copyBuilderMethod;
}
 
开发者ID:mklemm,项目名称:jaxb2-rich-contract-plugin,代码行数:21,代码来源:BuilderGenerator.java

示例3: generateCopyToMethod

import com.sun.codemodel.JTypeVar; //导入依赖的package包/类
final void generateCopyToMethod(final boolean partial) {
	if (this.implement) {
		final JDefinedClass typeDefinition = this.typeOutline.isInterface() && ((DefinedInterfaceOutline)this.typeOutline).getSupportInterface() != null ? ((DefinedInterfaceOutline)this.typeOutline).getSupportInterface() : this.definedClass;
		final JMethod copyToMethod = typeDefinition.method(JMod.PUBLIC, this.pluginContext.voidType, this.settings.getCopyToMethodName());
		final JTypeVar typeVar = copyToMethod.generify(BuilderGenerator.PARENT_BUILDER_TYPE_PARAMETER_NAME);
		final JVar otherParam = copyToMethod.param(JMod.FINAL, this.builderClass.raw.narrow(typeVar), BuilderGenerator.OTHER_PARAM_NAME);
		final CopyGenerator cloneGenerator = this.pluginContext.createCopyGenerator(copyToMethod, partial);
		final JBlock body = copyToMethod.body();
		final JVar otherRef;
		if (this.typeOutline.getSuperClass() != null) {
			body.add(cloneGenerator.generatePartialArgs(this.pluginContext.invoke(JExpr._super(), copyToMethod.name()).arg(otherParam)));
		}
		otherRef = otherParam;
		generateFieldCopyExpressions(cloneGenerator, body, otherRef, JExpr._this());
		copyToMethod.javadoc().append(getMessage("javadoc.method.copyTo"));
		copyToMethod.javadoc().addParam(otherParam).append(getMessage("javadoc.method.copyTo.param.other"));
	}
}
 
开发者ID:mklemm,项目名称:jaxb2-rich-contract-plugin,代码行数:19,代码来源:BuilderGenerator.java

示例4: run

import com.sun.codemodel.JTypeVar; //导入依赖的package包/类
@Override
protected void run(Set<ClassOutline> classes, Set<JClass> directClasses) {
    JDefinedClass scratch = getOutline().getClassFactory().createInterface(getPackage(), "_scratch", null);
    try {
        JDefinedClass _interface = getOutline().getClassFactory().createInterface(getPackage(), "Traverser", null);
        setOutput(_interface);
        final JTypeVar retType = scratch.generify("?");
        final JTypeVar exceptionType = _interface.generify("E", Throwable.class);
        final JClass narrowedVisitor = visitor.narrow(retType).narrow(exceptionType);

        for (JClass jc : allConcreteClasses(classes, directClasses)) {
            implTraverse(exceptionType, narrowedVisitor, jc);
        }
    } finally {
        jpackage.remove(scratch);
    }
}
 
开发者ID:massfords,项目名称:jaxb-visitor,代码行数:18,代码来源:CreateTraverserInterface.java

示例5: run

import com.sun.codemodel.JTypeVar; //导入依赖的package包/类
public void run(Set<ClassOutline> sorted, JDefinedClass visitor) {
        // skip over abstract classes
// add the accept method to the bean
        sorted.stream().filter(classOutline -> !classOutline.target.isAbstract()).forEach(classOutline -> {
            // add the accept method to the bean
            JDefinedClass beanImpl = classOutline.implClass;
            final JMethod acceptMethod = beanImpl.method(JMod.PUBLIC, void.class, "accept");
            final JTypeVar returnType = acceptMethod.generify("R");
            final JTypeVar exceptionType = acceptMethod.generify("E", Throwable.class);
            acceptMethod.type(returnType);
            acceptMethod._throws(exceptionType);
            final JClass narrowedVisitor = visitor.narrow(returnType, exceptionType);
            JVar vizParam = acceptMethod.param(narrowedVisitor, "aVisitor");
            JBlock block = acceptMethod.body();
            String methodName = visitMethodNamer.apply(beanImpl.name());
            block._return(vizParam.invoke(methodName).arg(JExpr._this()));
        });
    }
 
开发者ID:massfords,项目名称:jaxb-visitor,代码行数:19,代码来源:AddAcceptMethod.java

示例6: run

import com.sun.codemodel.JTypeVar; //导入依赖的package包/类
@Override
  protected void run(Set<ClassOutline> classes, Set<JClass> directClasses) {
      final JDefinedClass _interface = outline.getClassFactory().createInterface(jpackage, "Visitable", null);
setOutput( _interface );
final JMethod _method = getOutput().method(JMod.NONE, void.class, "accept");
final JTypeVar returnType = _method.generify("R");
final JTypeVar exceptionType = _method.generify("E", Throwable.class);
_method.type(returnType);
_method._throws(exceptionType);
final JClass narrowedVisitor = visitor.narrow(returnType, exceptionType);
_method.param(narrowedVisitor, "aVisitor");
      
      for(ClassOutline classOutline : classes) {
          classOutline.implClass._implements(getOutput());
      }
  }
 
开发者ID:massfords,项目名称:jaxb-visitor,代码行数:17,代码来源:CreateVisitableInterface.java

示例7: generateForDirectClass

import com.sun.codemodel.JTypeVar; //导入依赖的package包/类
private void generateForDirectClass(JDefinedClass traversingVisitor, JTypeVar returnType, JTypeVar exceptionType, JClass implClass) {
    // add method impl to traversing visitor
    JMethod travViz;
    String visitMethodName = visitMethodNamer.apply(implClass.name());
    travViz = traversingVisitor.method(JMod.PUBLIC, returnType, visitMethodName);
    travViz._throws(exceptionType);
    JVar beanVar = travViz.param(implClass, "aBean");
    travViz.annotate(Override.class);
    JBlock travVizBloc = travViz.body();

    addTraverseBlock(travViz, beanVar, true);

    JVar retVal = travVizBloc.decl(returnType, "returnVal");

    travVizBloc.assign(retVal, JExpr.invoke(JExpr.invoke("getVisitor"), visitMethodName).arg(beanVar));

    travVizBloc._if(JExpr.ref("progressMonitor").ne(JExpr._null()))._then().invoke(JExpr.ref("progressMonitor"), "visited").arg(beanVar);

    addTraverseBlock(travViz, beanVar, false);

    travVizBloc._return(retVal);
}
 
开发者ID:massfords,项目名称:jaxb-visitor,代码行数:23,代码来源:CreateTraversingVisitorClass.java

示例8: generate

import com.sun.codemodel.JTypeVar; //导入依赖的package包/类
private void generate(JDefinedClass traversingVisitor, JTypeVar returnType, JTypeVar exceptionType, JClass implClass) {
    // add method impl to traversing visitor
    JMethod travViz;
    travViz = traversingVisitor.method(JMod.PUBLIC, returnType, visitMethodNamer.apply(implClass.name()));
    travViz._throws(exceptionType);
    JVar beanVar = travViz.param(implClass, "aBean");
    travViz.annotate(Override.class);
    JBlock travVizBloc = travViz.body();

    addTraverseBlock(travViz, beanVar, true);

    JVar retVal = travVizBloc.decl(returnType, "returnVal");
    travVizBloc.assign(retVal,
            JExpr.invoke(beanVar, "accept").arg(JExpr.invoke("getVisitor")));
    travVizBloc._if(JExpr.ref("progressMonitor").ne(JExpr._null()))._then().invoke(JExpr.ref("progressMonitor"), "visited").arg(beanVar);

    // case to traverse after the visit
    addTraverseBlock(travViz, beanVar, false);
    travVizBloc._return(retVal);
}
 
开发者ID:massfords,项目名称:jaxb-visitor,代码行数:21,代码来源:CreateTraversingVisitorClass.java

示例9: generateDelegator

import com.sun.codemodel.JTypeVar; //导入依赖的package包/类
/**
 * Generates a delegator for the given class.
 *
 * @param delegateClass
 *            delegate class
 */
public void generateDelegator(JDefinedClass delegateClass) {
    JPackage pkg = context.getDelegatorPackage();
    try {
        JDefinedClass delegator = pkg
            ._class(delegateClass.name() + context.getConfig().getDelegatorSuffix());
        context.annotateAsGenerated(delegator);

        JClass delegateType = delegateClass;

        if (delegateClass.typeParams().length > 0) {
            Stream.of(delegateClass.typeParams()).map(JTypeVar::name)
                .forEach(delegator::generify);
            delegateType = delegateClass.narrow(delegateClass.typeParams());
        }

        JFieldVar delegate = delegator.field(JMod.PROTECTED, delegateType,
            context.getConfig().getDelegateFieldName());
        delegate.init(JExpr._new(delegateType));

        JDefinedClass klass = delegateClass;
        while (klass != null) {
            buildDelegatingMethods(klass, delegator, delegate);
            if (klass._extends() instanceof JDefinedClass) {
                klass = (JDefinedClass) klass._extends();
            }
            else {
                klass = null;
            }
        }
    }
    catch (JClassAlreadyExistsException exc) {
        throw Exceptions.unchecked(exc);
    }
}
 
开发者ID:ops4j,项目名称:org.ops4j.ramler,代码行数:41,代码来源:DelegatorGenerator.java

示例10: expectClass

import com.sun.codemodel.JTypeVar; //导入依赖的package包/类
protected void expectClass(String className, String... typeParams) {
    expectClass(className);
    JTypeVar[] typeVars = klass.typeParams();
    assertThat(typeVars.length).isEqualTo(typeParams.length);
    for (int i = 0; i < typeVars.length; i++) {
        assertThat(typeVars[i].name()).isEqualTo(typeParams[i]);
    }
}
 
开发者ID:ops4j,项目名称:org.ops4j.ramler,代码行数:9,代码来源:AbstractGeneratorTest.java

示例11: resolveType

import com.sun.codemodel.JTypeVar; //导入依赖的package包/类
@Override
public JClass resolveType(String shortName) {
    Type t = types.get(shortName);
    if (t != null) {
        return t.definition;
    }
    JTypeVar jtv = generics.get(shortName);
    if (jtv != null) {
        return jtv;
    }
    return parent().resolveType(shortName);
}
 
开发者ID:kompics,项目名称:kola,代码行数:13,代码来源:AnonClassScope.java

示例12: addGeneric

import com.sun.codemodel.JTypeVar; //导入依赖的package包/类
void addGeneric(String g, JTypeVar var) {
    if (current instanceof Scope.Generic) {
        Scope.Generic genericScope = (Scope.Generic) current;
        genericScope.addGeneric(g, var);
    } else {
        Logger.error("Cannot add generic (" + g + ") to a Scope (" + current.getClass().getName() + ") that doesn't allow generics!");
        throw new RuntimeException("Invalid Scope for operation!");
    }
}
 
开发者ID:kompics,项目名称:kola,代码行数:10,代码来源:ResolutionContext.java

示例13: generateCopyOfMethod

import com.sun.codemodel.JTypeVar; //导入依赖的package包/类
JMethod generateCopyOfMethod(final TypeOutline paramType, final boolean partial) {
	if (paramType.getSuperClass() != null) {
		generateCopyOfMethod(paramType.getSuperClass(), partial);
	}
	final JMethod copyOfMethod = this.definedClass.method(JMod.PUBLIC | JMod.STATIC, this.builderClass.raw.narrow(Void.class), this.pluginContext.buildCopyMethodName);
	final JTypeVar copyOfMethodTypeParam = copyOfMethod.generify(BuilderGenerator.PARENT_BUILDER_TYPE_PARAMETER_NAME);
	copyOfMethod.type(this.builderClass.raw.narrow(copyOfMethodTypeParam));
	final JVar otherParam = copyOfMethod.param(JMod.FINAL, paramType.getImplClass(), BuilderGenerator.OTHER_PARAM_NAME);
	final CopyGenerator copyGenerator = this.pluginContext.createCopyGenerator(copyOfMethod, partial);
	final JVar newBuilderVar = copyOfMethod.body().decl(JMod.FINAL, copyOfMethod.type(), BuilderGenerator.NEW_BUILDER_VAR_NAME, JExpr._new(copyOfMethod.type()).arg(JExpr._null()).arg(JExpr._null()).arg(JExpr.FALSE));
	copyOfMethod.body().add(copyGenerator.generatePartialArgs(this.pluginContext.invoke(otherParam, this.settings.getCopyToMethodName()).arg(newBuilderVar)));
	copyOfMethod.body()._return(newBuilderVar);
	return copyOfMethod;
}
 
开发者ID:mklemm,项目名称:jaxb2-rich-contract-plugin,代码行数:15,代码来源:BuilderGenerator.java

示例14: MetaInfoOutline

import com.sun.codemodel.JTypeVar; //导入依赖的package包/类
MetaInfoOutline(final SelectorGenerator selectorGenerator, final ClassOutline classOutline, final JDefinedClass selectorClass, final JTypeVar rootTypeParam, final JTypeVar parentTypeParam, final JMethod buildChildrenMethod, final JVar productMapVar) {
	this.selectorGenerator = selectorGenerator;
	this.classOutline = classOutline;
	this.selectorClass = selectorClass;
	this.rootTypeParam = rootTypeParam;
	this.parentTypeParam = parentTypeParam;
	this.buildChildrenMethod = buildChildrenMethod;
	this.buildChildrenMethod.body().add(productMapVar.invoke("putAll").arg(JExpr._super().invoke(buildChildrenMethod)));
	this.productMapVar = productMapVar;
}
 
开发者ID:mklemm,项目名称:jaxb2-rich-contract-plugin,代码行数:11,代码来源:SelectorGenerator.java

示例15: implTraverse

import com.sun.codemodel.JTypeVar; //导入依赖的package包/类
private void implTraverse(JTypeVar exceptionType, JClass narrowedVisitor, JClass implClass) {
    JMethod traverseMethod;
    String methodName = traverseMethodNamer.apply(implClass.name());
    traverseMethod = getOutput().method(JMod.NONE, void.class, methodName);
    traverseMethod._throws(exceptionType);
    traverseMethod.param(implClass, "aBean");
    traverseMethod.param(narrowedVisitor, "aVisitor");
}
 
开发者ID:massfords,项目名称:jaxb-visitor,代码行数:9,代码来源:CreateTraverserInterface.java


注:本文中的com.sun.codemodel.JTypeVar类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。