本文整理汇总了Java中com.sun.codemodel.internal.JExpression类的典型用法代码示例。如果您正苦于以下问题:Java JExpression类的具体用法?Java JExpression怎么用?Java JExpression使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
JExpression类属于com.sun.codemodel.internal包,在下文中一共展示了JExpression类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: generate
import com.sun.codemodel.internal.JExpression; //导入依赖的package包/类
private void generate( ClassOutlineImpl outline, CPropertyInfo prop ) {
// add isSetXXX and unsetXXX.
MethodWriter writer = outline.createMethodWriter();
JCodeModel codeModel = outline.parent().getCodeModel();
FieldAccessor acc = core.create(JExpr._this());
if( generateIsSetMethod ) {
// [RESULT] boolean isSetXXX()
JExpression hasSetValue = acc.hasSetValue();
if( hasSetValue==null ) {
// this field renderer doesn't support the isSet/unset methods generation.
// issue an error
throw new UnsupportedOperationException();
}
writer.declareMethod(codeModel.BOOLEAN,"isSet"+this.prop.getName(true))
.body()._return( hasSetValue );
}
if( generateUnSetMethod ) {
// [RESULT] void unsetXXX()
acc.unsetValues(
writer.declareMethod(codeModel.VOID,"unset"+this.prop.getName(true)).body() );
}
}
示例2: getQNameInvocation
import com.sun.codemodel.internal.JExpression; //导入依赖的package包/类
/**
* return a JFieldVar that represents the QName field for the given information.
*
* if it doesn't exist, create a static field in the class and store a new JFieldVar.
*/
private JExpression getQNameInvocation(CElementInfo ei) {
QName name = ei.getElementName();
if(qnameMap.containsKey(name)) {
return qnameMap.get(name);
}
if(qnameMap.size()>1024)
// stop gap measure to avoid 'code too large' error in javac.
return createQName(name);
// [RESULT]
// private static final QName _XYZ_NAME = new QName("uri", "local");
JFieldVar qnameField = objectFactory.field(
JMod.PRIVATE | JMod.STATIC | JMod.FINAL,
QName.class,
'_' + ei.getSqueezedName() + "_QNAME", createQName(name));
qnameMap.put(name, qnameField);
return qnameField;
}
示例3: fromRawValue
import com.sun.codemodel.internal.JExpression; //导入依赖的package包/类
public void fromRawValue(JBlock block, String uniqueName, JExpression $var) {
JCodeModel cm = outline().getCodeModel();
JClass elementType = ei.toType(outline(),EXPOSED).boxify();
// [RESULT]
// $t = new ArrayList();
// for( Type e : $var ) {
// $var.add(new JAXBElement(e));
// }
// [core.fromRawValue]
JClass col = cm.ref(ArrayList.class).narrow(elementType);
JVar $t = block.decl(col,uniqueName+"_col",JExpr._new(col));
JForEach loop = block.forEach(itemType(), uniqueName+"_i", $t);
loop.body().invoke($var,"add").arg(createJAXBElement(loop.var()));
acc.fromRawValue(block, uniqueName, $t);
}
示例4: createConstant
import com.sun.codemodel.internal.JExpression; //导入依赖的package包/类
public JExpression createConstant(Outline outline, XmlString lexical) {
if(isCollection()) return null;
if(adapter==null) return coreType.createConstant(outline, lexical);
// [RESULT] new Adapter().unmarshal(CONSTANT);
JExpression cons = coreType.createConstant(outline, lexical);
Class<? extends XmlAdapter> atype = adapter.getAdapterIfKnown();
// try to run the adapter now rather than later.
if(cons instanceof JStringLiteral && atype!=null) {
JStringLiteral scons = (JStringLiteral) cons;
XmlAdapter a = ClassFactory.create(atype);
try {
Object value = a.unmarshal(scons.str);
if(value instanceof String) {
return JExpr.lit((String)value);
}
} catch (Exception e) {
// assume that we can't eagerly bind this
}
}
return JExpr._new(adapter.getAdapterClass(outline)).invoke("unmarshal").arg(cons);
}
示例5: generate
import com.sun.codemodel.internal.JExpression; //导入依赖的package包/类
public JExpression generate( JCodeModel codeModel, JExpression literal ) {
// WhitespaceProcessor.replace(<literal>);
if( literal instanceof JStringLiteral )
// optimize
return JExpr.lit( WhiteSpaceProcessor.replace(((JStringLiteral)literal).str) );
else
return codeModel.ref(WhiteSpaceProcessor.class)
.staticInvoke("replace").arg(literal);
}
示例6: castToImplType
import com.sun.codemodel.internal.JExpression; //导入依赖的package包/类
/**
* Case from {@link #exposedType} to {@link #implType} if necessary.
*/
protected final JExpression castToImplType( JExpression exp ) {
if(implType==exposedType)
return exp;
else
return JExpr.cast(implType,exp);
}
示例7: create
import com.sun.codemodel.internal.JExpression; //导入依赖的package包/类
public FieldAccessor create(JExpression targetObject) {
return new Accessor(targetObject) {
public void unsetValues( JBlock body ) {
// you can't unset a value
}
public JExpression hasSetValue() {
return JExpr.TRUE;
}
};
}
示例8: createConstant
import com.sun.codemodel.internal.JExpression; //导入依赖的package包/类
public JExpression createConstant(Outline outline, XmlString literal) {
// correctly identifying which constant it maps to is hard, so
// here I'm cheating
JClass type = toType(outline,Aspect.EXPOSED);
for (CEnumConstant mem : members) {
if(mem.getLexicalValue().equals(literal.value))
return type.staticRef(mem.getName());
}
return null;
}
示例9: create
import com.sun.codemodel.internal.JExpression; //导入依赖的package包/类
/**
* Creates a new {@link CDefaultValue} that computes the default value
* by applying a lexical representation to a {@link TypeUse}.
*/
public static CDefaultValue create(final TypeUse typeUse, final XmlString defaultValue) {
return new CDefaultValue() {
public JExpression compute(Outline outline) {
return typeUse.createConstant(outline,defaultValue);
}
};
}
示例10: ElementOutlineImpl
import com.sun.codemodel.internal.JExpression; //导入依赖的package包/类
ElementOutlineImpl(BeanGenerator parent, CElementInfo ei) {
super(ei,
parent.getClassFactory().createClass(
parent.getContainer( ei.parent, Aspect.EXPOSED ), ei.shortName(), ei.getLocator() ));
this.parent = parent;
parent.elements.put(ei,this);
JCodeModel cm = parent.getCodeModel();
implClass._extends(
cm.ref(JAXBElement.class).narrow(
target.getContentInMemoryType().toType(parent,Aspect.EXPOSED).boxify()));
if(ei.hasClass()) {
JType implType = ei.getContentInMemoryType().toType(parent,Aspect.IMPLEMENTATION);
JExpression declaredType = JExpr.cast(cm.ref(Class.class),implType.boxify().dotclass()); // why do we have to cast?
JClass scope=null;
if(ei.getScope()!=null)
scope = parent.getClazz(ei.getScope()).implRef;
JExpression scopeClass = scope==null?JExpr._null():scope.dotclass();
JFieldVar valField = implClass.field(JMod.PROTECTED|JMod.FINAL|JMod.STATIC,QName.class,"NAME",createQName(cm,ei.getElementName()));
// take this opportunity to generate a constructor in the element class
JMethod cons = implClass.constructor(JMod.PUBLIC);
cons.body().invoke("super")
.arg(valField)
.arg(declaredType)
.arg(scopeClass)
.arg(cons.param(implType,"value"));
// generate no-arg constructor in the element class (bug #391; section 5.6.2 in JAXB spec 2.1)
JMethod noArgCons = implClass.constructor(JMod.PUBLIC);
noArgCons.body().invoke("super")
.arg(valField)
.arg(declaredType)
.arg(scopeClass)
.arg(JExpr._null());
}
}
示例11: createJAXBElement
import com.sun.codemodel.internal.JExpression; //导入依赖的package包/类
/**
* Wraps a type value into a {@link JAXBElement}.
*/
protected final JInvocation createJAXBElement(JExpression $var) {
JCodeModel cm = codeModel();
return JExpr._new(cm.ref(JAXBElement.class))
.arg(JExpr._new(cm.ref(QName.class))
.arg(ei.getElementName().getNamespaceURI())
.arg(ei.getElementName().getLocalPart()))
.arg(getRawType().boxify().erasure().dotclass())
.arg($var);
}
示例12: fromRawValue
import com.sun.codemodel.internal.JExpression; //导入依赖的package包/类
public void fromRawValue(JBlock block, String uniqueName, JExpression $var) {
// [RESULT]
// bean.getLIST().addAll($<var>);
JVar $list = block.decl(listT,uniqueName+'l',$target.invoke($get));
block.invoke($list,"addAll").arg($var);
}
示例13: create
import com.sun.codemodel.internal.JExpression; //导入依赖的package包/类
public FieldAccessor create(JExpression targetObject) {
return new Accessor(targetObject);
}
示例14: Accessor
import com.sun.codemodel.internal.JExpression; //导入依赖的package包/类
Accessor( JExpression $target ) {
super($target);
this.core = IsSetField.this.core.create($target);
}
示例15: hasSetValue
import com.sun.codemodel.internal.JExpression; //导入依赖的package包/类
public JExpression hasSetValue() {
return $ref.ne( JExpr._null() );
}