import java.util.ArrayList;\r
import java.util.List;\r
\r
+import org.springframework.transaction.annotation.Transactional;\r
+\r
import eu.etaxonomy.cdm.api.service.pager.Pager;\r
import eu.etaxonomy.cdm.api.service.pager.impl.DefaultPagerImpl;\r
import eu.etaxonomy.cdm.model.common.AnnotatableEntity;\r
public abstract class AnnotatableServiceBase<T extends AnnotatableEntity,DAO extends IAnnotatableDao<T>> extends VersionableServiceBase<T, DAO>\r
implements IAnnotatableService<T> {\r
\r
+ @Transactional\r
public Pager<Annotation> getAnnotations(T annotatedObj, MarkerType status, Integer pageSize, Integer pageNumber) {\r
Integer numberOfResults = dao.countAnnotations(annotatedObj, status);\r
\r
import eu.etaxonomy.cdm.api.service.pager.Pager;\r
import eu.etaxonomy.cdm.model.common.CdmBase;\r
import eu.etaxonomy.cdm.model.reference.ReferenceBase;\r
+import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
+import eu.etaxonomy.cdm.persistence.dao.BeanInitializer;\r
import eu.etaxonomy.cdm.persistence.query.OrderHint;\r
\r
\r
*/\r
public T findByUuid(UUID uuid);\r
\r
+ /**\r
+ * Finds the cdm entity specified by the <code>uuid</code> parameter and\r
+ * initializes all its *ToOne relations.\r
+ * \r
+ * @param uuid\r
+ * @return\r
+ */\r
+ public T load(UUID uuid); \r
+ \r
+ /**\r
+ * Finds the cdm entity specified by the <code>uuid</code> parameter and\r
+ * recursively initializes all bean properties given in the\r
+ * <code>propertyPaths</code> parameter.\r
+ * <p>\r
+ * For detailed description and examples <b>please refer to:</b> \r
+ * {@link BeanInitializer#initializeProperties(Object, List)}\r
+ * \r
+ * @param uuid\r
+ * @return\r
+ */\r
+ public T load(UUID uuid, List<String> propertyPaths);\r
+ \r
+ \r
+ \r
/**\r
* Returns true if an entity of type <T> with a unique identifier matching the \r
* identifier supplied exists in the database, or false if no such entity can be \r
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
+import eu.etaxonomy.cdm.persistence.dao.BeanInitializer;
import eu.etaxonomy.cdm.persistence.fetch.CdmFetch;
* FIXME candidate for harmonization?
*/
public abstract TaxonBase getTaxonByUuid(UUID uuid);
-
+
/**
* FIXME candidate for harmonization?
* save a taxon and return its UUID
import eu.etaxonomy.cdm.api.service.pager.impl.DefaultPagerImpl;\r
import eu.etaxonomy.cdm.model.common.CdmBase;\r
import eu.etaxonomy.cdm.model.reference.ReferenceBase;\r
+import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
import eu.etaxonomy.cdm.persistence.dao.common.ICdmEntityDao;\r
import eu.etaxonomy.cdm.persistence.query.OrderHint;\r
\r
public T findByUuid(UUID uuid) {\r
return dao.findByUuid(uuid);\r
}\r
+ \r
+ @Transactional(readOnly = true)\r
+ public T load(UUID uuid) {\r
+ return dao.load(uuid);\r
+ }\r
+ \r
+ @Transactional(readOnly = true)\r
+ public T load(UUID uuid, List<String> propertyPaths){\r
+ return dao.load(uuid, propertyPaths);\r
+ }\r
+ \r
\r
@Transactional(readOnly = true)\r
public <TYPE extends T> List<TYPE> list(Class<TYPE> type, int limit,int start) {\r
import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;\r
import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;\r
+import eu.etaxonomy.cdm.persistence.dao.BeanInitializer;\r
import eu.etaxonomy.cdm.persistence.dao.common.IOrderedTermVocabularyDao;\r
import eu.etaxonomy.cdm.persistence.dao.description.IDescriptionDao;\r
import eu.etaxonomy.cdm.persistence.dao.name.ITaxonNameDao;\r
private IOrderedTermVocabularyDao orderedVocabularyDao;\r
@Autowired\r
private IDescriptionDao descriptionDao;\r
+\r
\r
/**\r
* Constructor\r
return new DefaultPagerImpl<IdentifiableEntity>\r
(configurator.getPageNumber(), numberOfResults, configurator.getPageSize(), results);\r
}\r
- \r
+\r
}\r