private void writeGetPort(Port port, JType retType, JDefinedClass cls) { JMethod m = cls.method(JMod.PUBLIC, retType, port.getPortGetter()); JDocComment methodDoc = m.javadoc(); if (port.getJavaDoc() != null) { methodDoc.add(port.getJavaDoc()); } JCommentPart ret = methodDoc.addReturn(); JCommentPart paramDoc = methodDoc.addParam("features"); paramDoc.append("A list of "); paramDoc.append("{@link " + WebServiceFeature.class.getName() + "}"); paramDoc.append("to configure on the proxy. Supported features not in the <code>features</code> parameter will have their default values."); ret.add("returns " + retType.name()); m.varParam(WebServiceFeature.class, "features"); JBlock body = m.body(); StringBuilder statement = new StringBuilder("return "); statement.append("super.getPort(new QName(\"").append(port.getName().getNamespaceURI()).append("\", \"").append(port.getName().getLocalPart()).append("\"), "); statement.append(retType.name()); statement.append(".class, features);"); body.directStatement(statement.toString()); writeWebEndpoint(port, m); }
private void writeMember(JDefinedClass cls, TypeMirror paramType, String paramName) { if (cls == null) return; String accessorName =BindingHelper.mangleNameToPropertyName(paramName); String getterPrefix = paramType.toString().equals("boolean")? "is" : "get"; JType propType = getType(paramType); JMethod m = cls.method(JMod.PUBLIC, propType, getterPrefix+ accessorName); JDocComment methodDoc = m.javadoc(); JCommentPart ret = methodDoc.addReturn(); ret.add("returns "+propType.name()); JBlock body = m.body(); body._return( JExpr._this().ref(paramName) ); m = cls.method(JMod.PUBLIC, cm.VOID, "set"+accessorName); JVar param = m.param(propType, paramName); methodDoc = m.javadoc(); JCommentPart part = methodDoc.addParam(paramName); part.add("the value for the "+ paramName+" property"); body = m.body(); body.assign( JExpr._this().ref(paramName), param ); }
public JType getTypeClass() { CAdapter a = typeUse.getAdapterUse(); NType nt; if(a!=null) nt = a.customType; else nt = typeUse.getInfo().getType(); JType jt = nt.toType(outline,EXPOSED); JPrimitiveType prim = jt.boxify().getPrimitiveType(); if(!typeUse.isCollection() && prim!=null) jt = prim; if(typeUse.isCollection()) jt = jt.array(); return jt; }
/** * Obtains a {@link JType} object for the string representation * of a type. */ public static JType getType( JCodeModel codeModel, String typeName, ErrorReceiver errorHandler, Locator errorSource ) { try { return codeModel.parseType(typeName); } catch( ClassNotFoundException ee ) { // make it a warning errorHandler.warning( new SAXParseException( Messages.ERR_CLASS_NOT_FOUND.format(typeName) ,errorSource)); // recover by assuming that it's a class that derives from Object return codeModel.directClass(typeName); } }
private void writeDefaultGetPort(Port port, JType retType, JDefinedClass cls) { String portGetter = port.getPortGetter(); JMethod m = cls.method(JMod.PUBLIC, retType, portGetter); JDocComment methodDoc = m.javadoc(); if (port.getJavaDoc() != null) { methodDoc.add(port.getJavaDoc()); } JCommentPart ret = methodDoc.addReturn(); ret.add("returns " + retType.name()); JBlock body = m.body(); StringBuilder statement = new StringBuilder("return "); statement.append("super.getPort(new QName(\"").append(port.getName().getNamespaceURI()).append("\", \"").append(port.getName().getLocalPart()).append("\"), "); statement.append(retType.name()); statement.append(".class);"); body.directStatement(statement.toString()); writeWebEndpoint(port, m); }
private JType getType(TypeMirror typeMirror) { String type = typeMirror.toString(); try { // System.out.println("typeName: "+typeName); return cm.parseType(type); // System.out.println("type: "+type); } catch (ClassNotFoundException e) { return cm.ref(type); } }
/** * Returns contents to be added to javadoc. */ protected final List<Object> listPossibleTypes( CPropertyInfo prop ) { List<Object> r = new ArrayList<Object>(); for( CTypeInfo tt : prop.ref() ) { JType t = tt.getType().toType(outline.parent(),Aspect.EXPOSED); if( t.isPrimitive() || t.isArray() ) r.add(t.fullName()); else { r.add(t); r.add("\n"); } } return r; }
@Override protected JType getType(final Aspect aspect) { if (Aspect.IMPLEMENTATION.equals(aspect)) { return super.getType(aspect); } if (prop instanceof CReferencePropertyInfo) { Set<CElement> elements = ((CReferencePropertyInfo)prop).getElements(); if ((elements != null) && (elements.size() > 0)) { return codeModel.ref(Serializable.class); } } return codeModel.ref(String.class); }
@Override protected JType getType(final Aspect aspect) { if (Aspect.IMPLEMENTATION.equals(aspect)) { return super.getType(aspect); } return codeModel.ref(Serializable.class); }
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()); } }
/** Get the display name of a type. */ private String printName( JType t ) { String name = t.fullName(); if(name.startsWith("java.lang.")) name = name.substring(10); // chop off the package name return name; }
public JType toType(Outline o, Aspect aspect) { try { return o.getCodeModel().parseType(t.toString()); } catch (ClassNotFoundException e) { throw new NoClassDefFoundError(e.getMessage()); } }
public JType getBaseType() { if(baseType!=null && baseType.name!=null) { return TypeUtil.getType(getCodeModel(), baseType.name, Ring.get(ErrorReceiver.class),getLocation()); } BIProperty next = getDefault(); if(next!=null) return next.getBaseType(); else return null; }
private void write(Fault fault) throws JClassAlreadyExistsException { String className = Names.customExceptionClassName(fault); JDefinedClass cls = cm._class(className, ClassType.CLASS); JDocComment comment = cls.javadoc(); if(fault.getJavaDoc() != null){ comment.add(fault.getJavaDoc()); comment.add("\n\n"); } for (String doc : getJAXWSClassComment()) { comment.add(doc); } cls._extends(java.lang.Exception.class); //@WebFault JAnnotationUse faultAnn = cls.annotate(WebFault.class); faultAnn.param("name", fault.getBlock().getName().getLocalPart()); faultAnn.param("targetNamespace", fault.getBlock().getName().getNamespaceURI()); JType faultBean = fault.getBlock().getType().getJavaType().getType().getType(); //faultInfo filed JFieldVar fi = cls.field(JMod.PRIVATE, faultBean, "faultInfo"); //add jaxb annotations fault.getBlock().getType().getJavaType().getType().annotate(fi); fi.javadoc().add("Java type that goes as soapenv:Fault detail element."); JFieldRef fr = JExpr.ref(JExpr._this(), fi); //Constructor JMethod constrc1 = cls.constructor(JMod.PUBLIC); JVar var1 = constrc1.param(String.class, "message"); JVar var2 = constrc1.param(faultBean, "faultInfo"); constrc1.javadoc().addParam(var1); constrc1.javadoc().addParam(var2); JBlock cb1 = constrc1.body(); cb1.invoke("super").arg(var1); cb1.assign(fr, var2); //constructor with Throwable JMethod constrc2 = cls.constructor(JMod.PUBLIC); var1 = constrc2.param(String.class, "message"); var2 = constrc2.param(faultBean, "faultInfo"); JVar var3 = constrc2.param(Throwable.class, "cause"); constrc2.javadoc().addParam(var1); constrc2.javadoc().addParam(var2); constrc2.javadoc().addParam(var3); JBlock cb2 = constrc2.body(); cb2.invoke("super").arg(var1).arg(var3); cb2.assign(fr, var2); //getFaultInfo() method JMethod fim = cls.method(JMod.PUBLIC, faultBean, "getFaultInfo"); fim.javadoc().addReturn().add("returns fault bean: "+faultBean.fullName()); JBlock fib = fim.body(); fib._return(fi); fault.setExceptionClass(cls); }
private void writeGetWsdlLocation(JType retType, JDefinedClass cls, JFieldVar urlField, JFieldVar exField) { JMethod m = cls.method(JMod.PRIVATE|JMod.STATIC , retType, "__getWsdlLocation"); JConditional ifBlock = m.body()._if(exField.ne(JExpr._null())); ifBlock._then()._throw(exField); m.body()._return(urlField); }
public void setType(JType type) { this.type = type; }
public JAXBTypeAndAnnotation(JType type) { this.type = type; }
public JAXBTypeAndAnnotation(TypeAndAnnotation typeAnn, JType type) { this.typeAnn = typeAnn; this.type = type; }
public void setType( JType _type ) { if( this.type==null ) this.type = _type; }
public JType getRawType() { return core.getRawType(); }
/** * Generates the field declaration. */ protected final JFieldVar generateField( JType type ) { return outline.implClass.field( JMod.PROTECTED, type, prop.getName(false) ); }
/** * return the Java type for the given type reference in the model. */ private JType resolve(CTypeRef typeRef,Aspect a) { return outline.parent().resolve(typeRef,a); }
protected JType getType(Aspect aspect) { return super.getType(aspect).boxify().getPrimitiveType(); }
protected JType getFieldType() { return ptype; }
public JType getRawType() { // if( isCollection ) return getInfo().array(); return exposedType; }
public final JType getRawType() { return exposedType; }
public final JType getFieldType() { return implType; }
public final JType resolve(CTypeRef ref, Aspect a) { return ref.getTarget().getType().toType(this, a); }
public JType getRawType() { return codeModel().ref(List.class).narrow(itemType().boxify()); }