package org.zbus.common.json.serializer; import java.lang.reflect.Type; import java.util.List; import org.zbus.common.json.parser.DefaultJSONParser; import org.zbus.common.json.parser.deserializer.ExtraProcessor; import org.zbus.common.json.parser.deserializer.ExtraTypeProvider; public class FilterUtils { public static Type getExtratype(DefaultJSONParser parser, Object object, String key) { List<ExtraTypeProvider> extraTypeProviders = parser.getExtraTypeProvidersDirect(); if (extraTypeProviders == null) { return null; } Type type = null; for (ExtraTypeProvider extraProvider : extraTypeProviders) { type = extraProvider.getExtraType(object, key); } return type; } public static void processExtra(DefaultJSONParser parser, Object object, String key, Object value) { List<ExtraProcessor> extraProcessors = parser.getExtraProcessorsDirect(); if (extraProcessors == null) { return; } for (ExtraProcessor process : extraProcessors) { process.processExtra(object, key, value); } } public static char writeBefore(JSONSerializer serializer, Object object, char seperator) { List<BeforeFilter> beforeFilters = serializer.getBeforeFiltersDirect(); if (beforeFilters != null) { for (BeforeFilter beforeFilter : beforeFilters) { seperator = beforeFilter.writeBefore(serializer, object, seperator); } } return seperator; } public static char writeAfter(JSONSerializer serializer, Object object, char seperator) { List<AfterFilter> afterFilters = serializer.getAfterFiltersDirect(); if (afterFilters != null) { for (AfterFilter afterFilter : afterFilters) { seperator = afterFilter.writeAfter(serializer, object, seperator); } } return seperator; } public static Object processValue(JSONSerializer serializer, Object object, String key, Object propertyValue) { List<ValueFilter> valueFilters = serializer.getValueFiltersDirect(); if (valueFilters != null) { for (ValueFilter valueFilter : valueFilters) { propertyValue = valueFilter.process(object, key, propertyValue); } } return propertyValue; } public static String processKey(JSONSerializer serializer, Object object, String key, Object propertyValue) { List<NameFilter> nameFilters = serializer.getNameFiltersDirect(); if (nameFilters != null) { for (NameFilter nameFilter : nameFilters) { key = nameFilter.process(object, key, propertyValue); } } return key; } public static String processKey(JSONSerializer serializer, Object object, String key, byte intValue) { List<NameFilter> nameFilters = serializer.getNameFiltersDirect(); if (nameFilters != null) { Object propertyValue = Byte.valueOf(intValue); for (NameFilter nameFilter : nameFilters) { key = nameFilter.process(object, key, propertyValue); } } return key; } public static String processKey(JSONSerializer serializer, Object object, String key, short intValue) { List<NameFilter> nameFilters = serializer.getNameFiltersDirect(); if (nameFilters != null) { Object propertyValue = Short.valueOf(intValue); for (NameFilter nameFilter : nameFilters) { key = nameFilter.process(object, key, propertyValue); } } return key; } public static String processKey(JSONSerializer serializer, Object object, String key, int intValue) { List<NameFilter> nameFilters = serializer.getNameFiltersDirect(); if (nameFilters != null) { Object propertyValue = Integer.valueOf(intValue); for (NameFilter nameFilter : nameFilters) { key = nameFilter.process(object, key, propertyValue); } } return key; } public static String processKey(JSONSerializer serializer, Object object, String key, long intValue) { List<NameFilter> nameFilters = serializer.getNameFiltersDirect(); if (nameFilters != null) { Object propertyValue = Long.valueOf(intValue); for (NameFilter nameFilter : nameFilters) { key = nameFilter.process(object, key, propertyValue); } } return key; } public static String processKey(JSONSerializer serializer, Object object, String key, float intValue) { List<NameFilter> nameFilters = serializer.getNameFiltersDirect(); if (nameFilters != null) { Object propertyValue = Float.valueOf(intValue); for (NameFilter nameFilter : nameFilters) { key = nameFilter.process(object, key, propertyValue); } } return key; } public static String processKey(JSONSerializer serializer, Object object, String key, double intValue) { List<NameFilter> nameFilters = serializer.getNameFiltersDirect(); if (nameFilters != null) { Object propertyValue = Double.valueOf(intValue); for (NameFilter nameFilter : nameFilters) { key = nameFilter.process(object, key, propertyValue); } } return key; } public static String processKey(JSONSerializer serializer, Object object, String key, boolean intValue) { List<NameFilter> nameFilters = serializer.getNameFiltersDirect(); if (nameFilters != null) { Object propertyValue = Boolean.valueOf(intValue); for (NameFilter nameFilter : nameFilters) { key = nameFilter.process(object, key, propertyValue); } } return key; } public static String processKey(JSONSerializer serializer, Object object, String key, char intValue) { List<NameFilter> nameFilters = serializer.getNameFiltersDirect(); if (nameFilters != null) { Object propertyValue = Character.valueOf(intValue); for (NameFilter nameFilter : nameFilters) { key = nameFilter.process(object, key, propertyValue); } } return key; } public static boolean applyName(JSONSerializer serializer, Object object, String key) { List<PropertyPreFilter> filters = serializer.getPropertyPreFiltersDirect(); if (filters == null) { return true; } for (PropertyPreFilter filter : filters) { if (!filter.apply(serializer, object, key)) { return false; } } return true; } public static boolean apply(JSONSerializer serializer, Object object, String key, Object propertyValue) { List<PropertyFilter> propertyFilters = serializer.getPropertyFiltersDirect(); if (propertyFilters == null) { return true; } for (PropertyFilter propertyFilter : propertyFilters) { if (!propertyFilter.apply(object, key, propertyValue)) { return false; } } return true; } public static boolean apply(JSONSerializer serializer, Object object, String key, byte value) { List<PropertyFilter> propertyFilters = serializer.getPropertyFiltersDirect(); if (propertyFilters != null) { boolean apply = true; Object propertyValue = Byte.valueOf(value); for (PropertyFilter propertyFilter : propertyFilters) { if (!propertyFilter.apply(object, key, propertyValue)) { return false; } } return apply; } return true; } public static boolean apply(JSONSerializer serializer, Object object, String key, short value) { List<PropertyFilter> propertyFilters = serializer.getPropertyFiltersDirect(); if (propertyFilters != null) { boolean apply = true; Object propertyValue = Short.valueOf(value); for (PropertyFilter propertyFilter : propertyFilters) { if (!propertyFilter.apply(object, key, propertyValue)) { return false; } } return apply; } return true; } public static boolean apply(JSONSerializer serializer, Object object, String key, int value) { List<PropertyFilter> propertyFilters = serializer.getPropertyFiltersDirect(); if (propertyFilters != null) { boolean apply = true; Object propertyValue = Integer.valueOf(value); for (PropertyFilter propertyFilter : propertyFilters) { if (!propertyFilter.apply(object, key, propertyValue)) { return false; } } return apply; } return true; } public static boolean apply(JSONSerializer serializer, Object object, String key, char value) { List<PropertyFilter> propertyFilters = serializer.getPropertyFiltersDirect(); if (propertyFilters != null) { boolean apply = true; Object propertyValue = Character.valueOf(value); for (PropertyFilter propertyFilter : propertyFilters) { if (!propertyFilter.apply(object, key, propertyValue)) { return false; } } return apply; } return true; } public static boolean apply(JSONSerializer serializer, Object object, String key, long value) { List<PropertyFilter> propertyFilters = serializer.getPropertyFiltersDirect(); if (propertyFilters != null) { boolean apply = true; Object propertyValue = Long.valueOf(value); for (PropertyFilter propertyFilter : propertyFilters) { if (!propertyFilter.apply(object, key, propertyValue)) { return false; } } return apply; } return true; } public static boolean apply(JSONSerializer serializer, Object object, String key, float value) { List<PropertyFilter> propertyFilters = serializer.getPropertyFiltersDirect(); if (propertyFilters != null) { boolean apply = true; Object propertyValue = Float.valueOf(value); for (PropertyFilter propertyFilter : propertyFilters) { if (!propertyFilter.apply(object, key, propertyValue)) { return false; } } return apply; } return true; } public static boolean apply(JSONSerializer serializer, Object object, String key, double value) { List<PropertyFilter> propertyFilters = serializer.getPropertyFiltersDirect(); if (propertyFilters != null) { boolean apply = true; Object propertyValue = Double.valueOf(value); for (PropertyFilter propertyFilter : propertyFilters) { if (!propertyFilter.apply(object, key, propertyValue)) { return false; } } return apply; } return true; } }