();
for (Marker marker : annotatableEntity.getMarkers()) {
@@ -106,20 +110,21 @@ public class BulkEditorLineDisplay implements ILineDisplayStrategy {
if (! markers.isEmpty()) {
markerText = StringUtils.join(markers, ", ");
}
-
+
supplementalText += StringUtils.isBlank(markerText) ? "" : String.format(" [%s]", markerText);
}
-
+
return supplementalText;
}
-
+
/* (non-Javadoc)
* @see eu.etaxonomy.taxeditor.bulkeditor.ILineDisplayStrategy#setText(java.lang.String, java.lang.Object)
*/
/** {@inheritDoc} */
- public void setText(String text, Object entity) {
+ @Override
+ public void setText(String text, Object entity) {
if (entity instanceof Reference) {
- ((Reference) entity).setTitleCache(text);
+ ((Reference) entity).setTitleCache(text);
}
}
@@ -127,7 +132,8 @@ public class BulkEditorLineDisplay implements ILineDisplayStrategy {
* @see eu.etaxonomy.taxeditor.bulkeditor.ILineDisplayStrategy#getHoverText(java.lang.Object)
*/
/** {@inheritDoc} */
- public String getHoverText(Object entity) {
+ @Override
+ public String getHoverText(Object entity) {
return null;
}
@@ -135,15 +141,18 @@ public class BulkEditorLineDisplay implements ILineDisplayStrategy {
* @see eu.etaxonomy.taxeditor.bulkeditor.ILineDisplayStrategy#setStatusMessage(java.lang.String, java.lang.Object)
*/
/** {@inheritDoc} */
- public void setStatusMessage(final String text, Object entity) {
-
+ @Override
+ public void setStatusMessage(final String text, Object entity) {
+
// Calling from the synchronized method ListEditorReconcilingStrategy#doReconcile
// without its own thread causes an invalid thread access exception
// see http://wiki.eclipse.org/FAQ_Why_do_I_get_an_invalid_thread_access_exception%3F
new Thread(new Runnable() {
- public void run() {
+ @Override
+ public void run() {
Display.getDefault().asyncExec(new Runnable() {
- public void run() {
+ @Override
+ public void run() {
IStatusLineManager statusLineManager = editor.getEditorSite().getActionBars().getStatusLineManager();
statusLineManager.setMessage(text);
}
@@ -156,7 +165,8 @@ public class BulkEditorLineDisplay implements ILineDisplayStrategy {
* @see eu.etaxonomy.taxeditor.annotatedlineeditor.ILineDisplayStrategy#getEmptyText(java.lang.Object)
*/
/** {@inheritDoc} */
- public String getEmptyCacheMessage(Object entity) {
+ @Override
+ public String getEmptyCacheMessage(Object entity) {
if (entity instanceof Reference) {
return "No reference title cache";
}
@@ -173,17 +183,18 @@ public class BulkEditorLineDisplay implements ILineDisplayStrategy {
* @see eu.etaxonomy.taxeditor.annotatedlineeditor.ILineDisplayStrategy#isEntityCacheEmpty(java.lang.Object)
*/
/** {@inheritDoc} */
- public boolean isEntityCacheEmpty(Object entity) {
+ @Override
+ public boolean isEntityCacheEmpty(Object entity) {
if (entity instanceof Reference) {
String text = ((Reference) entity).getTitleCache();
return (text == null || text.equals(""));
}
if (entity instanceof TaxonNameBase) {
- String text = ((TaxonNameBase) entity).getTitleCache();
+ String text = ((TaxonNameBase) entity).getTitleCache();
return (text == null || text.equals(""));
}
if (entity instanceof AgentBase) {
- String text = ((AgentBase) entity).getTitleCache();
+ String text = ((AgentBase) entity).getTitleCache();
return (text == null || text.equals(""));
}
return false;
@@ -193,16 +204,17 @@ public class BulkEditorLineDisplay implements ILineDisplayStrategy {
* @see eu.etaxonomy.taxeditor.annotatedlineeditor.ILineDisplayStrategy#addDisplayListener(java.lang.Object)
*/
/** {@inheritDoc} */
- public void addDisplayListener(Object entity, EntityListener listener) {
- /* Note: all non-field specific listeners require that corresponding property sheets
+ @Override
+ public void addDisplayListener(Object entity, EntityListener listener) {
+ /* Note: all non-field specific listeners require that corresponding property sheets
* contain the following:
- *
- *
+ *
+ *
* public void setPropertyValue(Object id, Object value) {
* ...
* reference.firePropertyChange(new PropertyChangeEvent(reference, "", null, null));
* }
- *
+ *
*/
if (entity instanceof CdmBase) {
((CdmBase) entity).addPropertyChangeListener(listener);
@@ -213,7 +225,8 @@ public class BulkEditorLineDisplay implements ILineDisplayStrategy {
* @see eu.etaxonomy.taxeditor.annotatedlineeditor.ILineDisplayStrategy#getFont(java.lang.Object)
*/
/** {@inheritDoc} */
- public Font getFont(Object entity) {
+ @Override
+ public Font getFont(Object entity) {
return null;
}
}
diff --git a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/command/OpenBulkEditorContributionItem.java b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/command/OpenBulkEditorContributionItem.java
index 8150e39ae..303373ac0 100644
--- a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/command/OpenBulkEditorContributionItem.java
+++ b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/command/OpenBulkEditorContributionItem.java
@@ -1,9 +1,9 @@
// $Id$
/**
* Copyright (C) 2007 EDIT
- * European Distributed Institute of Taxonomy
+ * European Distributed Institute of Taxonomy
* http://www.e-taxonomy.eu
- *
+ *
* The contents of this file are subject to the Mozilla Public License Version 1.1
* See LICENSE.TXT at the top of this package for the full license terms.
*/
@@ -25,82 +25,82 @@ import org.eclipse.ui.menus.CommandContributionItemParameter;
import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorConstants;
import eu.etaxonomy.taxeditor.bulkeditor.input.BulkEditorInputType;
+import eu.etaxonomy.taxeditor.dataimport.DataImportEditor;
/**
*
* OpenBulkEditorContributionItem class.
*
- *
+ *
* @author p.ciardelli
* @created 19.08.2009
* @version 1.0
*/
public class OpenBulkEditorContributionItem extends CompoundContributionItem {
- /**
- *
- * Constructor for OpenBulkEditorContributionItem.
- *
- */
- public OpenBulkEditorContributionItem() {
- }
+ /**
+ *
+ * Constructor for OpenBulkEditorContributionItem.
+ *
+ */
+ public OpenBulkEditorContributionItem() {
+ }
- /**
- *
- * Constructor for OpenBulkEditorContributionItem.
- *
- *
- * @param id
- * a {@link java.lang.String} object.
- */
- public OpenBulkEditorContributionItem(String id) {
- super(id);
- }
+ /**
+ *
+ * Constructor for OpenBulkEditorContributionItem.
+ *
+ *
+ * @param id
+ * a {@link java.lang.String} object.
+ */
+ public OpenBulkEditorContributionItem(String id) {
+ super(id);
+ }
- /*
- * (non-Javadoc)
- *
- * @see
- * org.eclipse.ui.actions.CompoundContributionItem#getContributionItems()
- */
- /** {@inheritDoc} */
- @Override
- protected IContributionItem[] getContributionItems() {
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.ui.actions.CompoundContributionItem#getContributionItems()
+ */
+ /** {@inheritDoc} */
+ @Override
+ protected IContributionItem[] getContributionItems() {
- List contributionItems = new ArrayList();
+ List contributionItems = new ArrayList();
- contributionItems.add(BulkEditorInputType.AGENT.createContributionItem());
- contributionItems.add(BulkEditorInputType.REFERENCE.createContributionItem());
- contributionItems.add(new Separator("test"));
- contributionItems.add(BulkEditorInputType.NAME.createContributionItem());
- contributionItems.add(BulkEditorInputType.NAME_RELATIONSHIP.createContributionItem());
- contributionItems.add(new Separator("test"));
- contributionItems.add(BulkEditorInputType.OCCURRENCE.createContributionItem());
- contributionItems.add(new Separator("test"));
- contributionItems.add(BulkEditorInputType.USER.createContributionItem());
- contributionItems.add(BulkEditorInputType.GROUP.createContributionItem());
+ contributionItems.add(BulkEditorInputType.AGENT.createContributionItem());
+ contributionItems.add(BulkEditorInputType.REFERENCE.createContributionItem());
+ String groupName = "test";
+ contributionItems.add(new Separator(groupName));
+ contributionItems.add(BulkEditorInputType.NAME.createContributionItem());
+ contributionItems.add(BulkEditorInputType.NAME_RELATIONSHIP.createContributionItem());
+ contributionItems.add(new Separator(groupName));
+ contributionItems.add(BulkEditorInputType.OCCURRENCE.createContributionItem());
+ contributionItems.add(new Separator(groupName));
+ contributionItems.add(BulkEditorInputType.USER.createContributionItem());
+ contributionItems.add(BulkEditorInputType.GROUP.createContributionItem());
+ contributionItems.add(new Separator(groupName));
+ contributionItems.add(createContributionItem("Search Specimen", DataImportEditor.ID));
- return contributionItems
- .toArray(new IContributionItem[contributionItems.size()]);
- }
+ return contributionItems.toArray(new IContributionItem[contributionItems.size()]);
+ }
- /**
- * @param key
- * @param object
- * @return
- */
- private IContributionItem createContributionItem(String label,
- String inputType) {
- CommandContributionItemParameter parameter = new CommandContributionItemParameter(
- PlatformUI.getWorkbench().getActiveWorkbenchWindow(), null,
- IBulkEditorConstants.DYNAMIC_OPEN_MENU_ID, SWT.NONE);
+ /**
+ * @param key
+ * @param object
+ * @return
+ */
+ private IContributionItem createContributionItem(String label, String inputType) {
+ CommandContributionItemParameter parameter = new CommandContributionItemParameter(PlatformUI.getWorkbench().getActiveWorkbenchWindow(), null, IBulkEditorConstants.DYNAMIC_OPEN_MENU_ID, SWT.NONE);
- parameter.label = label;
+ parameter.label = label;
- Map parameters = new HashMap();
- parameters.put(IBulkEditorConstants.INPUT_TYPE_PARAMETER_ID, inputType);
- parameter.parameters = parameters;
+ Map parameters = new HashMap();
+ parameters.put(IBulkEditorConstants.INPUT_TYPE_PARAMETER_ID, inputType);
+ parameter.parameters = parameters;
- return new CommandContributionItem(parameter);
- }
+ return new CommandContributionItem(parameter);
+ }
}
diff --git a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/derivedunit/operation/AddDerivedUnitFacadeMediaOperation.java b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/derivedunit/operation/AddDerivedUnitFacadeMediaOperation.java
index 5b5e8e213..e673e513c 100644
--- a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/derivedunit/operation/AddDerivedUnitFacadeMediaOperation.java
+++ b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/derivedunit/operation/AddDerivedUnitFacadeMediaOperation.java
@@ -22,7 +22,7 @@ import eu.etaxonomy.cdm.model.description.DescriptionBase;
import eu.etaxonomy.cdm.model.description.SpecimenDescription;
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
import eu.etaxonomy.taxeditor.bulkeditor.BulkEditorUtil;
-import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
/**
@@ -31,7 +31,7 @@ import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
* @version 1.0
*/
public class AddDerivedUnitFacadeMediaOperation extends
- AbstractPostOperation {
+ AbstractPostTaxonOperation {
public static final int DERIVED_UNIT_MEDIA = 0;
public static final int FIELD_OBJECT_MEDIA = 1;
diff --git a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/AbstractBulkEditorInput.java b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/AbstractBulkEditorInput.java
index c92942567..9da689de7 100644
--- a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/AbstractBulkEditorInput.java
+++ b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/AbstractBulkEditorInput.java
@@ -1,9 +1,9 @@
// $Id$
/**
* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
+* European Distributed Institute of Taxonomy
* http://www.e-taxonomy.eu
-*
+*
* The contents of this file are subject to the Mozilla Public License Version 1.1
* See LICENSE.TXT at the top of this package for the full license terms.
*/
@@ -25,15 +25,16 @@ import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
import eu.etaxonomy.cdm.model.common.ICdmBase;
import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
import eu.etaxonomy.cdm.model.common.MarkerType;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
import eu.etaxonomy.cdm.strategy.merge.IMergable;
import eu.etaxonomy.cdm.strategy.merge.MergeException;
import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityPersistenceService;
import eu.etaxonomy.taxeditor.bulkeditor.BulkEditorQuery;
-import eu.etaxonomy.taxeditor.bulkeditor.BulkEditorUtil;
import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorSortProvider;
import eu.etaxonomy.taxeditor.bulkeditor.input.sortprovider.CdmBaseSortProvider;
import eu.etaxonomy.taxeditor.bulkeditor.input.sortprovider.TitleCacheComparator;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.store.CdmStore;
/**
@@ -47,16 +48,16 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
public abstract class AbstractBulkEditorInput implements IEditorInput, IEntityPersistenceService {
/**
- *
+ *
*/
private static final long serialVersionUID = 416414530232743735L;
private UUID entityUuid;
private List model;
-
+
private IEntityCreator entityCreator;
-
+
/**
* NewInstance
*
@@ -66,7 +67,7 @@ public abstract class AbstractBulkEditorInput implements IEd
static public AbstractBulkEditorInput NewInstance(BulkEditorInputType inputType) {
return BulkEditorInputType.getInput(inputType);
}
-
+
/**
* NewInstance
*
@@ -74,17 +75,17 @@ public abstract class AbstractBulkEditorInput implements IEd
* @return a {@link eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput} object.
*/
public static AbstractBulkEditorInput NewInstance(IdentifiableEntity entity) {
-
-
+
+
BulkEditorInputType inputType = BulkEditorInputType.getByType(entity.getClass());
-
+
AbstractBulkEditorInput editorInput = NewInstance(inputType);
-
+
editorInput.setEntityUuid(entity.getUuid());
-
+
return editorInput;
}
-
+
/**
* listEntities
*
@@ -92,7 +93,7 @@ public abstract class AbstractBulkEditorInput implements IEd
* @return a {@link java.util.List} object.
*/
protected abstract List listEntities(IIdentifiableEntityServiceConfigurator configurator);
-
+
/**
* loadEntity
*
@@ -104,7 +105,7 @@ public abstract class AbstractBulkEditorInput implements IEd
private void setEntityUuid(UUID entityUuid){
this.entityUuid = entityUuid;
}
-
+
/**
* Getter for the field entityUuid
.
*
@@ -114,7 +115,7 @@ public abstract class AbstractBulkEditorInput implements IEd
return entityUuid;
}
-
+
/* (non-Javadoc)
* @see org.eclipse.ui.IEditorInput#exists()
*/
@@ -123,7 +124,8 @@ public abstract class AbstractBulkEditorInput implements IEd
*
* @return a boolean.
*/
- public boolean exists() {
+ @Override
+ public boolean exists() {
// TODO Auto-generated method stub
return false;
}
@@ -136,7 +138,8 @@ public abstract class AbstractBulkEditorInput implements IEd
*
* @return a {@link org.eclipse.jface.resource.ImageDescriptor} object.
*/
- public ImageDescriptor getImageDescriptor() {
+ @Override
+ public ImageDescriptor getImageDescriptor() {
// TODO Auto-generated method stub
return null;
}
@@ -149,7 +152,8 @@ public abstract class AbstractBulkEditorInput implements IEd
*
* @return a {@link org.eclipse.ui.IPersistableElement} object.
*/
- public IPersistableElement getPersistable() {
+ @Override
+ public IPersistableElement getPersistable() {
return null;
}
@@ -157,7 +161,8 @@ public abstract class AbstractBulkEditorInput implements IEd
* @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
*/
/** {@inheritDoc} */
- @SuppressWarnings("unchecked")
+ @Override
+ @SuppressWarnings("unchecked")
public Object getAdapter(Class adapter) {
return null;
}
@@ -168,30 +173,29 @@ public abstract class AbstractBulkEditorInput implements IEd
* @param bulkEditorQuery a {@link eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorQuery} object.
*/
public void performSearch(final BulkEditorQuery bulkEditorQuery) {
-
+
List entityList = new ArrayList();
-
+
if(getEntityUuid() != null){
-
+
T entity = loadEntity(getEntityUuid());
entityList.add(entity);
model = entityList;
}
else if(bulkEditorQuery != null){
-
- String queryString = bulkEditorQuery.getSearchString();
+
IIdentifiableEntityServiceConfigurator configurator = bulkEditorQuery.getSearchConfigurator();
Comparator queryComparator = (bulkEditorQuery.getComparator() != null) ? bulkEditorQuery.getComparator() : new TitleCacheComparator();
-
+
entityList = listEntities(configurator);
-
- Collections.sort(entityList, queryComparator);
-
+
+ Collections.sort(entityList, queryComparator);
+
}
-
+
model = entityList;
}
-
+
/**
* isMergingEnabled
*
@@ -210,32 +214,34 @@ public abstract class AbstractBulkEditorInput implements IEd
public boolean isMarkerTypeEditingEnabled(MarkerType markerType) {
return false;
}
-
+
/*
* (non-Javadoc)
* @see eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityPersistenceService#merge(eu.etaxonomy.cdm.model.common.IdentifiableEntity, eu.etaxonomy.cdm.model.common.IdentifiableEntity)
*/
/** {@inheritDoc} */
- public boolean merge(T entity, T mergeTarget) {
+ @Override
+ public boolean merge(T entity, T mergeTarget) {
if (entity instanceof IMergable) {
try {
CdmStore.getService(ICommonService.class).merge((IMergable)mergeTarget, (IMergable)entity, null);
} catch (MergeException e) {
- BulkEditorUtil.error(getClass(), e);
+ AbstractUtility.error(getClass(), e);
}
}
return true;
- };
-
+ }
+
/*
* (non-Javadoc)
* @see eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityPersistenceService#create(eu.etaxonomy.cdm.model.common.IdentifiableEntity)
*/
/** {@inheritDoc} */
- public boolean create(T entity) {
- return save(entity);
- };
-
+ @Override
+ public boolean create(T entity) {
+ return save(entity);
+ }
+
public IEntityCreator getEntityCreator(){
if(entityCreator == null){
entityCreator = createEntityCreator();
@@ -254,9 +260,9 @@ public abstract class AbstractBulkEditorInput implements IEd
*/
public List> getSortProviders(){
List> sortProviders = new ArrayList>();
-
+
sortProviders.add(new CdmBaseSortProvider());
-
+
return sortProviders;
}
@@ -265,7 +271,7 @@ public abstract class AbstractBulkEditorInput implements IEd
* @return
*/
public String getTypeText(Object entity){
- return entity.getClass().getSimpleName();
+ return ((SpecimenOrObservationBase) entity).getRecordBasis().toString();
}
/**
@@ -275,13 +281,13 @@ public abstract class AbstractBulkEditorInput implements IEd
public String getText(T entity) {
if(entity instanceof IdentifiableEntity){
IdentifiableEntity identifiableEntity = (IdentifiableEntity) HibernateProxyHelper.deproxy(entity);
-
+
return identifiableEntity.getTitleCache();
}
-
+
return "No text. Implement in subclass";
}
-
+
/**
* @return
*/
diff --git a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/operation/SetMarkerFlagOperation.java b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/operation/SetMarkerFlagOperation.java
index 0c0673a7e..3ed83e2da 100644
--- a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/operation/SetMarkerFlagOperation.java
+++ b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/operation/SetMarkerFlagOperation.java
@@ -21,7 +21,7 @@ import org.eclipse.core.runtime.IStatus;
import eu.etaxonomy.cdm.model.common.IAnnotatableEntity;
import eu.etaxonomy.cdm.model.common.Marker;
import eu.etaxonomy.cdm.model.common.MarkerType;
-import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
/**
@@ -29,7 +29,7 @@ import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
* @created Dec 13, 2010
* @version 1.0
*/
-public class SetMarkerFlagOperation extends AbstractPostOperation {
+public class SetMarkerFlagOperation extends AbstractPostTaxonOperation {
private Set annotatableEntities;
private MarkerType markerType;
diff --git a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/dataimport/DataImportEditor.java b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/dataimport/DataImportEditor.java
new file mode 100644
index 000000000..1f905593d
--- /dev/null
+++ b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/dataimport/DataImportEditor.java
@@ -0,0 +1,55 @@
+// $Id$
+/**
+* Copyright (C) 2013 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.dataimport;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.ui.IEditorInput;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.taxeditor.annotatedlineeditor.AnnotatedLineEditor;
+
+/**
+ * @author pplitzner
+ * @date 20.09.2013
+ *
+ */
+public class DataImportEditor extends AnnotatedLineEditor {
+
+ /** Constant ID="bulkeditor.input.nameRelationship"
*/
+ public static final String ID = "eu.etaxonomy.taxeditor.dataimport.DataImportEditor";
+
+ /**
+ * Constructs a new DataImportEditor with a new {@link ConversationHolder}
+ */
+ public DataImportEditor() {
+ super(null);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.editors.text.TextEditor#initializeEditor()
+ */
+ /** {@inheritDoc} */
+ @Override
+ protected void initializeEditor() {
+ super.initializeEditor();
+ setLineDisplayStrategy(new DataImportEditorLineDisplayStrategy());
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.annotatedlineeditor.AnnotatedLineEditor#doSetInput(org.eclipse.ui.IEditorInput)
+ */
+ @Override
+ protected void doSetInput(IEditorInput input) throws CoreException {
+ super.doSetInput(input);
+ setPartName(input.getName());
+ setTitleToolTip(input.getName());
+ }
+
+}
diff --git a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/dataimport/DataImportEditorLineDisplayStrategy.java b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/dataimport/DataImportEditorLineDisplayStrategy.java
new file mode 100644
index 000000000..cf91f3816
--- /dev/null
+++ b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/dataimport/DataImportEditorLineDisplayStrategy.java
@@ -0,0 +1,122 @@
+// $Id$
+/**
+* Copyright (C) 2013 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.dataimport;
+
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.Image;
+
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.taxeditor.annotatedlineeditor.EntityListener;
+import eu.etaxonomy.taxeditor.annotatedlineeditor.ILineDisplayStrategy;
+
+/**
+ * @author pplitzner
+ * @date 20.09.2013
+ *
+ */
+public class DataImportEditorLineDisplayStrategy implements ILineDisplayStrategy {
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.annotatedlineeditor.ILineDisplayStrategy#getIndent(java.lang.Object)
+ */
+ @Override
+ public int getIndent(Object entity) {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.annotatedlineeditor.ILineDisplayStrategy#getIcon(java.lang.Object)
+ */
+ @Override
+ public Image getIcon(Object entity) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.annotatedlineeditor.ILineDisplayStrategy#getFont(java.lang.Object)
+ */
+ @Override
+ public Font getFont(Object entity) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.annotatedlineeditor.ILineDisplayStrategy#getText(java.lang.Object)
+ */
+ @Override
+ public String getText(Object entity) {
+ return ((SpecimenOrObservationBase)entity).getTitleCache();
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.annotatedlineeditor.ILineDisplayStrategy#getSupplementalText(java.lang.Object)
+ */
+ @Override
+ public String getSupplementalText(Object entity) {
+ return "";
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.annotatedlineeditor.ILineDisplayStrategy#getEmptyCacheMessage(java.lang.Object)
+ */
+ @Override
+ public String getEmptyCacheMessage(Object entity) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.annotatedlineeditor.ILineDisplayStrategy#setText(java.lang.String, java.lang.Object)
+ */
+ @Override
+ public void setText(String text, Object entity) {
+ // TODO Auto-generated method stub
+
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.annotatedlineeditor.ILineDisplayStrategy#getHoverText(java.lang.Object)
+ */
+ @Override
+ public String getHoverText(Object entity) {
+ return ((SpecimenOrObservationBase)entity).getTitleCache();
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.annotatedlineeditor.ILineDisplayStrategy#setStatusMessage(java.lang.String, java.lang.Object)
+ */
+ @Override
+ public void setStatusMessage(String text, Object entity) {
+ // TODO Auto-generated method stub
+
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.annotatedlineeditor.ILineDisplayStrategy#isEntityCacheEmpty(java.lang.Object)
+ */
+ @Override
+ public boolean isEntityCacheEmpty(Object entity) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.annotatedlineeditor.ILineDisplayStrategy#addDisplayListener(java.lang.Object, eu.etaxonomy.taxeditor.annotatedlineeditor.EntityListener)
+ */
+ @Override
+ public void addDisplayListener(Object entity, EntityListener listener) {
+ // TODO Auto-generated method stub
+
+ }
+
+}
diff --git a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/dataimport/DerivedUnitEditorInput.java b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/dataimport/DerivedUnitEditorInput.java
new file mode 100644
index 000000000..0fc3a93cb
--- /dev/null
+++ b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/dataimport/DerivedUnitEditorInput.java
@@ -0,0 +1,166 @@
+// $Id$
+/**
+* Copyright (C) 2013 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.dataimport;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URISyntaxException;
+import java.util.Collections;
+import java.util.List;
+
+import org.apache.http.client.ClientProtocolException;
+import org.apache.log4j.Logger;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IPersistableElement;
+
+import eu.etaxonomy.cdm.ext.biocase.BioCaseQuery;
+import eu.etaxonomy.cdm.ext.biocase.BioCaseQueryServiceWrapper;
+import eu.etaxonomy.cdm.io.common.CdmDefaultImport;
+import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportConfigurator;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.taxeditor.dataimport.transientServices.TransientCdmRepository;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author pplitzner
+ * @date 20.09.2013
+ *
+ */
+public class DerivedUnitEditorInput implements IEditorInput {
+
+ private static Logger logger = Logger.getLogger(DerivedUnitEditorInput.class);
+
+ private final BioCaseQuery query;
+
+ /**
+ * @param results
+ */
+ public DerivedUnitEditorInput(BioCaseQuery query) {
+ this.query = query;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
+ */
+ @Override
+ public Object getAdapter(Class adapter) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.IEditorInput#exists()
+ */
+ @Override
+ public boolean exists() {
+ return false;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.IEditorInput#getImageDescriptor()
+ */
+ @Override
+ public ImageDescriptor getImageDescriptor() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.IEditorInput#getName()
+ */
+ @Override
+ public String getName() {
+ return query.toString();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.IEditorInput#getPersistable()
+ */
+ @Override
+ public IPersistableElement getPersistable() {
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.IEditorInput#getToolTipText()
+ */
+ @Override
+ public String getToolTipText() {
+ return query.toString();
+ }
+
+ /**
+ * @return the results
+ */
+ public List getResults() {
+ String errorMessage = "Could not execute query " + query;
+ List results = Collections.EMPTY_LIST;
+ try {
+ InputStream resultStream = new BioCaseQueryServiceWrapper().query(query);
+ Abcd206ImportConfigurator configurator = Abcd206ImportConfigurator.NewInstance(resultStream, null, false);
+ TransientCdmRepository repo = new TransientCdmRepository(CdmStore.getCurrentApplicationConfiguration());
+ configurator.setCdmAppController(repo);
+
+ CdmDefaultImport importer = new CdmDefaultImport();
+ importer.invoke(configurator);
+ results = repo.getUnits();
+// Abcd206Import abcd206Import = new Abcd206Import();
+// Abcd206ImportState state = new Abcd206ImportState(configurator);
+// abcd206Import.invoke(state);
+// state.countTrees();
+ } catch (ClientProtocolException e) {
+ logger.error(errorMessage, e);
+ } catch (IOException e) {
+ logger.error(errorMessage, e);
+ } catch (URISyntaxException e) {
+ logger.error(errorMessage, e);
+ }
+// return new BioCaseQueryServiceWrapper().dummyData();
+ return results;
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.Object#hashCode()
+ */
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((query == null) ? 0 : query.hashCode());
+ return result;
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.Object#equals(java.lang.Object)
+ */
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj == null) {
+ return false;
+ }
+ if (getClass() != obj.getClass()) {
+ return false;
+ }
+ DerivedUnitEditorInput other = (DerivedUnitEditorInput) obj;
+ if (query == null) {
+ if (other.query != null) {
+ return false;
+ }
+ } else if (!query.equals(other.query)) {
+ return false;
+ }
+ return true;
+ }
+
+}
diff --git a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/dataimport/transientServices/TransientAgentService.java b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/dataimport/transientServices/TransientAgentService.java
new file mode 100644
index 000000000..42396edbd
--- /dev/null
+++ b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/dataimport/transientServices/TransientAgentService.java
@@ -0,0 +1,742 @@
+// $Id$
+/**
+* Copyright (C) 2013 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.dataimport.transientServices;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
+
+import org.hibernate.LockMode;
+import org.hibernate.Session;
+import org.hibernate.criterion.Criterion;
+import org.hibernate.envers.query.criteria.AuditCriterion;
+
+import eu.etaxonomy.cdm.api.service.IAgentService;
+import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
+import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
+import eu.etaxonomy.cdm.api.service.pager.Pager;
+import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;
+import eu.etaxonomy.cdm.model.agent.Address;
+import eu.etaxonomy.cdm.model.agent.AgentBase;
+import eu.etaxonomy.cdm.model.agent.Institution;
+import eu.etaxonomy.cdm.model.agent.InstitutionalMembership;
+import eu.etaxonomy.cdm.model.agent.Person;
+import eu.etaxonomy.cdm.model.agent.Team;
+import eu.etaxonomy.cdm.model.common.Annotation;
+import eu.etaxonomy.cdm.model.common.ISourceable;
+import eu.etaxonomy.cdm.model.common.IdentifiableSource;
+import eu.etaxonomy.cdm.model.common.LSID;
+import eu.etaxonomy.cdm.model.common.Marker;
+import eu.etaxonomy.cdm.model.common.MarkerType;
+import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;
+import eu.etaxonomy.cdm.model.media.Rights;
+import eu.etaxonomy.cdm.model.view.AuditEvent;
+import eu.etaxonomy.cdm.model.view.AuditEventRecord;
+import eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort;
+import eu.etaxonomy.cdm.persistence.query.Grouping;
+import eu.etaxonomy.cdm.persistence.query.MatchMode;
+import eu.etaxonomy.cdm.persistence.query.OrderHint;
+import eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy;
+import eu.etaxonomy.cdm.strategy.match.IMatchStrategy;
+import eu.etaxonomy.cdm.strategy.merge.IMergeStrategy;
+
+/**
+ * @author pplitzner
+ * @date 27.09.2013
+ *
+ */
+public class TransientAgentService implements IAgentService {
+
+ private IAgentService defaultAgentService;
+
+ /**
+ * @param defaultAgentService
+ */
+ public TransientAgentService(IAgentService defaultAgentService) {
+ this.defaultAgentService = defaultAgentService;
+ }
+
+ /**
+ * @param t
+ * @param pageSize
+ * @param pageNumber
+ * @param sort
+ * @param propertyPaths
+ * @return
+ * @see eu.etaxonomy.cdm.api.service.IVersionableService#pageAuditEvents(eu.etaxonomy.cdm.model.common.VersionableEntity, java.lang.Integer, java.lang.Integer, eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort, java.util.List)
+ */
+ @Override
+ public Pager> pageAuditEvents(AgentBase t, Integer pageSize, Integer pageNumber, AuditEventSort sort, List propertyPaths) {
+ return defaultAgentService.pageAuditEvents(t, pageSize, pageNumber, sort, propertyPaths);
+ }
+
+ /**
+ * @param annotatedObj
+ * @param status
+ * @param pageSize
+ * @param pageNumber
+ * @param orderHints
+ * @param propertyPaths
+ * @return
+ * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#getAnnotations(eu.etaxonomy.cdm.model.common.AnnotatableEntity, eu.etaxonomy.cdm.model.common.MarkerType, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
+ */
+ @Override
+ public Pager getAnnotations(AgentBase annotatedObj, MarkerType status, Integer pageSize, Integer pageNumber, List orderHints, List propertyPaths) {
+ return defaultAgentService.getAnnotations(annotatedObj, status, pageSize, pageNumber, orderHints, propertyPaths);
+ }
+
+ /**
+ * @param code
+ * @return
+ * @see eu.etaxonomy.cdm.api.service.IAgentService#searchInstitutionByCode(java.lang.String)
+ */
+ @Override
+ public List searchInstitutionByCode(String code) {
+ return defaultAgentService.searchInstitutionByCode(code);
+ }
+
+ /**
+ * @param person
+ * @param pageSize
+ * @param pageNumber
+ * @return
+ * @see eu.etaxonomy.cdm.api.service.IAgentService#getInstitutionalMemberships(eu.etaxonomy.cdm.model.agent.Person, java.lang.Integer, java.lang.Integer)
+ */
+ @Override
+ public Pager getInstitutionalMemberships(Person person, Integer pageSize, Integer pageNumber) {
+ return defaultAgentService.getInstitutionalMemberships(person, pageSize, pageNumber);
+ }
+
+ /**
+ *
+ * @see eu.etaxonomy.cdm.api.service.IService#clear()
+ */
+ @Override
+ public void clear() {
+ defaultAgentService.clear();
+ }
+
+ /**
+ * @param t
+ * @param lockMode
+ * @see eu.etaxonomy.cdm.api.service.IService#lock(eu.etaxonomy.cdm.model.common.ICdmBase, org.hibernate.LockMode)
+ */
+ @Override
+ public void lock(AgentBase t, LockMode lockMode) {
+ defaultAgentService.lock(t, lockMode);
+ }
+
+ /**
+ * @param t
+ * @param lockMode
+ * @param propertyPaths
+ * @see eu.etaxonomy.cdm.api.service.IService#refresh(eu.etaxonomy.cdm.model.common.ICdmBase, org.hibernate.LockMode, java.util.List)
+ */
+ @Override
+ public void refresh(AgentBase t, LockMode lockMode, List propertyPaths) {
+ defaultAgentService.refresh(t, lockMode, propertyPaths);
+ }
+
+ /**
+ * @param team
+ * @param pageSize
+ * @param pageNumber
+ * @return
+ * @see eu.etaxonomy.cdm.api.service.IAgentService#getMembers(eu.etaxonomy.cdm.model.agent.Team, java.lang.Integer, java.lang.Integer)
+ */
+ @Override
+ public Pager getMembers(Team team, Integer pageSize, Integer pageNumber) {
+ return defaultAgentService.getMembers(team, pageSize, pageNumber);
+ }
+
+ /**
+ *
+ * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#updateTitleCache()
+ */
+ @Override
+ public void updateTitleCache() {
+ defaultAgentService.updateTitleCache();
+ }
+
+ /**
+ * @param t
+ * @return
+ * @see eu.etaxonomy.cdm.api.service.IVersionableService#getNextAuditEvent(eu.etaxonomy.cdm.model.common.VersionableEntity)
+ */
+ @Override
+ public AuditEventRecord getNextAuditEvent(AgentBase t) {
+ return defaultAgentService.getNextAuditEvent(t);
+ }
+
+ /**
+ * @param annotatableEntity
+ * @param technical
+ * @param pageSize
+ * @param pageNumber
+ * @param orderHints
+ * @param propertyPaths
+ * @return
+ * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#getMarkers(eu.etaxonomy.cdm.model.common.AnnotatableEntity, java.lang.Boolean, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
+ */
+ @Override
+ public Pager getMarkers(AgentBase annotatableEntity, Boolean technical, Integer pageSize, Integer pageNumber, List orderHints, List propertyPaths) {
+ return defaultAgentService.getMarkers(annotatableEntity, technical, pageSize, pageNumber, orderHints, propertyPaths);
+ }
+
+ /**
+ * @param clazz
+ * @param stepSize
+ * @param cacheStrategy
+ * @param monitor
+ * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#updateTitleCache(java.lang.Class, java.lang.Integer, eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy, eu.etaxonomy.cdm.common.monitor.IProgressMonitor)
+ */
+ @Override
+ public void updateTitleCache(Class extends AgentBase> clazz, Integer stepSize, IIdentifiableEntityCacheStrategy cacheStrategy, IProgressMonitor monitor) {
+ defaultAgentService.updateTitleCache(clazz, stepSize, cacheStrategy, monitor);
+ }
+
+ /**
+ * @param agent
+ * @param pageSize
+ * @param pageNumber
+ * @return
+ * @see eu.etaxonomy.cdm.api.service.IAgentService#getAddresses(eu.etaxonomy.cdm.model.agent.AgentBase, java.lang.Integer, java.lang.Integer)
+ */
+ @Override
+ public Pager getAddresses(AgentBase agent, Integer pageSize, Integer pageNumber) {
+ return defaultAgentService.getAddresses(agent, pageSize, pageNumber);
+ }
+
+ /**
+ * @param t
+ * @return
+ * @see eu.etaxonomy.cdm.api.service.IVersionableService#getPreviousAuditEvent(eu.etaxonomy.cdm.model.common.VersionableEntity)
+ */
+ @Override
+ public AuditEventRecord getPreviousAuditEvent(AgentBase t) {
+ return defaultAgentService.getPreviousAuditEvent(t);
+ }
+
+ /**
+ * @param clazz
+ * @return
+ * @see eu.etaxonomy.cdm.api.service.IService#count(java.lang.Class)
+ */
+ @Override
+ public int count(Class extends AgentBase> clazz) {
+ return defaultAgentService.count(clazz);
+ }
+
+ /**
+ * @param clazz
+ * @param queryString
+ * @param pageSize
+ * @param pageNumber
+ * @param orderHints
+ * @param propertyPaths
+ * @return
+ * @see eu.etaxonomy.cdm.api.service.IAgentService#search(java.lang.Class, java.lang.String, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
+ */
+ @Override
+ public Pager search(Class extends AgentBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List orderHints, List propertyPaths) {
+ return defaultAgentService.search(clazz, queryString, pageSize, pageNumber, orderHints, propertyPaths);
+ }
+
+ /**
+ * @param clazz
+ * @param from
+ * @param to
+ * @param criteria
+ * @param pageSize
+ * @param pageValue
+ * @param sort
+ * @param propertyPaths
+ * @return
+ * @see eu.etaxonomy.cdm.api.service.IVersionableService#pageAuditEvents(java.lang.Class, eu.etaxonomy.cdm.model.view.AuditEvent, eu.etaxonomy.cdm.model.view.AuditEvent, java.util.List, java.lang.Integer, java.lang.Integer, eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort, java.util.List)
+ */
+ @Override
+ public Pager> pageAuditEvents(Class extends AgentBase> clazz, AuditEvent from, AuditEvent to, List criteria, Integer pageSize, Integer pageValue, AuditEventSort sort, List propertyPaths) {
+ return defaultAgentService.pageAuditEvents(clazz, from, to, criteria, pageSize, pageValue, sort, propertyPaths);
+ }
+
+ /**
+ * @param lsid
+ * @return
+ * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#find(eu.etaxonomy.cdm.model.common.LSID)
+ */
+ @Override
+ public AgentBase find(LSID lsid) {
+ return defaultAgentService.find(lsid);
+ }
+
+ /**
+ * @param persistentObject
+ * @return
+ * @see eu.etaxonomy.cdm.api.service.IService#delete(eu.etaxonomy.cdm.model.common.ICdmBase)
+ */
+ @Override
+ public UUID delete(AgentBase persistentObject) throws ReferencedObjectUndeletableException{
+ return defaultAgentService.delete(persistentObject);
+ }
+
+ /**
+ * @param clazz
+ * @param technical
+ * @param pageSize
+ * @param pageNumber
+ * @param propertyPaths
+ * @return
+ * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#groupMarkers(java.lang.Class, java.lang.Boolean, java.lang.Integer, java.lang.Integer, java.util.List)
+ */
+ @Override
+ public List