public void testAnnotationDefaultsScaleIfMissing() throws Exception { final Class<?> cls = SimpleObjectWithBigDecimalColumnAnnotations.class; final Method method = cls.getMethod("getBigDecimalPropertyWithColumnAnnotationMissingScale"); facetFactory.process(new FacetFactory.ProcessMethodContext(cls, null, null, method, methodRemover, facetedMethod)); final BigDecimalValueFacet facet = facetedMethod.getFacet(BigDecimalValueFacet.class); assertNotNull(facet); assertTrue(facet instanceof BigDecimalFacetDerivedFromJdoColumn); assertThat(facet.getScale(), is(2)); }
@Override public void process(final ProcessMethodContext processMethodContext) { final Class<?> returnType = processMethodContext.getMethod().getReturnType(); if (!returnType.isEnum()) { return; } FacetUtil.addFacet(new PropertyChoicesFacetDerivedFromChoicesFacet(processMethodContext.getFacetHolder(), getSpecificationLookup())); }
private void attachPropertyModifyFacetIfModifyMethodIsFound(final ProcessMethodContext processMethodContext) { final Method getMethod = processMethodContext.getMethod(); final String capitalizedName = NameUtils.javaBaseName(getMethod.getName()); final Class<?> returnType = getMethod.getReturnType(); final Class<?>[] paramTypes = new Class[] { returnType }; final Class<?> cls = processMethodContext.getCls(); final Method modifyMethod = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, MethodPrefixConstants.MODIFY_PREFIX + capitalizedName, void.class, paramTypes); if (modifyMethod == null) { return; } processMethodContext.removeMethod(modifyMethod); final FacetHolder property = processMethodContext.getFacetHolder(); FacetUtil.addFacet(new PropertySetterFacetViaModifyMethod(modifyMethod, property)); }
@Override public void process(final ProcessMethodContext processMethodContext) { final Class<MemberOrder> annotationClass = MemberOrder.class; final MemberOrder annotation = getAnnotation(processMethodContext.getMethod(), annotationClass); FacetUtil.addFacet(create(annotation, processMethodContext.getFacetHolder())); }
@Override public void process(final ProcessMethodContext processMethodContext) { final NotContributed annotation = getAnnotation(processMethodContext.getMethod(), NotContributed.class); FacetUtil.addFacet(create(annotation, processMethodContext.getFacetHolder())); }
private void attachExplorationFacetIfActionMethodNamePrefixed(final ProcessMethodContext processMethodContext) { final Method actionMethod = processMethodContext.getMethod(); final String capitalizedName = NameUtils.capitalizeName(actionMethod.getName()); if (!capitalizedName.startsWith(EXPLORATION_PREFIX)) { return; } final FacetHolder facetedMethod = processMethodContext.getFacetHolder(); FacetUtil.addFacet(new ExplorationFacetViaNamingConvention(facetedMethod)); }
@Override public void process(final ProcessMethodContext processMethodContext) { final MaxLength annotation = getAnnotation(processMethodContext.getMethod(), MaxLength.class); FacetUtil.addFacet(create(annotation, processMethodContext.getFacetHolder())); }
@Override public void process(final ProcessMethodContext processMethodContext) { final Class<?> type = processMethodContext.getMethod().getReturnType(); final FacetedMethod facetHolder = processMethodContext.getFacetHolder(); addFacetDerivedFromTypeIfPresent(facetHolder, type); }
@Override public void process(final ProcessMethodContext processMethodContext) { FacetUtil.addFacet(create(processMethodContext.getMethod(), processMethodContext.getFacetHolder())); }
private static void attachActionDefaultsFacetIfParameterDefaultsMethodIsFound(final ProcessMethodContext processMethodContext) { Method defaultsMethod = findDefaultsMethodReturning(processMethodContext, Object[].class); if (defaultsMethod == null) { defaultsMethod = findDefaultsMethodReturning(processMethodContext, List.class); } if (defaultsMethod == null) { return; } processMethodContext.removeMethod(defaultsMethod); final FacetHolder facetedMethod = processMethodContext.getFacetHolder(); final ActionDefaultsFacetViaMethod facet = new ActionDefaultsFacetViaMethod(defaultsMethod, facetedMethod); FacetUtil.addFacet(facet); }
@Override public void process(final ProcessMethodContext processMethodContext) { final FacetedMethod facetedMethod = processMethodContext.getFacetHolder(); final List<FacetedMethodParameter> holderList = facetedMethod.getParameters(); attachNamedFacetForParametersIfParameterNamesMethodIsFound(processMethodContext, holderList); }
@Override public void process(final ProcessMethodContext processMethodContext) { final FacetedMethod facetedMethod = processMethodContext.getFacetHolder(); final List<FacetedMethodParameter> holderList = facetedMethod.getParameters(); attachDescribedAsFacetForParametersIfParameterDescriptionsMethodIsFound(processMethodContext, holderList); }
private void attachValidateFacetIfValidateMethodIsFound(final ProcessMethodContext processMethodContext) { final Method getMethod = processMethodContext.getMethod(); final String capitalizedName = NameUtils.javaBaseName(getMethod.getName()); final Class<?> returnType = getMethod.getReturnType(); final Class<?>[] paramTypes = new Class[] { returnType }; final Class<?> cls = processMethodContext.getCls(); final Method method = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, MethodPrefixConstants.VALIDATE_PREFIX + capitalizedName, String.class, paramTypes); if (method == null) { return; } processMethodContext.removeMethod(method); final FacetHolder property = processMethodContext.getFacetHolder(); FacetUtil.addFacet(new PropertyValidateFacetViaMethod(method, property)); }
@Override public void process(final ProcessMethodContext processMethodContext) { FacetUtil.addFacet(createFacet(processMethodContext.getFacetHolder())); }
@Override public void process(final ProcessMethodContext processMethodContext) { final ObjectSpecification spec = getSpecificationLookup().loadSpecification(processMethodContext.getMethod().getDeclaringClass()); if (spec.containsDoOpFacet(ImmutableFacet.class)) { final ImmutableFacet immutableFacet = spec.getFacet(ImmutableFacet.class); final FacetedMethod facetHolder = processMethodContext.getFacetHolder(); FacetUtil.addFacet(new DisabledFacetForPropertyDerivedFromImmutable(immutableFacet, facetHolder)); } }
@Override public void process(final ProcessMethodContext processMethodContext) { final NotPersisted annotation = getAnnotation(processMethodContext.getMethod(), NotPersisted.class); FacetUtil.addFacet(create(annotation, processMethodContext.getFacetHolder())); }
@Override public void process(final ProcessMethodContext processMethodContext) { final Prototype annotation = getAnnotation(processMethodContext.getMethod(), Prototype.class); FacetUtil.addFacet(create(annotation, processMethodContext.getFacetHolder())); }
@Override public void process(final ProcessMethodContext processMethodContext) { final NotPersisted annotation = getAnnotation(processMethodContext.getMethod(), NotPersisted.class); FacetUtil.addFacet(create(annotation, processMethodContext.getFacetHolder())); }
private static Method findDefaultsMethodReturning(final ProcessMethodContext processMethodContext, final Class<?> returnType) { final Method actionMethod = processMethodContext.getMethod(); final String capitalizedName = NameUtils.capitalizeName(actionMethod.getName()); final String name = MethodPrefixConstants.DEFAULT_PREFIX + capitalizedName; final Class<?> cls = processMethodContext.getCls(); return MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, name, returnType, new Class[0]); }
public static void attachDescribedAsFacetIfDescriptionMethodIsFound(final ProcessMethodContext processMethodContext) { final Method method = processMethodContext.getMethod(); final String capitalizedName = NameUtils.javaBaseNameStripAccessorPrefixIfRequired(method.getName()); final Class<?> cls = processMethodContext.getCls(); final Method descriptionMethod = MethodFinderUtils.findMethod(cls, MethodScope.CLASS, MethodPrefixConstants.DESCRIPTION_PREFIX + capitalizedName, String.class, new Class[0]); if (descriptionMethod == null) { return; } processMethodContext.removeMethod(descriptionMethod); final String description = invokeDescriptionMethod(descriptionMethod); final FacetHolder facetedMethod = processMethodContext.getFacetHolder(); FacetUtil.addFacet(new DescribedAsFacetViaMethod(description, descriptionMethod, facetedMethod)); }