import java.util.List;
import java.util.Set;
+import org.apache.log4j.Logger;
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;
+import org.hibernate.SessionFactory;
import org.hibernate.criterion.Restrictions;
+import org.hibernate.impl.SessionFactoryImpl;
import org.springframework.stereotype.Repository;
import eu.etaxonomy.cdm.model.agent.Address;
@Repository
public class CdmGenericDaoImpl extends CdmEntityDaoBase<CdmBase> implements ICdmGenericDao{
+ private static final Logger logger = Logger.getLogger(CdmGenericDaoImpl.class);
public CdmGenericDaoImpl() {
super(CdmBase.class);
* @see eu.etaxonomy.cdm.persistence.dao.common.ICdmGenericDao#getAllCdmClasses(boolean)
*/
public Set<Class<? extends CdmBase>> getAllCdmClasses(boolean includeAbstractClasses){
-
- Class[] result2 = {
- Address.class,
- AgentBase.class,
- Contact.class,
- Institution.class,
- InstitutionalMembership.class,
- InstitutionType.class,
- Person.class,
- Team.class,
- TeamOrPersonBase.class,
- Annotation.class,
- AnnotationType.class,
- Credit.class,
- DefinedTermBase.class,
- Extension.class,
- ExtensionType.class,
- Figure.class,
- GrantedAuthorityImpl.class,
- Group.class,
- Keyword.class,
- Language.class,
- LanguageString.class,
- LSID.class,
- LSIDAuthority.class,
- Marker.class,
- MarkerType.class,
- OrderedTermBase.class,
- OrderedTermVocabulary.class,
- OriginalSource.class,
- RelationshipTermBase.class,
- Representation.class,
- TermVocabulary.class,
- User.class,
-
- AbsenceTerm.class,
- CategoricalData.class,
- CommonTaxonName.class,
- DescriptionBase.class,
- DescriptionElementBase.class,
- Distribution.class,
- Feature.class,
- FeatureNode.class,
- FeatureTree.class,
- IdentificationKey.class,
- IndividualsAssociation.class,
- MeasurementUnit.class,
- Modifier.class,
- PresenceAbsenceTermBase.class,
- PresenceTerm.class,
- QuantitativeData.class,
- Scope.class,
- Sex.class,
- SpecimenDescription.class,
- Stage.class,
- State.class,
- StateData.class,
- StatisticalMeasure.class,
- StatisticalMeasurementValue.class,
- TaxonDescription.class,
- TaxonInteraction.class,
- TaxonNameDescription.class,
- TextData.class,
- TextFormat.class,
- Continent.class,
- NamedArea.class,
- NamedAreaLevel.class,
- NamedAreaType.class,
- ReferenceSystem.class,
- Point.class,
- TdwgArea.class,
- WaterbodyOrCountry.class,
- AudioFile.class,
- ImageFile.class,
- Media.class,
- MediaRepresentation.class,
- MediaRepresentationPart.class,
- MovieFile.class,
- ReferencedMedia.class,
- Rights.class,
- RightsTerm.class,
- DnaSample.class,
- GenBankAccession.class,
- Locus.class,
- PhylogeneticTree.class,
- Sequence.class,
- BacterialName.class,
- BotanicalName.class,
- CultivarPlantName.class,
- HomotypicalGroup.class,
- HybridRelationship.class,
- HybridRelationshipType.class,
- NameRelationship.class,
- NameRelationshipType.class,
- NameTypeDesignation.class,
- NameTypeDesignationStatus.class,
- NomenclaturalCode.class,
- NomenclaturalStatus.class,
- NomenclaturalStatusType.class,
- NonViralName.class,
- Rank.class,
- SpecimenTypeDesignation.class,
- SpecimenTypeDesignationStatus.class,
- TaxonNameBase.class,
- TypeDesignationBase.class,
- ViralName.class,
- ZoologicalName.class,
- Collection.class,
- DerivationEvent.class,
- DerivationEventType.class,
- DerivedUnit.class,
- DerivedUnitBase.class,
- DeterminationEvent.class,
- DeterminationModifier.class,
- FieldObservation.class,
- Fossil.class,
- GatheringEvent.class,
- LivingBeing.class,
- Observation.class,
- PreservationMethod.class,
- Specimen.class,
- SpecimenOrObservationBase.class,
- Article.class,
- BibtexEntryType.class,
- BibtexReference.class,
- Book.class,
- BookSection.class,
- CdDvd.class,
- Database.class,
- Generic.class,
- InProceedings.class,
- Journal.class,
- Map.class,
- Patent.class,
- PersonalCommunication.class,
- PrintedUnitBase.class,
- PrintSeries.class,
- Proceedings.class,
- ReferenceBase.class,
- Publisher.class,
- Report.class,
- SectionBase.class,
- StrictReferenceBase.class,
- Thesis.class,
- WebPage.class,
- Synonym.class,
- SynonymRelationship.class,
- SynonymRelationshipType.class,
- Taxon.class,
- TaxonBase.class,
- TaxonNode.class,
- TaxonomicTree.class,
- TaxonRelationship.class,
- TaxonRelationshipType.class
- } ;
-
Set<Class<? extends CdmBase>> result = new HashSet<Class<? extends CdmBase>>();
- for (Class clazz : result2){
- boolean isAbstractClass = Modifier.isAbstract(clazz.getModifiers());
- if (! isAbstractClass || includeAbstractClasses){
- result.add(clazz);
+
+ SessionFactory sessionFactory = getSession().getSessionFactory();
+ java.util.Map allClassMetadata = sessionFactory.getAllClassMetadata();
+ java.util.Collection keys = allClassMetadata.keySet();
+ for (Object oKey : keys){
+ if (oKey instanceof String){
+ String strKey = (String)oKey;
+ if (! strKey.endsWith("_AUD")){
+ try {
+ Class clazz = Class.forName(strKey);
+ boolean isAbstractClass = Modifier.isAbstract(clazz.getModifiers());
+ if (! isAbstractClass || includeAbstractClasses){
+ result.add(clazz);
+ }
+ } catch (ClassNotFoundException e) {
+ logger.warn("Class not found: " + strKey);
+ }
+ }
+ }else{
+ logger.warn("key is not of type String: " + oKey);
}
}
return result;
}
+
+
public List getHqlResult(String hqlQuery){
Query query = getSession().createQuery(hqlQuery);
--- /dev/null
+// $Id$\r
+/**\r
+* Copyright (C) 2007 EDIT\r
+* European Distributed Institute of Taxonomy \r
+* http://www.e-taxonomy.eu\r
+* \r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
+\r
+package eu.etaxonomy.cdm.persistence.dao.hibernate.common;\r
+\r
+import static org.junit.Assert.*;\r
+\r
+import java.lang.reflect.Modifier;\r
+import java.util.ArrayList;\r
+import java.util.Arrays;\r
+import java.util.HashSet;\r
+import java.util.List;\r
+import java.util.Set;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.junit.After;\r
+import org.junit.AfterClass;\r
+import org.junit.Assert;\r
+import org.junit.Before;\r
+import org.junit.BeforeClass;\r
+import org.junit.Test;\r
+import org.unitils.spring.annotation.SpringBeanByType;\r
+\r
+import eu.etaxonomy.cdm.model.agent.Address;\r
+import eu.etaxonomy.cdm.model.agent.AgentBase;\r
+import eu.etaxonomy.cdm.model.agent.Contact;\r
+import eu.etaxonomy.cdm.model.agent.Institution;\r
+import eu.etaxonomy.cdm.model.agent.InstitutionType;\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.model.agent.TeamOrPersonBase;\r
+import eu.etaxonomy.cdm.model.common.Annotation;\r
+import eu.etaxonomy.cdm.model.common.AnnotationType;\r
+import eu.etaxonomy.cdm.model.common.CdmBase;\r
+import eu.etaxonomy.cdm.model.common.Credit;\r
+import eu.etaxonomy.cdm.model.common.DefinedTermBase;\r
+import eu.etaxonomy.cdm.model.common.Extension;\r
+import eu.etaxonomy.cdm.model.common.ExtensionType;\r
+import eu.etaxonomy.cdm.model.common.Figure;\r
+import eu.etaxonomy.cdm.model.common.GrantedAuthorityImpl;\r
+import eu.etaxonomy.cdm.model.common.Group;\r
+import eu.etaxonomy.cdm.model.common.Keyword;\r
+import eu.etaxonomy.cdm.model.common.LSID;\r
+import eu.etaxonomy.cdm.model.common.LSIDAuthority;\r
+import eu.etaxonomy.cdm.model.common.Language;\r
+import eu.etaxonomy.cdm.model.common.LanguageString;\r
+import eu.etaxonomy.cdm.model.common.Marker;\r
+import eu.etaxonomy.cdm.model.common.MarkerType;\r
+import eu.etaxonomy.cdm.model.common.OrderedTermBase;\r
+import eu.etaxonomy.cdm.model.common.OrderedTermVocabulary;\r
+import eu.etaxonomy.cdm.model.common.OriginalSource;\r
+import eu.etaxonomy.cdm.model.common.RelationshipTermBase;\r
+import eu.etaxonomy.cdm.model.common.Representation;\r
+import eu.etaxonomy.cdm.model.common.TermVocabulary;\r
+import eu.etaxonomy.cdm.model.common.User;\r
+import eu.etaxonomy.cdm.model.description.AbsenceTerm;\r
+import eu.etaxonomy.cdm.model.description.CategoricalData;\r
+import eu.etaxonomy.cdm.model.description.CommonTaxonName;\r
+import eu.etaxonomy.cdm.model.description.DescriptionBase;\r
+import eu.etaxonomy.cdm.model.description.DescriptionElementBase;\r
+import eu.etaxonomy.cdm.model.description.Distribution;\r
+import eu.etaxonomy.cdm.model.description.Feature;\r
+import eu.etaxonomy.cdm.model.description.FeatureNode;\r
+import eu.etaxonomy.cdm.model.description.FeatureTree;\r
+import eu.etaxonomy.cdm.model.description.IdentificationKey;\r
+import eu.etaxonomy.cdm.model.description.IndividualsAssociation;\r
+import eu.etaxonomy.cdm.model.description.MeasurementUnit;\r
+import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;\r
+import eu.etaxonomy.cdm.model.description.PresenceTerm;\r
+import eu.etaxonomy.cdm.model.description.QuantitativeData;\r
+import eu.etaxonomy.cdm.model.description.Scope;\r
+import eu.etaxonomy.cdm.model.description.Sex;\r
+import eu.etaxonomy.cdm.model.description.SpecimenDescription;\r
+import eu.etaxonomy.cdm.model.description.Stage;\r
+import eu.etaxonomy.cdm.model.description.State;\r
+import eu.etaxonomy.cdm.model.description.StateData;\r
+import eu.etaxonomy.cdm.model.description.StatisticalMeasure;\r
+import eu.etaxonomy.cdm.model.description.StatisticalMeasurementValue;\r
+import eu.etaxonomy.cdm.model.description.TaxonDescription;\r
+import eu.etaxonomy.cdm.model.description.TaxonInteraction;\r
+import eu.etaxonomy.cdm.model.description.TaxonNameDescription;\r
+import eu.etaxonomy.cdm.model.description.TextData;\r
+import eu.etaxonomy.cdm.model.description.TextFormat;\r
+import eu.etaxonomy.cdm.model.location.Continent;\r
+import eu.etaxonomy.cdm.model.location.NamedArea;\r
+import eu.etaxonomy.cdm.model.location.NamedAreaLevel;\r
+import eu.etaxonomy.cdm.model.location.NamedAreaType;\r
+import eu.etaxonomy.cdm.model.location.Point;\r
+import eu.etaxonomy.cdm.model.location.ReferenceSystem;\r
+import eu.etaxonomy.cdm.model.location.TdwgArea;\r
+import eu.etaxonomy.cdm.model.location.WaterbodyOrCountry;\r
+import eu.etaxonomy.cdm.model.media.AudioFile;\r
+import eu.etaxonomy.cdm.model.media.ImageFile;\r
+import eu.etaxonomy.cdm.model.media.Media;\r
+import eu.etaxonomy.cdm.model.media.MediaRepresentation;\r
+import eu.etaxonomy.cdm.model.media.MediaRepresentationPart;\r
+import eu.etaxonomy.cdm.model.media.MovieFile;\r
+import eu.etaxonomy.cdm.model.media.ReferencedMedia;\r
+import eu.etaxonomy.cdm.model.media.Rights;\r
+import eu.etaxonomy.cdm.model.media.RightsTerm;\r
+import eu.etaxonomy.cdm.model.molecular.DnaSample;\r
+import eu.etaxonomy.cdm.model.molecular.GenBankAccession;\r
+import eu.etaxonomy.cdm.model.molecular.Locus;\r
+import eu.etaxonomy.cdm.model.molecular.PhylogeneticTree;\r
+import eu.etaxonomy.cdm.model.molecular.Sequence;\r
+import eu.etaxonomy.cdm.model.name.BacterialName;\r
+import eu.etaxonomy.cdm.model.name.BotanicalName;\r
+import eu.etaxonomy.cdm.model.name.CultivarPlantName;\r
+import eu.etaxonomy.cdm.model.name.HomotypicalGroup;\r
+import eu.etaxonomy.cdm.model.name.HybridRelationship;\r
+import eu.etaxonomy.cdm.model.name.HybridRelationshipType;\r
+import eu.etaxonomy.cdm.model.name.NameRelationship;\r
+import eu.etaxonomy.cdm.model.name.NameRelationshipType;\r
+import eu.etaxonomy.cdm.model.name.NameTypeDesignation;\r
+import eu.etaxonomy.cdm.model.name.NameTypeDesignationStatus;\r
+import eu.etaxonomy.cdm.model.name.NomenclaturalCode;\r
+import eu.etaxonomy.cdm.model.name.NomenclaturalStatus;\r
+import eu.etaxonomy.cdm.model.name.NomenclaturalStatusType;\r
+import eu.etaxonomy.cdm.model.name.NonViralName;\r
+import eu.etaxonomy.cdm.model.name.Rank;\r
+import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;\r
+import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignationStatus;\r
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
+import eu.etaxonomy.cdm.model.name.TypeDesignationBase;\r
+import eu.etaxonomy.cdm.model.name.ViralName;\r
+import eu.etaxonomy.cdm.model.name.ZoologicalName;\r
+import eu.etaxonomy.cdm.model.occurrence.Collection;\r
+import eu.etaxonomy.cdm.model.occurrence.DerivationEvent;\r
+import eu.etaxonomy.cdm.model.occurrence.DerivationEventType;\r
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;\r
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase;\r
+import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;\r
+import eu.etaxonomy.cdm.model.occurrence.DeterminationModifier;\r
+import eu.etaxonomy.cdm.model.occurrence.FieldObservation;\r
+import eu.etaxonomy.cdm.model.occurrence.Fossil;\r
+import eu.etaxonomy.cdm.model.occurrence.GatheringEvent;\r
+import eu.etaxonomy.cdm.model.occurrence.LivingBeing;\r
+import eu.etaxonomy.cdm.model.occurrence.Observation;\r
+import eu.etaxonomy.cdm.model.occurrence.PreservationMethod;\r
+import eu.etaxonomy.cdm.model.occurrence.Specimen;\r
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;\r
+import eu.etaxonomy.cdm.model.reference.Article;\r
+import eu.etaxonomy.cdm.model.reference.BibtexEntryType;\r
+import eu.etaxonomy.cdm.model.reference.BibtexReference;\r
+import eu.etaxonomy.cdm.model.reference.Book;\r
+import eu.etaxonomy.cdm.model.reference.BookSection;\r
+import eu.etaxonomy.cdm.model.reference.CdDvd;\r
+import eu.etaxonomy.cdm.model.reference.Database;\r
+import eu.etaxonomy.cdm.model.reference.Generic;\r
+import eu.etaxonomy.cdm.model.reference.InProceedings;\r
+import eu.etaxonomy.cdm.model.reference.Journal;\r
+import eu.etaxonomy.cdm.model.reference.Map;\r
+import eu.etaxonomy.cdm.model.reference.Patent;\r
+import eu.etaxonomy.cdm.model.reference.PersonalCommunication;\r
+import eu.etaxonomy.cdm.model.reference.PrintSeries;\r
+import eu.etaxonomy.cdm.model.reference.PrintedUnitBase;\r
+import eu.etaxonomy.cdm.model.reference.Proceedings;\r
+import eu.etaxonomy.cdm.model.reference.Publisher;\r
+import eu.etaxonomy.cdm.model.reference.ReferenceBase;\r
+import eu.etaxonomy.cdm.model.reference.Report;\r
+import eu.etaxonomy.cdm.model.reference.SectionBase;\r
+import eu.etaxonomy.cdm.model.reference.StrictReferenceBase;\r
+import eu.etaxonomy.cdm.model.reference.Thesis;\r
+import eu.etaxonomy.cdm.model.reference.WebPage;\r
+import eu.etaxonomy.cdm.model.taxon.Synonym;\r
+import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;\r
+import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;\r
+import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;\r
+import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;\r
+import eu.etaxonomy.cdm.model.taxon.TaxonomicTree;\r
+import eu.etaxonomy.cdm.model.view.AuditEvent;\r
+import eu.etaxonomy.cdm.persistence.dao.common.ICdmGenericDao;\r
+import eu.etaxonomy.cdm.persistence.dao.taxon.ITaxonDao;\r
+import eu.etaxonomy.cdm.test.integration.CdmTransactionalIntegrationTest;\r
+\r
+/**\r
+ * @author a.mueller\r
+ * @created 27.07.2009\r
+ * @version 1.0\r
+ */\r
+public class CdmGenericDaoImplTest extends CdmTransactionalIntegrationTest{\r
+ @SuppressWarnings("unused")\r
+ private static final Logger logger = Logger.getLogger(CdmGenericDaoImplTest.class);\r
+ \r
+ @SpringBeanByType\r
+ private ICdmGenericDao cdmGenericDao;\r
+ \r
+ /**\r
+ * @throws java.lang.Exception\r
+ */\r
+ @BeforeClass\r
+ public static void setUpBeforeClass() throws Exception {\r
+ }\r
+\r
+ /**\r
+ * @throws java.lang.Exception\r
+ */\r
+ @AfterClass\r
+ public static void tearDownAfterClass() throws Exception {\r
+ }\r
+\r
+ /**\r
+ * @throws java.lang.Exception\r
+ */\r
+ @Before\r
+ public void setUp() throws Exception {\r
+ }\r
+\r
+ /**\r
+ * @throws java.lang.Exception\r
+ */\r
+ @After\r
+ public void tearDown() throws Exception {\r
+ }\r
+\r
+// ***************** TESTS ************************************************** \r
+ \r
+ /**\r
+ * Test method for {@link eu.etaxonomy.cdm.persistence.dao.hibernate.common.CdmGenericDaoImpl#CdmGenericDaoImpl()}.\r
+ */\r
+ @Test\r
+ public void testCdmGenericDaoImpl() {\r
+ logger.warn("Not yet implemented");\r
+ }\r
+\r
+ /**\r
+ * Test method for {@link eu.etaxonomy.cdm.persistence.dao.hibernate.common.CdmGenericDaoImpl#getCdmBasesByFieldAndClass(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.model.common.CdmBase)}.\r
+ */\r
+ @Test\r
+ public void testGetCdmBasesByFieldAndClass() {\r
+ logger.warn("Not yet implemented");\r
+ }\r
+\r
+ /**\r
+ * Test method for {@link eu.etaxonomy.cdm.persistence.dao.hibernate.common.CdmGenericDaoImpl#getCdmBasesWithItemInCollection(java.lang.Class, java.lang.Class, java.lang.String, eu.etaxonomy.cdm.model.common.CdmBase)}.\r
+ */\r
+ @Test\r
+ public void testGetCdmBasesWithItemInCollection() {\r
+ logger.warn("Not yet implemented");\r
+ }\r
+\r
+ /**\r
+ * Test method for {@link eu.etaxonomy.cdm.persistence.dao.hibernate.common.CdmGenericDaoImpl#getAllCdmClasses(boolean)}.\r
+ */\r
+ @Test\r
+ public void testGetAllCdmClasses() {\r
+ Class[] existingClassesArray = {\r
+ Address.class,\r
+ AgentBase.class,\r
+ Institution.class, \r
+ InstitutionalMembership.class, \r
+ InstitutionType.class, \r
+ Person.class, \r
+ Team.class, \r
+ TeamOrPersonBase.class, \r
+ Annotation.class, \r
+ AnnotationType.class, \r
+ Credit.class,\r
+ DefinedTermBase.class, \r
+ Extension.class, \r
+ ExtensionType.class, \r
+ Figure.class, \r
+ GrantedAuthorityImpl.class, \r
+ Group.class, \r
+ Keyword.class, \r
+ Language.class, \r
+ LanguageString.class, \r
+ LSIDAuthority.class, \r
+ Marker.class, \r
+ MarkerType.class, \r
+ OrderedTermBase.class, \r
+ OrderedTermVocabulary.class, \r
+ OriginalSource.class, \r
+ RelationshipTermBase.class, \r
+ Representation.class, \r
+ TermVocabulary.class, \r
+ User.class, \r
+ \r
+ AbsenceTerm.class, \r
+ CategoricalData.class, \r
+ CommonTaxonName.class, \r
+ DescriptionBase.class, \r
+ DescriptionElementBase.class, \r
+ Distribution.class, \r
+ Feature.class, \r
+ FeatureNode.class, \r
+ FeatureTree.class, \r
+ IdentificationKey.class, \r
+ IndividualsAssociation.class, \r
+ MeasurementUnit.class, \r
+ PresenceAbsenceTermBase.class, \r
+ PresenceTerm.class, \r
+ QuantitativeData.class, \r
+ Scope.class, \r
+ Sex.class, \r
+ SpecimenDescription.class, \r
+ Stage.class, \r
+ State.class, \r
+ StateData.class, \r
+ StatisticalMeasure.class, \r
+ StatisticalMeasurementValue.class, \r
+ TaxonDescription.class, \r
+ TaxonInteraction.class, \r
+ TaxonNameDescription.class, \r
+ TextData.class, \r
+ TextFormat.class, \r
+ Continent.class, \r
+ NamedArea.class, \r
+ NamedAreaLevel.class, \r
+ NamedAreaType.class, \r
+ ReferenceSystem.class, \r
+ TdwgArea.class, \r
+ WaterbodyOrCountry.class, \r
+ AudioFile.class, \r
+ ImageFile.class, \r
+ Media.class, \r
+ MediaRepresentation.class, \r
+ MediaRepresentationPart.class, \r
+ MovieFile.class, \r
+ ReferencedMedia.class, \r
+ Rights.class, \r
+ RightsTerm.class, \r
+ DnaSample.class, \r
+ GenBankAccession.class, \r
+ Locus.class, \r
+ PhylogeneticTree.class, \r
+ Sequence.class, \r
+ BacterialName.class, \r
+ BotanicalName.class, \r
+ CultivarPlantName.class, \r
+ HomotypicalGroup.class, \r
+ HybridRelationship.class, \r
+ HybridRelationshipType.class, \r
+ NameRelationship.class, \r
+ NameRelationshipType.class, \r
+ NameTypeDesignation.class, \r
+ NameTypeDesignationStatus.class, \r
+ NomenclaturalStatus.class, \r
+ NomenclaturalStatusType.class, \r
+ NonViralName.class, \r
+ Rank.class, \r
+ SpecimenTypeDesignation.class, \r
+ SpecimenTypeDesignationStatus.class, \r
+ TaxonNameBase.class, \r
+ TypeDesignationBase.class, \r
+ ViralName.class, \r
+ ZoologicalName.class, \r
+ Collection.class, \r
+ DerivationEvent.class, \r
+ DerivationEventType.class, \r
+ DerivedUnit.class, \r
+ DerivedUnitBase.class, \r
+ DeterminationEvent.class, \r
+ DeterminationModifier.class, \r
+ FieldObservation.class, \r
+ Fossil.class, \r
+ GatheringEvent.class, \r
+ LivingBeing.class, \r
+ Observation.class, \r
+ PreservationMethod.class, \r
+ Specimen.class, \r
+ SpecimenOrObservationBase.class, \r
+ Article.class, \r
+ BibtexEntryType.class, \r
+ BibtexReference.class, \r
+ Book.class, \r
+ BookSection.class, \r
+ CdDvd.class, \r
+ Database.class, \r
+ Generic.class, \r
+ InProceedings.class, \r
+ Journal.class, \r
+ Map.class, \r
+ Patent.class, \r
+ PersonalCommunication.class, \r
+ PrintedUnitBase.class, \r
+ PrintSeries.class, \r
+ Proceedings.class, \r
+ ReferenceBase.class, \r
+ Publisher.class, \r
+ Report.class, \r
+ SectionBase.class, \r
+ StrictReferenceBase.class, \r
+ Thesis.class, \r
+ WebPage.class, \r
+ Synonym.class, \r
+ SynonymRelationship.class, \r
+ SynonymRelationshipType.class, \r
+ Taxon.class, \r
+ TaxonBase.class, \r
+ TaxonNode.class, \r
+ TaxonomicTree.class, \r
+ TaxonRelationship.class, \r
+ TaxonRelationshipType.class \r
+ //Contact.class, \r
+ //LSID.class, \r
+ //Modifier.class, \r
+ //Point.class, \r
+ //NomenclaturalCode.class, \r
+ } ;\r
+ List<Class> existingClassesList = new ArrayList<Class>();\r
+ existingClassesList.addAll(Arrays.asList(existingClassesArray));\r
+ boolean includeAbstractClasses = true;\r
+ Set<Class<? extends CdmBase>> foundClasses = cdmGenericDao.getAllCdmClasses(includeAbstractClasses);\r
+ \r
+//for debugging only \r
+// for (Class existingClass : existingClassesList){\r
+// if (! foundClasses.contains(existingClass)){\r
+// logger.warn("Class not found: " + existingClass.getCanonicalName());\r
+// }\r
+// }\r
+ \r
+ //All classes must be found\r
+ Assert.assertTrue("all classes must be found by getAllCdmClasses() method", foundClasses.containsAll(existingClassesList));\r
+ \r
+ \r
+ //No extra classes must be found\r
+ for (Class clazz : foundClasses){\r
+ if (! CdmBase.class.isAssignableFrom(clazz)&& !( AuditEvent.class == clazz) ){ //OLD: && !( LSID.class == clazz)&& !( NomenclaturalCode.class == clazz) && !( Point.class == clazz) && !( Modifier.class == clazz) && !( Contact.class == clazz) \r
+ Assert.fail("Class " + clazz.getName() + " is not assignable from CdmBase");\r
+ }\r
+ }\r
+ \r
+ includeAbstractClasses = false;\r
+ Set<Class<? extends CdmBase>> noAbstractClasses = cdmGenericDao.getAllCdmClasses(includeAbstractClasses);\r
+ Class abstractClassToTest = TaxonNameBase.class;\r
+ Assert.assertFalse("Abstract class " + abstractClassToTest.getName() + " may not be in set ", noAbstractClasses.contains(abstractClassToTest));\r
+ }\r
+\r
+ /**\r
+ * Test method for {@link eu.etaxonomy.cdm.persistence.dao.hibernate.common.CdmGenericDaoImpl#getHqlResult(java.lang.String)}.\r
+ */\r
+ @Test\r
+ public void testGetHqlResult() {\r
+ logger.warn("Not yet implemented");\r
+ }\r
+}\r