private void process( AbstractTypeDeclaration astNode, final JstType jstType, final Annotation anno, final CustomType cType, final CustomInfo cInfo) { String name; String value = null; if (anno instanceof NormalAnnotation) { List<MemberValuePair> annos = getAnnoMemberPairs(anno); if (annos.size() > 0) { for (MemberValuePair pair : annos) { name = getName(pair); if (ANNO_NAME.equals(name) || ANNO_VALUE.equals(name)) { if (pair.getValue() instanceof QualifiedName) { value = getValue((QualifiedName) pair.getValue(), astNode, jstType); } else { value = getValue(pair.getValue(), astNode, jstType); } break; } } cInfo.setName(value); } } else if (anno instanceof SingleMemberAnnotation) { value = getValue(((SingleMemberAnnotation) anno).getValue(), astNode, jstType); cInfo.setName(value); } else { value = astNode.getName().toString(); } if (value == null) { return; } cType.setAttr(cInfo.getAttr()); cType.setJstName(value); }
private void process( MethodDeclaration astNode, final JstType jstType, final Annotation anno, final CustomType cType, final CustomInfo cInfo) { MethodKey mtdKey = MethodKey.genMethodKey(astNode); CustomMethod cMtd = cType.getCustomMethod(mtdKey); if (cMtd == null) { cMtd = new CustomMethod(mtdKey); cType.addCustomMethod(cMtd); } String name; String value = null; if (anno instanceof NormalAnnotation) { List<MemberValuePair> annos = getAnnoMemberPairs(anno); if (annos.size() > 0) { for (MemberValuePair pair : annos) { name = getName(pair); if (ANNO_NAME.equals(name) || ANNO_VALUE.equals(name)) { if (pair.getValue() instanceof QualifiedName) { value = getValue((QualifiedName) pair.getValue(), astNode, jstType); } else { value = getValue(pair.getValue(), astNode, jstType); } break; } } } } else if (anno instanceof SingleMemberAnnotation) { value = getValue(((SingleMemberAnnotation) anno).getValue(), astNode, jstType); cInfo.setName(value); } else if (cInfo.isMappedToJS() || cInfo.isMappedToVJO()) { value = astNode.getName().toString(); } if (value == null) { return; } cMtd.setAttr(cInfo.getAttr()); int index = value.lastIndexOf("."); if (index > 0) { cMtd.setJstOwnerTypeName(value.substring(0, index)); cMtd.setJstName(value.substring(index + 1)); cInfo.setName(value); } else { cMtd.setJstName(value); cInfo.setName(value); } }
// // Satisfy IAnnoProcessor // @Override public CustomInfo process(final ASTNode astNode, final JstType jstType) { List<Annotation> annos = getAnnotations(astNode); if (annos.isEmpty()) { return null; } CustomInfo cInfo = new CustomInfo(); boolean forceFullyQualified = false; String annoName; for (Annotation anno : annos) { annoName = anno.getTypeName().toString(); if (annoName.equals(AExclude.class.getSimpleName())) { cInfo.setAttr(CustomAttr.EXCLUDED); } else if (annoName.equals(AJavaOnly.class.getSimpleName())) { cInfo.setAttr(CustomAttr.JAVA_ONLY); } else if (annoName.equals(AJsProxy.class.getSimpleName())) { cInfo.setAttr(CustomAttr.JS_PROXY); } else if (annoName.equals(AMappedToJS.class.getSimpleName())) { cInfo.setAttr(CustomAttr.MAPPED_TO_JS); process(astNode, jstType, anno, cInfo); } else if (annoName.equals(AMappedToVJO.class.getSimpleName())) { cInfo.setAttr(CustomAttr.MAPPED_TO_VJO); process(astNode, jstType, anno, cInfo); } else if (annoName.equals(ACustomizedAs.class.getSimpleName())) { MemberValuePair mvPair; for (Object pair : ((NormalAnnotation) anno).values()) { if (pair instanceof MemberValuePair) { mvPair = (MemberValuePair) pair; if (mvPair.getName().toString().equals("type")) { Type asAstType = ((TypeLiteral) mvPair.getValue()).getType(); IJstType asJstType = TranslateCtx.ctx() .getProvider() .getDataTypeTranslator() .processType(asAstType, jstType); cInfo.setAsType(asJstType); } else if (mvPair.getName().toString().equals("name")) { cInfo.setAsName(((StringLiteral) mvPair.getValue()).getLiteralValue()); } } } } else if (annoName.equals(ARename.class.getSimpleName())) { process(astNode, jstType, anno, cInfo); } else if (annoName.equals(AProperty.class.getSimpleName())) { if (astNode instanceof MethodDeclaration) { genMetaForPty((MethodDeclaration) astNode, jstType, anno); } } else if (annoName.equals(AForceFullyQualified.class.getSimpleName())) { if (astNode instanceof MethodDeclaration) { forceFullyQualified = TranslateHelper.isStatic(((MethodDeclaration) astNode).modifiers()); } } } if (forceFullyQualified) { cInfo.setForceFullyQualify(true); } return cInfo; }
private void process( FieldDeclaration astNode, final JstType jstType, final Annotation anno, final CustomType cType, final CustomInfo cInfo) { String value = null; if (anno instanceof NormalAnnotation) { List<MemberValuePair> annos = getAnnoMemberPairs(anno); String name; if (annos.size() > 0) { for (MemberValuePair pair : annos) { name = getName(pair); if (ANNO_NAME.equals(name) || ANNO_VALUE.equals(name)) { if (pair.getValue() instanceof QualifiedName) { value = getValue((QualifiedName) pair.getValue(), astNode, jstType); } else { value = getValue(pair.getValue(), astNode, jstType); } cInfo.setName(value); break; } } } } else if (anno instanceof SingleMemberAnnotation) { value = getValue(((SingleMemberAnnotation) anno).getValue(), astNode, jstType); cInfo.setName(value); } if (value == null) { return; } String fName = null; String tName = null; if (value != null) { cInfo.setName(value); int index = value.lastIndexOf("."); if (index < 0) { fName = value; } else { fName = value.substring(index + 1, value.length()); tName = value.substring(0, index); } } VariableDeclarationFragment v; String vName; CustomField cField; for (Object o : astNode.fragments()) { if (o instanceof VariableDeclarationFragment) { v = (VariableDeclarationFragment) o; vName = v.getName().toString(); cField = cType.getCustomField(vName); if (cField == null) { cField = new CustomField(vName); cType.addCustomField(cField); } cField.setAttr(cInfo.getAttr()); cField.setJstName(fName); cField.setJstOwnerTypeName(tName); } } }