com.fasterxml.jackson.databind.introspect.BeanPropertyDefinition#hasSetter ( )源码实例Demo

下面列出了com.fasterxml.jackson.databind.introspect.BeanPropertyDefinition#hasSetter ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

@Override
protected void processBeanParameter(int producerParamIdx, Parameter producerParameter) {
  ProducerBeanParamMapper mapper = new ProducerBeanParamMapper(
      providerMethod.getParameters()[producerParamIdx].getName(), producerParameter.getType());
  JavaType producerType = TypeFactory.defaultInstance().constructType(producerParameter.getParameterizedType());
  for (BeanPropertyDefinition propertyDefinition : serializationConfig.introspect(producerType)
      .findProperties()) {
    String parameterName = collectParameterName(providerMethod, propertyDefinition);

    Integer swaggerIdx = findSwaggerParameterIndex(parameterName);
    if (swaggerIdx == null) {
      throw new IllegalStateException(String
          .format("failed to find producer parameter in contract, method=%s:%s, bean parameter name=%s.",
              providerMethod.getDeclaringClass().getName(), providerMethod.getName(), parameterName));
    }

    Setter<Object, Object> setter;
    if (propertyDefinition.hasSetter()) {
      setter = LambdaMetafactoryUtils.createLambda(propertyDefinition.getSetter().getAnnotated(), Setter.class);
    } else {
      setter = LambdaMetafactoryUtils.createSetter(propertyDefinition.getField().getAnnotated());
    }

    swaggerParameterTypes.put(parameterName, propertyDefinition.getPrimaryType());
    mapper.addField(parameterName, setter);
    processedSwaggerParamters.add(parameterName);
  }
  mappers.add(mapper);
}
 
源代码2 项目: servicecomb-java-chassis   文件: BeanDescriptor.java
protected Object initSetter(BeanPropertyDefinition propertyDefinition) {
  if (propertyDefinition.hasSetter()) {
    return LambdaMetafactoryUtils.createSetter(propertyDefinition.getSetter().getAnnotated());
  }

  if (propertyDefinition.hasField() && propertyDefinition.getField().isPublic()) {
    return LambdaMetafactoryUtils.createSetter(propertyDefinition.getField().getAnnotated());
  }

  return null;
}
 
@Override
public BeanDeserializerBuilder updateBuilder(DeserializationConfig config, BeanDescription beanDesc, BeanDeserializerBuilder builder) {
    for (BeanPropertyDefinition propDef : beanDesc.findProperties()) {
        if (!propDef.hasGetter() || propDef.hasSetter()) {
            continue;
        }
        AnnotatedMember getter = propDef.getAccessor();
        if (!Keeper.class.equals(getter.getRawType())) {
            continue;
        }

        builder.addOrReplaceProperty(new CustomGetterBeanProperty(propDef, getter), true);
    }
    return builder;
}