类com.fasterxml.jackson.databind.ser.PropertyWriter源码实例Demo

下面列出了怎么用com.fasterxml.jackson.databind.ser.PropertyWriter的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: emissary   文件: JsonOutputFilter.java
@Override
public void serializeAsField(Object pojo, JsonGenerator jgen, SerializerProvider provider, PropertyWriter writer) throws Exception {

    String key = writer.getName();
    @SuppressWarnings("unchecked")
    Collection<Object> values = (Collection<Object>) ((Map<?, ?>) pojo).get(key);

    if (includeParameter(key)) {
        Collection<Object> write = filter(key, values);
        if (CollectionUtils.isNotEmpty(write)) {
            // customize the key
            jgen.writeFieldName(transform(key));

            // only write the element
            ((MapProperty) writer).setValue(write);
            writer.serializeAsElement(write, jgen, provider);
        }
    }
}
 
/**
 * Can serialize field?
 *
 * @param pojo the pojo
 * @param writer the writer
 * @return the boolean
 */
private boolean canSerializeField(final Object pojo, final PropertyWriter writer) {
    boolean foundPackage = false;
    final String packageName = pojo.getClass().getPackage().getName();
    for (int i = 0; !foundPackage && i < INCLUDE_PACKAGES.length; i++) {
        foundPackage = (packageName.startsWith(INCLUDE_PACKAGES[i]));
    }
    if (!foundPackage) {
        LOGGER.trace("Package [{}] is ignored", packageName);
        return false;
    }


    boolean foundField = true;
    final String fieldName = writer.getFullName().getSimpleName();
    for (int i = 0; foundField && i < EXCLUDE_FIELDS.length; i++) {
        foundField = !fieldName.equalsIgnoreCase(EXCLUDE_FIELDS[i]);
    }

    if (!foundField) {
        LOGGER.trace("Field [{}] is excluded", fieldName);
        return false;
    }
    return true;
}
 
源代码3 项目: azure-cosmosdb-java   文件: RntbdToken.java
@Override
public void serializeAsField(
    final Object object,
    final JsonGenerator generator,
    final SerializerProvider provider,
    final PropertyWriter writer) throws Exception {

    if (generator.canOmitFields()) {

        final Object value = writer.getMember().getValue(object);

        if (value instanceof RntbdToken && !((RntbdToken) value).isPresent()) {
            return;
        }
    }

    writer.serializeAsField(object, generator, provider);
}
 
源代码4 项目: elasticactors   文件: JsonLogIgnoreFilter.java
@Override
protected boolean include(PropertyWriter writer) {
    if (writer.findAnnotation(JsonLogIgnore.class) != null) {
        return false;
    }
    JsonLogIgnoreProperties jsonLogIgnoreProperties =
            writer.findAnnotation(JsonLogIgnoreProperties.class);
    if (jsonLogIgnoreProperties != null) {
        for (String ignoredName : jsonLogIgnoreProperties.value()) {
            if (Objects.equals(ignoredName, writer.getName())) {
                return false;
            }
        }
    }
    return super.include(writer);
}
 
@Override
public void serializeAsField(final Object pojo, final JsonGenerator jgen,
                             final SerializerProvider provider,
                             final PropertyWriter writer) throws Exception {
    try {
        if (!canSerializeField(pojo, writer)) {
            return;
        }
        super.serializeAsField(pojo, jgen, provider, writer);
    } catch (final Exception e) {
        LOGGER.debug(e.getMessage());
    }
}
 
源代码6 项目: dremio-oss   文件: SentinelSecureFilter.java
private PropertyWriter filter(PropertyWriter writer) {
  if (!transform) {
    return writer;
  }

  SentinelSecure secure = writer.getAnnotation(SentinelSecure.class);
  if (secure == null || secure.value() == null || secure.value().isEmpty()) {
    return writer;
  }

  return new SensitivePropertyWriter((BeanPropertyWriter) writer, secure.value());
}
 
