public HeterogeneousLuceneSerializer() { final PrimitiveSerializer primitiveSerializer = new PrimitiveSerializer(); SerializerUtil.supportedPrimitiveTypes().stream() .forEach(type -> mappers.put(type, primitiveSerializer)); pdxMapper = new PdxLuceneSerializer(); }
private Object getFieldValue(Object value, String fieldName) { if (value instanceof PdxInstance) { PdxInstance pdx = (PdxInstance) value; Object fieldValue = null; if (pdx.hasField(fieldName)) { fieldValue = pdx.getField(fieldName); } return fieldValue; } else { Class<?> clazz = value.getClass(); if (fieldName.equals(LuceneService.REGION_VALUE_FIELD) && SerializerUtil.supportedPrimitiveTypes().contains(clazz)) { return value; } try { Field field = clazz.getDeclaredField(fieldName); field.setAccessible(true); return field.get(value); } catch (Exception e) { return null; } } } }