public Object decompose(final Graph graph) {
if (getClazz() == null) {
return null;
}
final Class clazz = (Class)graph.decomposeReference(getClazz());
final Factory factory = Factory.getFactory(clazz);
final Object obj;
if (factory.supports(clazz)) {
obj = factory.create(clazz, this);
} else {
final String className = clazz != null ? clazz.getName() : "null";
SerialLogger.ROOT_LOGGER.classUnsupportedByFactoryReturningNull(className, factory.getClass().getName());
obj = null;
}
Map<String, Integer> ids = getIds();
if (obj != null && ids != null) {
for (final Access access : getAccessList(clazz)) {