源代码7 项目: logging-log4j-audit   文件: CatalogEventFilter.java
@Override
public void serializeAsField(Object pojo, JsonGenerator jgen, SerializerProvider provider, PropertyWriter writer) throws Exception {
    if (writer.getName().equals("catalogId") && DEFAULT_CATALOG.equals(((Event)pojo).getCatalogId())) {
        return;
    }
    super.serializeAsField(pojo, jgen, provider, writer);
}
 
@Override
public void serializeAsField(Object pojo, JsonGenerator jgen, SerializerProvider provider, PropertyWriter writer)
    throws Exception {
    if (include(pojo, writer)) {
        super.serializeAsField(pojo, jgen, provider, writer);
    }
}
 
源代码9 项目: Web-API   文件: BaseFilter.java
@Override
public void serializeAsField(Object pojo, JsonGenerator jgen, SerializerProvider provider, PropertyWriter writer)
        throws Exception {
    String key = writer.getName();
    boolean prevDetails = details;

    // Check if we have to skip the field because it is marked as "details" and details is set to false
    // or if we have to turn details off temporarily in case the field is marked as "simple"
    JsonDetails det = writer.getAnnotation(JsonDetails.class);
    if (det != null) {
        if (!details && det.value()) {
            return;
        }

        if (det.simple()) {
            details = false;
        }
    }

    // Add our object to the path
    path.add(key);

    // Check if the permission service allows access to our path
    // If yes then we want to serialize the rest of our object
    if (permissionService.permits(perms, path)) {
        super.serializeAsField(pojo, jgen, provider, writer);
    }

    // Reset path and details after our object is done
    path.remove(key);
    details = prevDetails;
}
 
private boolean includeField(Object pojo, PropertyWriter writer) {
//        if (writer.getAnnotation(ApiPermissionsAllowed.class)  == null) {
//            return true;
//        }
//
//        return Arrays.asList(writer.getAnnotation(ApiPermissionsAllowed.class).value())
//                .stream()
//                .anyMatch(apiPermission -> apiPermission.equals(((ApiEntity) pojo).getrgetPermission()));
        return true;
    }
 
源代码11 项目: eagle   文件: TaggedLogAPIEntity.java
@Override
public void serializeAsField(Object pojo, JsonGenerator jgen, SerializerProvider provider,
                             PropertyWriter writer)
    throws Exception {
    if (pojo instanceof TaggedLogAPIEntity) {
        TaggedLogAPIEntity entity = (TaggedLogAPIEntity)pojo;
        Set<String> modified = entity.modifiedQualifiers();
        Set<String> basePropertyNames = getPropertyNames();
        String writerName = writer.getName();
        if (modified.contains(writerName) || basePropertyNames.contains(writerName)) {
            if ((!entity.isSerializeVerbose() && verboseFields.contains(writerName))
                || (timestamp.equals(writerName)
                    && !EntityDefinitionManager.isTimeSeries(entity.getClass()))) {
                // log skip
                if (LOG.isDebugEnabled()) {
                    LOG.debug("skip field");
                }
            } else {
                // if serializeAlias is not null and exp is not null
                if (exp.equals(writerName) && entity.getSerializeAlias() != null
                    && entity.getExp() != null) {
                    Map<String, Object> _exp = new HashMap<String, Object>();
                    for (Map.Entry<String, Object> entry : entity.getExp().entrySet()) {
                        String alias = entity.getSerializeAlias().get(entry.getKey());
                        if (alias != null) {
                            _exp.put(alias, entry.getValue());
                        } else {
                            _exp.put(entry.getKey(), entry.getValue());
                        }
                    }
                    entity.setExp(_exp);
                }
                // write included field into serialized json output
                writer.serializeAsField(pojo, jgen, provider);
            }
        }
    } else {
        writer.serializeAsField(pojo, jgen, provider);
    }
}
 
源代码12 项目: ameba   文件: JacksonObjectProvider.java
@Override
public void serializeAsField(final Object pojo,
                             final JsonGenerator jgen,
                             final SerializerProvider prov,
                             final PropertyWriter writer) throws Exception {
    if (include(writer.getName())) {
        writer.serializeAsField(pojo, jgen, prov);
    }
}
 
