@Override public NormalAnnotationExpr doMerge(NormalAnnotationExpr first, NormalAnnotationExpr second) { NormalAnnotationExpr nae = new NormalAnnotationExpr(); nae.setPairs(mergeCollections(first.getPairs(),second.getPairs())); nae.setName(mergeSingle(first.getName(),second.getName())); return nae; }
/** * 1. check the name * 2. check the member including key and value * if their size is not the same and the less one is all matched in the more one return true */ @Override public boolean doIsEquals(NormalAnnotationExpr first, NormalAnnotationExpr second) { boolean equals = true; if (!first.getName().equals(second.getName())) equals = false; if (equals == true) { if (first.getPairs() == null) return second.getPairs() == null; if (!isSmallerHasEqualsInBigger(first.getPairs(), second.getPairs(), true)) return false; } return equals; } }
if(anno.getName().getName().equals(CONSTRAINT_NOTNULL)){ param.setMandatory(true); return; if(anno.getName().getName().equals(CONSTRAINT_MIN)){ param.setMin(Long.valueOf(extractValueByName(anno.getPairs(),"value"))); return; if(anno.getName().getName().equals(CONSTRAINT_MAX)){ param.setMax(Long.valueOf(extractValueByName(anno.getPairs(), "value"))); return; if(anno.getName().getName().equals(ANNOTATION_PARAM)){ param.setParamType(PARAM); } else if(anno.getName().getName().equals(ANNOTATION_PATH_PARAM)){ param.setParamType(PATH_PARAM); } else if(anno.getName().getName().equals(ANNOTATION_QUERYPARAM)){ param.setParamType(QUERY); } else if(anno.getName().getName().equals(ANNOTATION_FORMPARAM)){ param.setParamType(FORM); } else if(anno.getName().getName().equals(ANNOTATION_DEFAULTVALUE)){ param.setDefaultValue(asString(anno.getPairs().get(0).getValue())); LOGGER.warn("[controller]Annotation " + anno + " at line " + anno.getBeginLine() + " " + "is unknown!");
@Override public void visit(NormalAnnotationExpr n, Void arg) { // performance for (final MemberValuePair m : emptyIfNull(n.getPairs())) { m.accept(this, arg); } }
/** * Visit the controller normal annotations. * <p> * We add the value of the Path annotation as the ControllerModel base Path. * </p> * @param anno {@inheritDoc} * @param controller The ControllerModel we are building. */ @Override public void visit(NormalAnnotationExpr anno, ControllerModel controller) { //org.wisdom.api.annotations.Path (There is only one pair ->value="") if(anno.getName().getName().equals(ANNOTATION_PATH)){ java.lang.String path = asString(anno.getPairs().get(0).getValue()); controller.setBasePath(path); } }
private Optional<AnnotationImp> getAnnotationMethod(final AnnotationExpr an) { Optional<AnnotationImp> optional = Optional.empty(); final List<String> classes = this.findImportForClasses(an.getNameAsString()); for (final Class<?> clazz : this.loadClasses(classes)) { try { final AnnotationImp annotationImp = new AnnotationImp(clazz.asSubclass(Annotation.class)); annotationImp.location(LocationEnum.METHOD); an.ifNormalAnnotationExpr(normal -> { normal.getPairs().forEach(pair -> { annotationImp.property( pair.getNameAsString(), pair.getValue().toString().replaceAll("\"", "")); }); }); optional = Optional.ofNullable(annotationImp); break; } catch (final Exception e) { // Probably wrong import. } } return optional; }
private Optional<AnnotationImp> getAnnotationField(final AnnotationExpr an) { Optional<AnnotationImp> optional = Optional.empty(); final List<String> classes = this.findImportForClasses(an.getNameAsString()); for (final Class<?> clazz : this.loadClasses(classes)) { try { final AnnotationImp annotationImp = new AnnotationImp(clazz.asSubclass(Annotation.class)); annotationImp.location(LocationEnum.FIELD); an.ifNormalAnnotationExpr(normal -> { normal.getPairs().forEach(pair -> { annotationImp.property( pair.getNameAsString(), pair.getValue().toString().replaceAll("\"", "")); }); }); optional = Optional.ofNullable(annotationImp); break; } catch (final Exception e) { // Probably wrong import. } } return optional; }