Class ReflectiveObjectPersister

  extended by com.atlassian.confluence.importexport.xmlimport.persister.AbstractObjectPersister
      extended by com.atlassian.confluence.importexport.xmlimport.persister.ReflectiveObjectPersister
All Implemented Interfaces:

public class ReflectiveObjectPersister
extends AbstractObjectPersister
implements ObjectPersister

Uses Hibernate metadata to persist imported objects. This code is a direct port of the old import code that was scattered between ReverseDatabinder and poorly factored helper classes. Hopefully, though, it is a lot easier to understand encapsulated here. Limitations: the ReflectiveObjectPersister is NOT generic enough to persist anything you throw at it. It makes assumptions about the objects that are true of most Confluence hibernate objects: including the presence of an ID of type Long. Types that the reflective persister can not handle will need their own specific persister, for example PropertySetItemPersister.

Field Summary
static org.slf4j.Logger log
Fields inherited from class com.atlassian.confluence.importexport.xmlimport.persister.AbstractObjectPersister
persisterOperations, unsatisfiedObjectDependencies
Constructor Summary
ReflectiveObjectPersister(LabelManager labelManager, ConfluenceUserDao confluenceUserDao, StorageFormatUserRewriter storageFormatUserRewriter)
Method Summary
 List<TransientHibernateHandle> persist(ImportProcessorContext context, ImportedObject importedObject)
          Persist a given imported object.
Methods inherited from class com.atlassian.confluence.importexport.xmlimport.persister.AbstractObjectPersister
getPrimitivePropertyValue, getReferencePropertyValue
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Detail


public static final org.slf4j.Logger log
Constructor Detail


public ReflectiveObjectPersister(LabelManager labelManager,
                                 ConfluenceUserDao confluenceUserDao,
                                 StorageFormatUserRewriter storageFormatUserRewriter)
Method Detail


public List<TransientHibernateHandle> persist(ImportProcessorContext context,
                                              ImportedObject importedObject)
                                       throws Exception
Description copied from interface: ObjectPersister
Persist a given imported object.

Specified by:
persist in interface ObjectPersister
context - the context of the current import operation
importedObject - the object to save.
a list of handles of the objects that were saved. If IDs are being rewritten on import, this list should still contain the pre-rewriting ID as it appears in the backup file
Exception - if something goes wrong. To avoid duplication of "wrap everything in one exception type" code in every persister, it is assumed wrapping happens at a higher level.

Copyright © 2003–2015 Atlassian. All rights reserved.