com.atlassian.confluence.importexport.xmlimport.persister
Class ReflectiveObjectPersister
java.lang.Object
com.atlassian.confluence.importexport.xmlimport.persister.ReflectiveObjectPersister
- All Implemented Interfaces:
- ObjectPersister
public class ReflectiveObjectPersister
- extends java.lang.Object
- 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
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
log
public static final org.slf4j.Logger log
ReflectiveObjectPersister
public ReflectiveObjectPersister(LabelManager labelManager,
ConfluenceUserDao confluenceUserDao,
StorageFormatUserRewriter storageFormatUserRewriter)
persist
public java.util.List<TransientHibernateHandle> persist(ImportProcessorContext context,
ImportedObject importedObject)
throws java.lang.Exception
- Description copied from interface:
ObjectPersister
- Persist a given imported object.
- Specified by:
persist
in interface ObjectPersister
- Parameters:
context
- the context of the current import operationimportedObject
- the object to save.
- Returns:
- 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
- Throws:
java.lang.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.
getPrimitivePropertyValue
public java.lang.Object getPrimitivePropertyValue(net.sf.hibernate.persister.ClassPersister entityPersister,
PrimitiveProperty property)
throws net.sf.hibernate.HibernateException
- Throws:
net.sf.hibernate.HibernateException
Copyright © 2003-2013 Atlassian. All Rights Reserved.