@Override public ChangeApplicator createApplicatorFor(final TCClass clazz, final boolean indexed) { if (indexed) { return new ArrayApplicator(this.encoding); } final String name = clazz.getName(); final Class applicatorClazz = this.config.getChangeApplicator(clazz.getPeerClass()); if (applicatorClazz == null) { if (LiteralValues.isLiteral(name)) { return new LiteralTypesApplicator(clazz, this.encoding); } else { return new PhysicalApplicator(clazz, this.encoding); } } TCLogger logger = TCLogging.getLogger(ChangeApplicator.class.getName() + "." + applicatorClazz.getName()); try { Constructor cstr = applicatorClazz.getConstructor(APPLICATOR_CSTR_SIGNATURE); Object[] params = new Object[] { encoding, logger }; return (ChangeApplicator) cstr.newInstance(params); } catch (final Exception e) { throw new AssertionError(e); } } }
@Override public TraversedReferences getPortableObjects(Object pojo, TraversedReferences addTo) { if (!(pojo instanceof TransparentAccess)) return addTo; Map map = new HashMap(); getAllFields(pojo, map); TCField[] fields = clazz.getPortableFields(); if (clazz.isNonStaticInner()) { String qualifiedParentFieldName = clazz.getParentFieldName(); final String fName; try { fName = ClassUtils.parseFullyQualifiedFieldName(qualifiedParentFieldName).getShortFieldName(); } catch (ParseException e) { throw new AssertionError(e); } addTo.addNamedReference(clazz.getName(), fName, map.get(qualifiedParentFieldName)); } for (TCField field : fields) { Object o = map.get(field.getName()); if (o != null && isPortableReference(o.getClass())) { addTo.addNamedReference(field.getName(), o); } } return addTo; }
if (pojo instanceof TransparentAccess) { getAllFields(pojo, fieldValues); Object parentObject = fieldValues.get(clazz.getParentFieldName()); Assert.assertNotNull("parentObject", parentObject); Object parentObjectID = getDehydratableObject(parentObject, objectManager); if (parentObjectID != null) { writer.setParentObjectID((ObjectID) parentObjectID); Object value = getDehydratableObject(fieldValue, objectManager); if (value == null) {
if (pojo instanceof TransparentAccess) { getAllFields(pojo, fieldValues); Object parentObject = fieldValues.get(clazz.getParentFieldName()); Assert.assertNotNull("parentObject", parentObject); Object parentObjectID = getDehydratableObject(parentObject, objectManager); if (parentObjectID != null) { writer.setParentObjectID((ObjectID) parentObjectID); Object value = getDehydratableObject(fieldValue, objectManager); if (value == null) {
@Override public TraversedReferences getPortableObjects(Object pojo, TraversedReferences addTo) { if (!(pojo instanceof TransparentAccess)) return addTo; Map map = new HashMap(); getAllFields(pojo, map); TCField[] fields = clazz.getPortableFields(); if (clazz.isNonStaticInner()) { String qualifiedParentFieldName = clazz.getParentFieldName(); final String fName; try { fName = ClassUtils.parseFullyQualifiedFieldName(qualifiedParentFieldName).getShortFieldName(); } catch (ParseException e) { throw new AssertionError(e); } addTo.addNamedReference(clazz.getName(), fName, map.get(qualifiedParentFieldName)); } for (TCField field : fields) { Object o = map.get(field.getName()); if (o != null && isPortableReference(o.getClass())) { addTo.addNamedReference(field.getName(), o); } } return addTo; }
@Override public ChangeApplicator createApplicatorFor(final TCClass clazz, final boolean indexed) { if (indexed) { return new ArrayApplicator(this.encoding); } final String name = clazz.getName(); final Class applicatorClazz = this.config.getChangeApplicator(clazz.getPeerClass()); if (applicatorClazz == null) { if (LiteralValues.isLiteral(name)) { return new LiteralTypesApplicator(clazz, this.encoding); } else { return new PhysicalApplicator(clazz, this.encoding); } } TCLogger logger = TCLogging.getLogger(ChangeApplicator.class.getName() + "." + applicatorClazz.getName()); try { Constructor cstr = applicatorClazz.getConstructor(APPLICATOR_CSTR_SIGNATURE); Object[] params = new Object[] { encoding, logger }; return (ChangeApplicator) cstr.newInstance(params); } catch (final Exception e) { throw new AssertionError(e); } } }