源代码13 项目: ameba   文件: JacksonObjectProvider.java
@Override
public void serializeAsElement(final Object elementValue,
                               final JsonGenerator jgen,
                               final SerializerProvider prov,
                               final PropertyWriter writer) throws Exception {
    if (include(writer.getName())) {
        writer.serializeAsElement(elementValue, jgen, prov);
    }
}
 
源代码14 项目: ameba   文件: JacksonObjectProvider.java
@Override
public void depositSchemaProperty(final PropertyWriter writer,
                                  final ObjectNode propertiesNode,
                                  final SerializerProvider provider) throws JsonMappingException {
    if (include(writer.getName())) {
        writer.depositSchemaProperty(propertiesNode, provider);
    }
}
 
源代码15 项目: ameba   文件: JacksonObjectProvider.java
@Override
public void depositSchemaProperty(final PropertyWriter writer,
                                  final JsonObjectFormatVisitor objectVisitor,
                                  final SerializerProvider provider) throws JsonMappingException {
    if (include(writer.getName())) {
        writer.depositSchemaProperty(objectVisitor, provider);
    }
}
 
源代码16 项目: jfilter   文件: MixinFilter.java
@Override
protected boolean include(PropertyWriter writer) {
    return !isFilterable(writer.getMember().getDeclaringClass(), writer.getName());
}
 
源代码17 项目: dremio-oss   文件: SentinelSecureFilter.java
@Override
public void serializeAsField(Object pojo, JsonGenerator gen, SerializerProvider prov, PropertyWriter writer)
    throws Exception {
  filter(writer).serializeAsField(pojo, gen, prov);
}
 
源代码18 项目: dremio-oss   文件: SentinelSecureFilter.java
@Override
public void serializeAsElement(Object elementValue, JsonGenerator gen, SerializerProvider prov, PropertyWriter writer)
    throws Exception {
  filter(writer).serializeAsElement(elementValue, gen, prov);
}
 
源代码19 项目: dremio-oss   文件: SentinelSecureFilter.java
@SuppressWarnings("deprecation")
@Override
public void depositSchemaProperty(PropertyWriter writer, ObjectNode propertiesNode, SerializerProvider provider) throws JsonMappingException {
  writer.depositSchemaProperty(propertiesNode, provider);
}
 
源代码20 项目: dremio-oss   文件: SentinelSecureFilter.java
@Override
public void depositSchemaProperty(PropertyWriter writer, JsonObjectFormatVisitor objectVisitor, SerializerProvider provider) throws JsonMappingException {
  writer.depositSchemaProperty(objectVisitor, provider);
}
 
public KatharsisFieldPropertyFilter(Predicate2<Object, PropertyWriter> includeChecker) {
    this.includeChecker = includeChecker;
}
 
private boolean include(Object bean, PropertyWriter writer) {
    return includeChecker.test(bean, writer);
}
 
@Override
public void serializeAsField(Object pojo, JsonGenerator jgen, SerializerProvider provider, PropertyWriter writer) throws Exception {
    if (includeField(pojo, writer)) {
        writer.serializeAsField(pojo, jgen, provider);
    }
}
 
源代码24 项目: james-project   文件: FieldNamePropertyFilter.java
@Override
protected boolean include(PropertyWriter writer) {
    return predicate.test(writer.getName());
}
 
源代码25 项目: lams   文件: JsonSerializer.java
/**
 * Accessor for iterating over logical properties that the type
 * handled by this serializer has, from serialization perspective.
 * Actual type of properties, if any, will be
 * {@link com.fasterxml.jackson.databind.ser.BeanPropertyWriter}.
 * Of standard Jackson serializers, only {@link com.fasterxml.jackson.databind.ser.BeanSerializer}
 * exposes properties.
 *
 * @since 2.6
 */
public Iterator<PropertyWriter> properties() {
    return ClassUtil.emptyIterator();
}
 
 类方法
 同包方法