import eu.etaxonomy.cdm.model.agent.Person;\r
import eu.etaxonomy.cdm.model.agent.Team;\r
import eu.etaxonomy.cdm.persistence.dao.agent.IAgentDao;\r
+import eu.etaxonomy.cdm.persistence.query.OrderHint;\r
\r
\r
\r
return new DefaultPagerImpl<Address>(pageNumber, numberOfResults, pageSize, results);\r
}\r
\r
- \r
+ public Pager<AgentBase> search(Class<? extends AgentBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {\r
+ Integer numberOfResults = dao.count(clazz,queryString);\r
+ \r
+ List<AgentBase> results = new ArrayList<AgentBase>();\r
+ if(numberOfResults > 0) { // no point checking again\r
+ results = dao.search(clazz,queryString, pageSize, pageNumber, orderHints, propertyPaths); \r
+ }\r
+ \r
+ return new DefaultPagerImpl<AgentBase>(pageNumber, numberOfResults, pageSize, results);\r
+ }\r
}\r
import eu.etaxonomy.cdm.model.description.StatisticalMeasurementValue;\r
import eu.etaxonomy.cdm.model.description.TaxonDescription;\r
import eu.etaxonomy.cdm.model.description.TaxonNameDescription;\r
-import eu.etaxonomy.cdm.model.description.TextData;\r
import eu.etaxonomy.cdm.model.location.NamedArea;\r
import eu.etaxonomy.cdm.model.media.Media;\r
import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
return new DefaultPagerImpl<TaxonDescription>(pageNumber, numberOfResults, pageSize, results);\r
}\r
\r
- public Pager<TextData> searchTextData(String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {\r
- Integer numberOfResults = descriptionElementDao.countTextData(queryString);\r
+ public Pager<DescriptionElementBase> search(Class<? extends DescriptionElementBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {\r
+ Integer numberOfResults = descriptionElementDao.count(clazz,queryString);\r
\r
- List<TextData> results = new ArrayList<TextData>();\r
+ List<DescriptionElementBase> results = new ArrayList<DescriptionElementBase>();\r
if(numberOfResults > 0) { // no point checking again\r
- results = descriptionElementDao.searchTextData(queryString, pageSize, pageNumber, orderHints, propertyPaths); \r
+ results = descriptionElementDao.search(clazz, queryString, pageSize, pageNumber, orderHints, propertyPaths); \r
}\r
\r
- return new DefaultPagerImpl<TextData>(pageNumber, numberOfResults, pageSize, results);\r
+ return new DefaultPagerImpl<DescriptionElementBase>(pageNumber, numberOfResults, pageSize, results);\r
}\r
\r
public FeatureTree getFeatureTreeByUuid(UUID uuid) {\r
public FeatureTree loadFeatureTree(UUID uuid, List<String> propertyPaths) {\r
return featureTreeDao.load(uuid, propertyPaths);\r
}\r
+ public DescriptionElementBase loadDescriptionElement(UUID uuid, List<String> propertyPaths) {\r
+ return descriptionElementDao.load(uuid, propertyPaths);\r
+ }\r
+\r
+ public UUID saveDescriptionElement(DescriptionElementBase descriptionElement) {\r
+ return descriptionElementDao.save(descriptionElement);\r
+ }\r
+ \r
+ public UUID deleteDescriptionElement(DescriptionElementBase descriptionElement) {\r
+ return descriptionElementDao.delete(descriptionElement);\r
+ }\r
}\r
import eu.etaxonomy.cdm.model.agent.InstitutionalMembership;\r
import eu.etaxonomy.cdm.model.agent.Person;\r
import eu.etaxonomy.cdm.model.agent.Team;\r
+import eu.etaxonomy.cdm.persistence.query.OrderHint;\r
\r
public interface IAgentService extends IIdentifiableEntityService<AgentBase> {\r
\r
* @return a Pager containing Address instances\r
*/\r
public Pager<Address> getAddresses(AgentBase agent, Integer pageSize, Integer pageNumber);\r
+ \r
+ /**\r
+ * Returns a Paged List of AgentBase instances where the default field matches the String queryString (as interpreted by the Lucene QueryParser)\r
+ * \r
+ * @param clazz filter the results by class (or pass null to return all AgentBase instances)\r
+ * @param queryString\r
+ * @param pageSize The maximum number of agents returned (can be null for all matching agents)\r
+ * @param pageNumber The offset (in pageSize chunks) from the start of the result set (0 - based)\r
+ * @param orderHints\r
+ * Supports path like <code>orderHints.propertyNames</code> which\r
+ * include *-to-one properties like createdBy.username or\r
+ * authorTeam.persistentTitleCache\r
+ * @param propertyPaths properties to be initialized\r
+ * @return a Pager Agent instances\r
+ * @see <a href="http://lucene.apache.org/java/2_4_0/queryparsersyntax.html">Apache Lucene - Query Parser Syntax</a>\r
+ */\r
+ public Pager<AgentBase> search(Class<? extends AgentBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths);\r
}\r
public interface IDescriptionService extends IIdentifiableEntityService<DescriptionBase> {\r
\r
/**\r
- * @param uuid\r
* @return\r
*/\r
// FIXME candidate for harmonization? findByUuid\r
*/\r
public DescriptionElementBase getDescriptionElementByUuid(UUID uuid);\r
\r
+ /**\r
+ * Loads and existing DescriptionElementBase instance matching the supplied uuid,\r
+ * and 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#initialize(Object, List)}\r
+ * \r
+ * @param uuid the uuid of the DescriptionElement of interest\r
+ * @return a DescriptionElement, or null if the DescriptionElement does not exist\r
+ */\r
+ public DescriptionElementBase loadDescriptionElement(UUID uuid,List<String> propertyPaths);\r
+ \r
+ /**\r
+ * Persists a <code>DescriptionElementBase</code>\r
+ * @param descriptionElement\r
+ * @return\r
+ */\r
+ public UUID saveDescriptionElement(DescriptionElementBase descriptionElement);\r
+ \r
+ /**\r
+ * Delete an existing description element\r
+ * \r
+ * @param descriptionElement the description element to be deleted\r
+ * @return the unique identifier of the deleted entity\r
+ */\r
+ public UUID deleteDescriptionElement(DescriptionElementBase descriptionElement);\r
+ \r
/**\r
* List the descriptions of type <TYPE>, filtered using the following parameters\r
* \r
public Pager<TaxonDescription> searchDescriptionByDistribution(Set<NamedArea> namedAreas, PresenceAbsenceTermBase presence, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths);\r
\r
/**\r
- * Returns a List of TextData elements that match a given queryString provided.\r
+ * Returns a Paged List of DescriptionElementBase instances where the default field matches the String queryString (as interpreted by the Lucene QueryParser)\r
* \r
- * @param queryString \r
- * @param pageSize\r
- * @param pageNumber\r
- * @param orderHints may be null\r
- * @param propertyPaths Properties to initialize in the returned entities, following the syntax described in {@link BeanInitializer#initialize(Object, List)}\r
- * @return\r
- * @throws QueryParseException\r
+ * @param clazz filter the results by class (or pass null to return all DescriptionElementBase instances)\r
+ * @param queryString\r
+ * @param pageSize The maximum number of descriptionElements returned (can be null for all matching descriptionElements)\r
+ * @param pageNumber The offset (in pageSize chunks) from the start of the result set (0 - based)\r
+ * @param orderHints\r
+ * Supports path like <code>orderHints.propertyNames</code> which\r
+ * include *-to-one properties like createdBy.username or\r
+ * authorTeam.persistentTitleCache\r
+ * @param propertyPaths properties to be initialized\r
+ * @return a Pager DescriptionElementBase instances\r
+ * @see <a href="http://lucene.apache.org/java/2_4_0/queryparsersyntax.html">Apache Lucene - Query Parser Syntax</a>\r
*/\r
- public Pager<TextData> searchTextData(String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths);\r
+ public Pager<DescriptionElementBase> search(Class<? extends DescriptionElementBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths);\r
\r
/**\r
* Returns a List of Media that are associated with a given description element\r
import eu.etaxonomy.cdm.model.media.Rights;\r
import eu.etaxonomy.cdm.model.taxon.Taxon;\r
import eu.etaxonomy.cdm.persistence.dao.BeanInitializer;\r
+import eu.etaxonomy.cdm.persistence.query.OrderHint;\r
\r
public interface IMediaService extends IAnnotatableService<Media> {\r
\r
* @return a Pager of Rights entities\r
*/\r
public Pager<Rights> getRights(Media t, Integer pageSize, Integer pageNumber, List<String> propertyPaths);\r
+ \r
+ /**\r
+ * Returns a Paged List of Media instances where the default field matches the String queryString (as interpreted by the Lucene QueryParser)\r
+ * \r
+ * @param clazz filter the results by class (or pass null to return all Media instances)\r
+ * @param queryString\r
+ * @param pageSize The maximum number of media returned (can be null for all matching media)\r
+ * @param pageNumber The offset (in pageSize chunks) from the start of the result set (0 - based)\r
+ * @param orderHints\r
+ * Supports path like <code>orderHints.propertyNames</code> which\r
+ * include *-to-one properties like createdBy.username or\r
+ * authorTeam.persistentTitleCache\r
+ * @param propertyPaths properties to be initialized\r
+ * @return a Pager Media instances\r
+ * @see <a href="http://lucene.apache.org/java/2_4_0/queryparsersyntax.html">Apache Lucene - Query Parser Syntax</a>\r
+ */\r
+ public Pager<Media> search(Class<? extends Media> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths);\r
}\r
import java.util.Collection;
import java.util.List;
-import java.util.UUID;
import java.util.Map;
+import java.util.UUID;
import eu.etaxonomy.cdm.api.service.pager.Pager;
import eu.etaxonomy.cdm.model.reference.ReferenceBase;
*/
public abstract Map<UUID, ReferenceBase> saveReferenceAll(Collection<ReferenceBase> referenceCollection);
+ /**
+ * Returns a Paged List of ReferenceBase instances where the default field matches the String queryString (as interpreted by the Lucene QueryParser)
+ *
+ * @param clazz filter the results by class (or pass null to return all ReferenceBase instances)
+ * @param queryString
+ * @param pageSize The maximum number of references returned (can be null for all matching references)
+ * @param pageNumber The offset (in pageSize chunks) from the start of the result set (0 - based)
+ * @param orderHints
+ * Supports path like <code>orderHints.propertyNames</code> which
+ * include *-to-one properties like createdBy.username or
+ * authorTeam.persistentTitleCache
+ * @param propertyPaths properties to be initialized
+ * @return a Pager ReferenceBase instances
+ * @see <a href="http://lucene.apache.org/java/2_4_0/queryparsersyntax.html">Apache Lucene - Query Parser Syntax</a>
+ */
+ public Pager<ReferenceBase> search(Class<? extends ReferenceBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths);
+
}
public List<List<Synonym>> getHeterotypicSynonymyGroups(Taxon taxon, List<String> propertyPaths);
/**
- * Returns a List of TaxonBase instances (or Taxon instances, if accepted == true, or Synonym instance, if accepted == false) where the
- * taxonBase.name.nameCache property matches the String queryString (as interpreted by the Lucene QueryParser)
+ * Returns a Paged List of TaxonBase instances where the default field matches the String queryString (as interpreted by the Lucene QueryParser)
*
+ * @param clazz filter the results by class (or pass null to return all TaxonBase instances)
* @param queryString
- * @param accepted
* @param pageSize The maximum number of taxa returned (can be null for all matching taxa)
* @param pageNumber The offset (in pageSize chunks) from the start of the result set (0 - based)
+ * @param orderHints
+ * Supports path like <code>orderHints.propertyNames</code> which
+ * include *-to-one properties like createdBy.username or
+ * authorTeam.persistentTitleCache
+ * @param propertyPaths properties to be initialized
* @return a Pager Taxon instances
* @see <a href="http://lucene.apache.org/java/2_4_0/queryparsersyntax.html">Apache Lucene - Query Parser Syntax</a>
*/
- public Pager<TaxonBase> searchTaxa(String queryString, Boolean accepted, Integer pageSize, Integer pageNumber);
+ public Pager<TaxonBase> search(Class<? extends TaxonBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths);
/**
* Returns a list of TaxonBase instances (or Taxon instances, if accepted == true, or Synonym instance, if accepted == false) where the
import eu.etaxonomy.cdm.persistence.dao.media.IMediaDao;\r
import eu.etaxonomy.cdm.persistence.dao.media.IMediaRepresentationDao;\r
import eu.etaxonomy.cdm.persistence.dao.media.IMediaRepresentationPartDao;\r
+import eu.etaxonomy.cdm.persistence.query.OrderHint;\r
\r
@Service\r
@Transactional\r
\r
return new DefaultPagerImpl<Rights>(pageNumber, numberOfResults, pageSize, results);\r
}\r
+ \r
+ public Pager<Media> search(Class<? extends Media> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {\r
+ Integer numberOfResults = dao.count(clazz,queryString);\r
+ \r
+ List<Media> results = new ArrayList<Media>();\r
+ if(numberOfResults > 0) { // no point checking again\r
+ results = dao.search(clazz,queryString, pageSize, pageNumber, orderHints, propertyPaths); \r
+ }\r
+ \r
+ return new DefaultPagerImpl<Media>(pageNumber, numberOfResults, pageSize, results);\r
+ }\r
}\r
import eu.etaxonomy.cdm.model.name.HybridRelationship;\r
import eu.etaxonomy.cdm.model.name.HybridRelationshipType;\r
import eu.etaxonomy.cdm.model.reference.ReferenceBase;\r
+import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
import eu.etaxonomy.cdm.persistence.dao.reference.IReferenceDao;\r
import eu.etaxonomy.cdm.persistence.query.OrderHint;\r
\r
protected void setDao(IReferenceDao dao) {\r
this.dao = dao;\r
}\r
-\r
-\r
-\r
+ \r
+ public Pager<ReferenceBase> search(Class<? extends ReferenceBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {\r
+ Integer numberOfResults = dao.count(clazz,queryString);\r
+ \r
+ List<ReferenceBase> results = new ArrayList<ReferenceBase>();\r
+ if(numberOfResults > 0) { // no point checking again\r
+ results = dao.search(clazz,queryString, pageSize, pageNumber, orderHints, propertyPaths); \r
+ }\r
+ \r
+ return new DefaultPagerImpl<ReferenceBase>(pageNumber, numberOfResults, pageSize, results);\r
+ }\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.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
return heterotypicSynonymyGroups;\r
}\r
\r
- public Pager<TaxonBase> searchTaxa(String queryString, Boolean accepted, Integer pageSize, Integer pageNumber) {\r
- Integer numberOfResults = dao.countTaxa(queryString, accepted);\r
+ public Pager<TaxonBase> search(Class<? extends TaxonBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {\r
+ Integer numberOfResults = dao.count(clazz,queryString);\r
\r
List<TaxonBase> results = new ArrayList<TaxonBase>();\r
if(numberOfResults > 0) { // no point checking again\r
- results = dao.searchTaxa(queryString, accepted, pageSize, pageNumber); \r
+ results = dao.search(clazz,queryString, pageSize, pageNumber, orderHints, propertyPaths); \r
}\r
\r
return new DefaultPagerImpl<TaxonBase>(pageNumber, numberOfResults, pageSize, results);\r
titleCache varchar(255),
createdby_id integer,
updatedby_id integer,
+ code varchar(255),
+ name varchar(255),
+ ispartof_id integer,
nomenclaturaltitle varchar(255),
+ protectednomenclaturaltitlecache bit,
firstname varchar(255),
lastname varchar(255),
lifespan_end varchar(255),
lifespan_start varchar(255),
prefix varchar(255),
suffix varchar(255),
- protectednomenclaturaltitlecache bit,
- code varchar(255),
- name varchar(255),
- ispartof_id integer,
primary key (id, REV)
);
create table AuditEvent (
revisionnumber integer generated by default as identity (start with 1),
+ date timestamp,
timestamp bigint,
uuid varchar(255),
primary key (revisionnumber)
kindof_id integer,
partof_id integer,
vocabulary_id integer,
+ orderindex integer,
iso639_1 varchar(2),
iso639_2 varchar(3),
- orderindex integer,
- symmetric bit,
- transitive bit,
supportscategoricaldata bit,
supportscommontaxonname bit,
supportsdistribution bit,
supportsquantitativedata bit,
supportstaxoninteraction bit,
supportstextdata bit,
+ defaultcolor varchar(255),
pointapproximation_errorradius integer,
pointapproximation_latitude double,
pointapproximation_longitude double,
shape_id integer,
type_id integer,
iso3166_a2 varchar(2),
- defaultcolor varchar(255),
+ symmetric bit,
+ transitive bit,
primary key (id, REV)
);
imagegallery bit,
createdby_id integer,
updatedby_id integer,
- taxonName_fk integer,
taxon_fk integer,
+ taxonName_fk integer,
primary key (id, REV)
);
citation_id integer,
feature_id integer,
indescription_id integer,
+ nameusedinreference_id integer,
language_id integer,
area_id integer,
status_id integer,
unit_id integer,
taxon2_id integer,
format_id integer,
- nameusedinreference_id integer,
- primary key (id)
+ primary key (id)
);
create table DescriptionElementBase_AUD (
citation_id integer,
feature_id integer,
indescription_id integer,
+ nameusedinreference_id integer,
format_id integer,
- unit_id integer,
- orderrelevant bit,
- area_id integer,
- status_id integer,
taxon2_id integer,
+ unit_id integer,
associatedspecimenorobservation_id integer,
+ orderrelevant bit,
name varchar(255),
language_id integer,
- nameusedinreference_id integer,
- primary key (id, REV)
+ area_id integer,
+ status_id integer,
+ primary key (id, REV)
);
create table DescriptionElementBase_Annotation (
createdby_id integer,
updatedby_id integer,
representation_id integer,
+ duration integer,
height integer,
width integer,
- duration integer,
primary key (id, REV)
);
createdby_id integer,
updatedby_id integer,
authorteam_id integer,
- datepublished_end varchar(255),
- datepublished_start varchar(255),
- title longvarchar,
- issn varchar(255),
- editor varchar(255),
- pages varchar(255),
- series varchar(255),
- volume varchar(255),
- inbook_id integer,
- injournal_id integer,
- school_id integer,
- inproceedings_id integer,
- seriespart varchar(255),
- inseries_id integer,
- organization varchar(255),
- edition varchar(255),
- isbn varchar(255),
- institution_id integer,
address varchar(255),
annote varchar(255),
booktitle varchar(255),
chapter varchar(255),
+ edition varchar(255),
+ editor varchar(255),
eprint varchar(255),
howpublished varchar(255),
institution varchar(255),
month varchar(255),
note varchar(255),
number varchar(255),
+ organization varchar(255),
+ pages varchar(255),
publisher varchar(255),
reporttype varchar(255),
school varchar(255),
+ series varchar(255),
+ title varchar(255),
+ volume varchar(255),
year varchar(255),
crossref_id integer,
type_id integer,
+ datepublished_end varchar(255),
+ datepublished_start varchar(255),
+ injournal_id integer,
+ school_id integer,
+ issn varchar(255),
+ institution_id integer,
+ inbook_id integer,
+ inproceedings_id integer,
+ seriespart varchar(255),
+ inseries_id integer,
+ isbn varchar(255),
primary key (id, REV)
);
updatedby_id integer,
lifestage_id integer,
sex_id integer,
+ fieldnotes varchar(255),
+ fieldnumber varchar(255),
+ gatheringevent_id integer,
accessionnumber varchar(255),
catalognumber varchar(255),
collectorsnumber varchar(255),
collection_id integer,
derivationevent_id integer,
storedunder_id integer,
- fieldnotes varchar(255),
- fieldnumber varchar(255),
- gatheringevent_id integer,
preservation_id integer,
primary key (id, REV)
);
combinationauthorteam_id integer,
exbasionymauthorteam_id integer,
excombinationauthorteam_id integer,
+ acronym varchar(255),
+ nameapprobation varchar(255),
+ subgenusauthorship varchar(255),
breed varchar(255),
originalpublicationyear integer,
publicationyear integer,
hybridformula bit,
monomhybrid bit,
trinomhybrid bit,
- nameapprobation varchar(255),
- subgenusauthorship varchar(255),
- acronym varchar(255),
cultivarname varchar(255),
primary key (id, REV)
);
foreign key (associatedspecimenorobservation_id)
references SpecimenOrObservationBase;
+ alter table DescriptionElementBase
+ add constraint FK38FE76714220AFEB
+ foreign key (feature_id)
+ references DefinedTermBase;
+
+ alter table DescriptionElementBase
+ add constraint FK38FE7671BC5DA539
+ foreign key (updatedby_id)
+ references UserAccount;
+
+ alter table DescriptionElementBase
+ add constraint FK38FE76719108D9B
+ foreign key (taxon2_id)
+ references TaxonBase;
+
alter table DescriptionElementBase
add constraint FK38FE76714FF2DB2C
foreign key (createdby_id)
references UserAccount;
alter table DescriptionElementBase
- add constraint FK38FE767110A80E07
- foreign key (unit_id)
- references DefinedTermBase;
+ add constraint FK38FE7671A308E33C
+ foreign key (nameusedinreference_id)
+ references TaxonNameBase;
alter table DescriptionElementBase
- add constraint FK38FE76716D0D7A56
- foreign key (format_id)
+ add constraint FK38FE767110A80E07
+ foreign key (unit_id)
references DefinedTermBase;
alter table DescriptionElementBase
references DefinedTermBase;
alter table DescriptionElementBase
- add constraint FK38FE76714220AFEB
- foreign key (feature_id)
+ add constraint FK38FE76716D0D7A56
+ foreign key (format_id)
references DefinedTermBase;
alter table DescriptionElementBase
references ReferenceBase;
alter table DescriptionElementBase
- add constraint FK38FE7671BC5DA539
- foreign key (updatedby_id)
- references UserAccount;
-
- alter table DescriptionElementBase
- add constraint FK38FE76719108D9B
- foreign key (taxon2_id)
- references TaxonBase;
+ add constraint FK38FE7671E8D36B00
+ foreign key (language_id)
+ references DefinedTermBase;
alter table DescriptionElementBase
add constraint FK38FE76711C3C3FF7
foreign key (area_id)
references DefinedTermBase;
- alter table DescriptionElementBase
- add constraint FK38FE7671E8D36B00
- foreign key (language_id)
- references DefinedTermBase;
-
alter table DescriptionElementBase_AUD
add constraint FKF3803C234869AAE
foreign key (REV)