diff --git a/ginco-admin/pom.xml.releaseBackup b/ginco-admin/pom.xml.releaseBackup
deleted file mode 100644
index 57d6cd465..000000000
--- a/ginco-admin/pom.xml.releaseBackup
+++ /dev/null
@@ -1,278 +0,0 @@
-
- 4.0.0
-
- ginco
- fr.smile.mcc.ginco
- 2.0.6-SNAPSHOT
- ..
-
- ginco-admin
- ginco-admin
- war
-
- ginco-admin
-
-
-
- fr.smile.mcc.ginco
- ginco-api
-
-
- commons-collections
- commons-collections
-
-
- ch.qos.logback
- logback-classic
-
-
- fr.smile.mcc.ginco
- ginco-impl
-
-
- org.springframework
- spring-web
-
-
- org.apache.cxf
- cxf-bundle-jaxrs
-
-
- javax.inject
- javax.inject
-
-
- org.codehaus.jackson
- jackson-jaxrs
-
-
- org.mockito
- mockito-all
-
-
- org.slf4j
- slf4j-api
-
-
- org.slf4j
- jcl-over-slf4j
-
-
- javax.servlet
- servlet-api
-
-
- junit-addons
- junit-addons
- test
-
-
- org.apache.commons
- commons-lang3
-
-
- org.hibernate
- hibernate-envers
-
-
- org.springframework.security
- spring-security-core
-
-
- org.springframework.security
- spring-security-config
-
-
- org.springframework.security
- spring-security-web
-
-
- org.springframework.security
- spring-security-ldap
-
-
- org.owasp
- csrfguard
-
-
-
-
-
- src/main/resources
- true
-
- **/*.properties
- **/*.xml
-
-
-
- src/main/webapp
- true
-
- **/*.jsp
-
-
-
- ${finalName}
-
-
- pl.project13.maven
- git-commit-id-plugin
- 2.1.4
-
-
-
- revision
-
-
-
-
- git
- ${project.basedir}/../.git
- src/main/resources/git.properties
-
- true
-
-
-
-
- org.apache.maven.plugins
- maven-war-plugin
- 2.3
-
-
-
- true
- src/main/webapp
-
- **/*.jsp
-
-
-
-
- *.js,app/**/*.js
-
-
-
- com.googlecode.jslint4java
- jslint4java-maven-plugin
- 2.0.3
-
-
- Ext
- true
- true
- true
- true
-
-
- ${basedir}/src/main/webapp/app/
-
-
-
-
- net.alchim31.maven
- yuicompressor-maven-plugin
- 1.2
-
-
- compressyui
- process-resources
-
- compress
-
-
-
-
-
- **/extjs*/**/*.js
- **/extjs*/**/*.css
- **/WEB-INF/*.js
-
- true
-
-
-
- com.github.github
- site-maven-plugin
-
- Creating github report site ${project.name} - ${project.version}
- ${project.artifactId}
-
-
-
-
-
-
-
- maven-compiler-plugin
- 3.0
-
-
- ${java.version}
-
-
-
- org.codehaus.cargo
- cargo-maven2-plugin
- 1.2.3
-
-
- tomcat6x
- remote
- 60000
-
-
- runtime
-
-
- ${cargo.remote.uri}
- ${cargo.tomcat.manager.login}
- ${cargo.tomcat.manager.password}
-
-
-
-
- ${project.build.directory}/${finalName}.war
- war
-
-
-
-
-
-
-
- org.eclipse.m2e
- lifecycle-mapping
- 1.0.0
-
-
-
-
-
-
- net.alchim31.maven
-
-
- yuicompressor-maven-plugin
-
-
- [1.2,)
-
-
- compress
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/ginco-api/pom.xml.releaseBackup b/ginco-api/pom.xml.releaseBackup
deleted file mode 100644
index a300f1d5d..000000000
--- a/ginco-api/pom.xml.releaseBackup
+++ /dev/null
@@ -1,70 +0,0 @@
-
- 4.0.0
-
- ginco
- fr.smile.mcc.ginco
- 2.0.6-SNAPSHOT
- ..
-
- ginco-api
- jar
- ginco-api
-
- ginco-api
-
-
-
- org.apache.maven.plugins
- maven-javadoc-plugin
-
- org.umlgraph.doclet.UmlGraphDoc
-
- org.umlgraph
- umlgraph
- 5.6
-
- -horizontal -attributes -enumconstants -enumerations -operations -types -visibility -inferrel -inferdep -hide java.* -inferrel -collpackages java.util.*
- public
-
-
-
- org.apache.maven.plugins
- maven-deploy-plugin
-
- ${deploy.plugin.skip}
-
-
-
-
-
-
-
- com.github.github
- site-maven-plugin
-
- Creating github report site ${project.name} - ${project.version}
- ${project.artifactId}
-
-
-
-
-
-
-
- org.codehaus.jackson
- jackson-core-asl
-
-
- org.aspectj
- aspectjrt
-
-
- org.hibernate
- hibernate-envers
-
-
- org.apache.solr
- solr-solrj
-
-
-
diff --git a/ginco-api/src/main/java/fr/mcc/ginco/dao/IAssociativeRelationshipDAO.java b/ginco-api/src/main/java/fr/mcc/ginco/dao/IAssociativeRelationshipDAO.java
index c3e6516bd..987219a64 100644
--- a/ginco-api/src/main/java/fr/mcc/ginco/dao/IAssociativeRelationshipDAO.java
+++ b/ginco-api/src/main/java/fr/mcc/ginco/dao/IAssociativeRelationshipDAO.java
@@ -36,6 +36,7 @@
import fr.mcc.ginco.beans.AssociativeRelationship;
import fr.mcc.ginco.beans.ThesaurusConcept;
+import fr.mcc.ginco.enums.ConceptStatusEnum;
import java.util.List;
@@ -43,6 +44,15 @@
* Data Access Object for thesaurus_concept
*/
public interface IAssociativeRelationshipDAO extends IGenericDAO {
+
+ /**
+ * Gets the list of asssociated concepts
+ * @param concept
+ * @param status
+ * @return
+ */
+ List getAssociatedConcepts(ThesaurusConcept concept, ConceptStatusEnum status);
+
/**
* Gets the list of asssociated concepts
* @param concept
diff --git a/ginco-api/src/main/java/fr/mcc/ginco/dao/IThesaurusConceptDAO.java b/ginco-api/src/main/java/fr/mcc/ginco/dao/IThesaurusConceptDAO.java
index 877948d8e..5818a8f95 100644
--- a/ginco-api/src/main/java/fr/mcc/ginco/dao/IThesaurusConceptDAO.java
+++ b/ginco-api/src/main/java/fr/mcc/ginco/dao/IThesaurusConceptDAO.java
@@ -38,6 +38,7 @@
import fr.mcc.ginco.beans.Thesaurus;
import fr.mcc.ginco.beans.ThesaurusConcept;
+import fr.mcc.ginco.enums.ConceptStatusEnum;
/**
* Data Access Object for thesaurus_concept
@@ -71,7 +72,15 @@ public interface IThesaurusConceptDAO extends IGenericDAO getTopTermThesaurusConcept(Thesaurus thesaurus, int maxResults,String like);
-
+ /**
+ * Gets the list of ThesaurusConcept which are top term given
+ * a thesaurusID
+ * @param thesaurus object Thesaurus
+ * @return
+ */
+ List getTopTermThesaurusConcept(Thesaurus thesaurus, int maxResults,String like, ConceptStatusEnum status);
+
+
/**
* Gets the number of orphan concepts for a given thesaurus
* @param thesaurus
@@ -95,6 +104,14 @@ public interface IThesaurusConceptDAO extends IGenericDAO getRootConcepts(String thesaurusId, Boolean searchOrphans);
+
+
+ /**
+ * Get limited list of paginated children concepts by id of parent Concept.
+ * @param conceptId
+ * @return list of children or all root concepts if conceptId is null.
+ */
+ List getChildrenConcepts(String conceptId, int maxResults,String like, ConceptStatusEnum status);
/**
* Get limited list of paginated children concepts by id of parent Concept.
diff --git a/ginco-commons/src/main/java/fr/mcc/ginco/enums/ConceptHierarchicalRelationsEnum.java b/ginco-api/src/main/java/fr/mcc/ginco/enums/ConceptHierarchicalRelationsEnum.java
similarity index 100%
rename from ginco-commons/src/main/java/fr/mcc/ginco/enums/ConceptHierarchicalRelationsEnum.java
rename to ginco-api/src/main/java/fr/mcc/ginco/enums/ConceptHierarchicalRelationsEnum.java
diff --git a/ginco-commons/src/main/java/fr/mcc/ginco/enums/ConceptHierarchicalRelationshipRoleEnum.java b/ginco-api/src/main/java/fr/mcc/ginco/enums/ConceptHierarchicalRelationshipRoleEnum.java
similarity index 100%
rename from ginco-commons/src/main/java/fr/mcc/ginco/enums/ConceptHierarchicalRelationshipRoleEnum.java
rename to ginco-api/src/main/java/fr/mcc/ginco/enums/ConceptHierarchicalRelationshipRoleEnum.java
diff --git a/ginco-commons/src/main/java/fr/mcc/ginco/enums/ConceptStatusEnum.java b/ginco-api/src/main/java/fr/mcc/ginco/enums/ConceptStatusEnum.java
similarity index 100%
rename from ginco-commons/src/main/java/fr/mcc/ginco/enums/ConceptStatusEnum.java
rename to ginco-api/src/main/java/fr/mcc/ginco/enums/ConceptStatusEnum.java
diff --git a/ginco-commons/src/main/java/fr/mcc/ginco/enums/ReportTypeEnum.java b/ginco-api/src/main/java/fr/mcc/ginco/enums/ReportTypeEnum.java
similarity index 100%
rename from ginco-commons/src/main/java/fr/mcc/ginco/enums/ReportTypeEnum.java
rename to ginco-api/src/main/java/fr/mcc/ginco/enums/ReportTypeEnum.java
diff --git a/ginco-commons/src/main/java/fr/mcc/ginco/enums/TermStatusEnum.java b/ginco-api/src/main/java/fr/mcc/ginco/enums/TermStatusEnum.java
similarity index 100%
rename from ginco-commons/src/main/java/fr/mcc/ginco/enums/TermStatusEnum.java
rename to ginco-api/src/main/java/fr/mcc/ginco/enums/TermStatusEnum.java
diff --git a/ginco-commons/src/main/java/fr/mcc/ginco/enums/ThesaurusVersionStatusEnum.java b/ginco-api/src/main/java/fr/mcc/ginco/enums/ThesaurusVersionStatusEnum.java
similarity index 100%
rename from ginco-commons/src/main/java/fr/mcc/ginco/enums/ThesaurusVersionStatusEnum.java
rename to ginco-api/src/main/java/fr/mcc/ginco/enums/ThesaurusVersionStatusEnum.java
diff --git a/ginco-api/src/main/java/fr/mcc/ginco/services/IAssociativeRelationshipService.java b/ginco-api/src/main/java/fr/mcc/ginco/services/IAssociativeRelationshipService.java
index 0747c564e..0f62fbccc 100644
--- a/ginco-api/src/main/java/fr/mcc/ginco/services/IAssociativeRelationshipService.java
+++ b/ginco-api/src/main/java/fr/mcc/ginco/services/IAssociativeRelationshipService.java
@@ -36,6 +36,7 @@
import fr.mcc.ginco.beans.AssociativeRelationship;
import fr.mcc.ginco.beans.ThesaurusConcept;
+import fr.mcc.ginco.enums.ConceptStatusEnum;
import java.util.List;
@@ -46,6 +47,15 @@
* @see fr.mcc.ginco.beans
*/
public interface IAssociativeRelationshipService {
+
+ /**
+ * Returns list of string of all associated concepts to given concept.
+ *
+ * @param concept
+ * @return
+ */
+ List getAssociatedConceptsId(ThesaurusConcept concept, ConceptStatusEnum status);
+
/**
* Returns list of string of all associated concepts to given concept.
*
diff --git a/ginco-api/src/main/java/fr/mcc/ginco/services/IThesaurusConceptService.java b/ginco-api/src/main/java/fr/mcc/ginco/services/IThesaurusConceptService.java
index cd6024016..97240a49e 100644
--- a/ginco-api/src/main/java/fr/mcc/ginco/services/IThesaurusConceptService.java
+++ b/ginco-api/src/main/java/fr/mcc/ginco/services/IThesaurusConceptService.java
@@ -42,6 +42,7 @@
import fr.mcc.ginco.beans.ConceptHierarchicalRelationship;
import fr.mcc.ginco.beans.ThesaurusConcept;
import fr.mcc.ginco.beans.ThesaurusTerm;
+import fr.mcc.ginco.enums.ConceptStatusEnum;
/**
* Service used to work with {@link ThesaurusConcept} objects, contains basic
@@ -137,6 +138,14 @@ ThesaurusConcept updateThesaurusConcept(ThesaurusConcept object,
* @return
*/
List getTopTermThesaurusConcepts(String thesaurusId);
+
+ /**
+ * Get the ThesaurusConcepts which are top term in a given thesaurus
+ *
+ * @param thesaurusId
+ * @return
+ */
+ List getTopTermThesaurusConcepts(String thesaurusId, ConceptStatusEnum status, int maxResults);
/**
* Get the ThesaurusConcepts which are top term in a given thesaurus
@@ -178,6 +187,14 @@ ThesaurusConcept updateThesaurusConcept(ThesaurusConcept object,
* @return list of objects.
*/
List getChildrenByConceptId(String conceptId, int maxResults,String like);
+
+ /**
+ * Search children of concept with given id (orphan or not).
+ *
+ * @param conceptId id of concept.
+ * @return list of objects.
+ */
+ List getChildrenByConceptId(String conceptId, int maxResults,String like, ConceptStatusEnum status);
/**
diff --git a/ginco-impl/pom.xml.releaseBackup b/ginco-impl/pom.xml.releaseBackup
deleted file mode 100644
index a9f8bd9d8..000000000
--- a/ginco-impl/pom.xml.releaseBackup
+++ /dev/null
@@ -1,182 +0,0 @@
-
- 4.0.0
-
- ginco
- fr.smile.mcc.ginco
- 2.0.6-SNAPSHOT
- ..
-
- ginco-impl
- jar
- ginco-impl
-
-
-
- src/main/resources/services
- META-INF/services
-
-
- src/main/resources
-
- service
-
-
-
- ginco-impl
-
-
-
- org.apache.maven.plugins
- maven-antrun-plugin
- 1.7
-
-
-
-
-
-
-
-
-
- org.apache.ant
- ant-jsch
- 1.8.4
-
-
-
-
- org.apache.maven.plugins
- maven-deploy-plugin
-
- ${deploy.plugin.skip}
-
-
-
-
- com.github.github
- site-maven-plugin
-
- Creating github report site ${project.name} - ${project.version}
- ${project.artifactId}
-
-
-
-
-
-
-
-
- fr.smile.mcc.ginco
- ginco-api
-
-
- fr.smile.mcc.ginco
- ginco-commons
-
-
- org.springframework
- spring-context
-
-
- org.springframework
- spring-aop
-
-
- javax.inject
- javax.inject
-
-
- org.springframework
- spring-test
-
-
- org.springframework
- spring-orm
-
-
- org.springframework.security
- spring-security-core
-
-
- org.apache.cxf
- cxf-common-utilities
-
-
- org.springframework
- spring-web
-
-
- org.hibernate
- hibernate-core
-
-
- junit
- junit
-
-
- org.dbunit
- dbunit
-
-
- hsqldb
- hsqldb
-
-
- org.apache.tomcat
- dbcp
-
-
- com.h2database
- h2
-
-
- org.slf4j
- slf4j-api
-
-
- org.slf4j
- jcl-over-slf4j
-
-
- postgresql
- postgresql
-
-
- org.aspectj
- aspectjrt
-
-
- org.aspectj
- aspectjweaver
-
-
- org.mockito
- mockito-all
-
-
- junit-addons
- junit-addons
-
-
- org.apache.commons
- commons-lang3
-
-
- commons-collections
- commons-collections
-
-
- javax.servlet
- servlet-api
-
-
- org.apache.jena
- apache-jena-libs
- pom
-
-
- org.apache.solr
- solr-solrj
-
-
-
\ No newline at end of file
diff --git a/ginco-impl/src/main/java/fr/mcc/ginco/dao/hibernate/AssociativeRelationshipDAO.java b/ginco-impl/src/main/java/fr/mcc/ginco/dao/hibernate/AssociativeRelationshipDAO.java
index 469390326..9538002da 100644
--- a/ginco-impl/src/main/java/fr/mcc/ginco/dao/hibernate/AssociativeRelationshipDAO.java
+++ b/ginco-impl/src/main/java/fr/mcc/ginco/dao/hibernate/AssociativeRelationshipDAO.java
@@ -37,6 +37,8 @@
import fr.mcc.ginco.beans.AssociativeRelationship;
import fr.mcc.ginco.beans.ThesaurusConcept;
import fr.mcc.ginco.dao.IAssociativeRelationshipDAO;
+import fr.mcc.ginco.enums.ConceptStatusEnum;
+
import org.hibernate.Criteria;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Projections;
@@ -60,8 +62,7 @@ public AssociativeRelationshipDAO() {
}
@Override
- public List getAssociatedConcepts(ThesaurusConcept concept) {
-
+ public List getAssociatedConcepts(ThesaurusConcept concept, ConceptStatusEnum status) {
DetachedCriteria d1 = DetachedCriteria.forClass(AssociativeRelationship.class, "ar1");
d1.setProjection(Projections.projectionList().add(Projections.property("ar1.identifier.concept2")));
d1.add(Restrictions.eq("identifier.concept1", concept.getIdentifier()));
@@ -75,9 +76,18 @@ public List getAssociatedConcepts(ThesaurusConcept concept) {
Subqueries.propertyIn("tc.identifier", d1),
Subqueries.propertyIn("tc.identifier", d2)))
.setProjection(Projections.property("tc.identifier"));
+ if (status!=null) {
+ criteria.add(Restrictions.eq("tc.status",
+ status.getStatus()));
+ }
return criteria.list();
}
+
+ @Override
+ public List getAssociatedConcepts(ThesaurusConcept concept) {
+ return getAssociatedConcepts(concept, null);
+ }
@Override
diff --git a/ginco-impl/src/main/java/fr/mcc/ginco/dao/hibernate/ThesaurusConceptDAO.java b/ginco-impl/src/main/java/fr/mcc/ginco/dao/hibernate/ThesaurusConceptDAO.java
index 38459f2b4..d90ccfb20 100644
--- a/ginco-impl/src/main/java/fr/mcc/ginco/dao/hibernate/ThesaurusConceptDAO.java
+++ b/ginco-impl/src/main/java/fr/mcc/ginco/dao/hibernate/ThesaurusConceptDAO.java
@@ -57,7 +57,6 @@
import fr.mcc.ginco.dao.IThesaurusConceptDAO;
import fr.mcc.ginco.enums.ConceptStatusEnum;
import fr.mcc.ginco.exceptions.BusinessException;
-import fr.mcc.ginco.services.IThesaurusConceptService;
/**
* Implementation of the data access object to the thesaurus_term database table
@@ -86,7 +85,7 @@ public ThesaurusConceptDAO() {
@Override
public List getOrphansThesaurusConcept(
Thesaurus thesaurus, int maxResults) {
- return getListByThesaurusAndTopConcept(thesaurus, false, maxResults,null);
+ return getListByThesaurusAndTopConcept(thesaurus, false, maxResults,null,null);
}
/*
@@ -110,7 +109,14 @@ public long getOrphansThesaurusConceptCount(Thesaurus thesaurus) {
@Override
public List getTopTermThesaurusConcept(
Thesaurus thesaurus, int maxResults,String like) {
- return getListByThesaurusAndTopConcept(thesaurus, true, maxResults,like);
+ return getTopTermThesaurusConcept(thesaurus, maxResults, like, null);
+ }
+
+ @Override
+ public List getTopTermThesaurusConcept(Thesaurus thesaurus, int maxResults, String like,
+ ConceptStatusEnum status) {
+ // TODO Auto-generated method stub
+ return getListByThesaurusAndTopConcept(thesaurus, true, maxResults,like, status);
}
/*
@@ -128,7 +134,7 @@ public long getTopTermThesaurusConceptCount(Thesaurus thesaurus) {
@Override
public List getRootConcepts(String thesaurusId,
Boolean searchOrphans) {
- return getConcepts(null, thesaurusId, searchOrphans, 0,null);
+ return getConcepts(null, thesaurusId, searchOrphans, 0,null,null);
}
@Override
@@ -142,13 +148,18 @@ public List getIdentifiersOfConceptsWithChildren(String thesaurusId) {
return (List) query.list();
}
+ @Override
+ public List getChildrenConcepts(String conceptId, int maxResults,String like, ConceptStatusEnum status) {
+ return getConcepts(conceptId, null, null, maxResults,like, status);
+ }
+
@Override
public List getChildrenConcepts(String conceptId, int maxResults,String like) {
- return getConcepts(conceptId, null, null, maxResults,like);
+ return getConcepts(conceptId, null, null, maxResults,like, null);
}
private List getConcepts(String conceptId, String thesaurusId,
- Boolean searchOrphans, int maxResults,String like) {
+ Boolean searchOrphans, int maxResults,String like, ConceptStatusEnum status) {
Criteria criteria = getCurrentSession().createCriteria(ThesaurusConcept.class, "tc");
@@ -179,6 +190,7 @@ private List getConcepts(String conceptId, String thesaurusId,
}
selectOrphans(criteria, searchOrphans);
+ selectStatus(criteria, status);
if (maxResults > 0)
criteria.setMaxResults(maxResults);
return criteria.list();
@@ -357,8 +369,14 @@ private void onlyValidatedConcepts(Criteria criteria,
}
if (onlyValidatedConcepts) {
+ selectStatus(criteria , ConceptStatusEnum.VALIDATED);
+ }
+ }
+
+ private void selectStatus (Criteria criteria, ConceptStatusEnum status) {
+ if (status != null) {
criteria.add(Restrictions.eq("status",
- ConceptStatusEnum.VALIDATED.getStatus()));
+ status.getStatus()));
}
}
@@ -382,13 +400,13 @@ private void matchLanguage(Criteria criteria,String thesaurusId) {
}
private List getListByThesaurusAndTopConcept(
- Thesaurus thesaurus, boolean topConcept, int maxResults,String like) {
+ Thesaurus thesaurus, boolean topConcept, int maxResults,String like, ConceptStatusEnum status) {
if (thesaurus == null) {
throw new BusinessException("Object thesaurus can't be null !",
"empty-thesaurus");
}
- Criteria crit = getCriteriaByThesaurusAndTopConcept(thesaurus,topConcept,like);
+ Criteria crit = getCriteriaByThesaurusAndTopConcept(thesaurus,topConcept,like, status);
if (maxResults > 0) {
crit.setMaxResults(maxResults);
}
@@ -403,12 +421,12 @@ private long getListByThesaurusAndTopConceptCount(Thesaurus thesaurus,
"empty-thesaurus");
}
Criteria crit = getCriteriaByThesaurusAndTopConcept(thesaurus,
- topConcept,null).setProjection(Projections.rowCount());
+ topConcept,null,null).setProjection(Projections.rowCount());
return (Long) crit.list().get(0);
}
private Criteria getCriteriaByThesaurusAndTopConcept(Thesaurus thesaurus,
- boolean topConcept,String like) {
+ boolean topConcept,String like, ConceptStatusEnum status) {
Criteria criteria = getCurrentSession().createCriteria(ThesaurusConcept.class, "tc");
if(null != like){
@@ -429,6 +447,7 @@ private Criteria getCriteriaByThesaurusAndTopConcept(Thesaurus thesaurus,
selectThesaurus(criteria, thesaurus.getIdentifier());
selectOrphans(criteria, !topConcept);
selectNoParents(criteria);
+ selectStatus(criteria, status);
return criteria;
}
@@ -569,4 +588,6 @@ public List getConceptsAlignedToMyThes(String idThesaurus, int
return (List) criteria.list();
}
+
+
}
\ No newline at end of file
diff --git a/ginco-impl/src/main/java/fr/mcc/ginco/exports/skos/SKOSConceptExporter.java b/ginco-impl/src/main/java/fr/mcc/ginco/exports/skos/SKOSConceptExporter.java
index 3ed0e9e01..fbb1535e3 100644
--- a/ginco-impl/src/main/java/fr/mcc/ginco/exports/skos/SKOSConceptExporter.java
+++ b/ginco-impl/src/main/java/fr/mcc/ginco/exports/skos/SKOSConceptExporter.java
@@ -40,6 +40,9 @@
import javax.inject.Named;
import org.apache.commons.lang3.StringEscapeUtils;
+import org.apache.jena.atlas.logging.Log;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import com.hp.hpl.jena.ontology.DatatypeProperty;
@@ -49,6 +52,7 @@
import com.hp.hpl.jena.rdf.model.Resource;
import com.hp.hpl.jena.vocabulary.DCTerms;
+import fr.mcc.ginco.audit.tracking.GincoRevListener;
import fr.mcc.ginco.beans.ThesaurusConcept;
import fr.mcc.ginco.beans.ThesaurusTerm;
import fr.mcc.ginco.services.IThesaurusConceptService;
@@ -62,6 +66,8 @@
*/
@Component("skosConceptExporter")
public class SKOSConceptExporter {
+
+ private Logger logger = LoggerFactory.getLogger(SKOSConceptExporter.class);
@Inject
@Named("thesaurusConceptService")
@@ -103,6 +109,36 @@ public class SKOSConceptExporter {
*/
public Model exportConceptSKOS(ThesaurusConcept concept,
ThesaurusConcept parent, Model model, OntModel ontModel) {
+
+ exportConceptSKOSWoRelations(concept, parent, model, ontModel);
+ exportConceptSKOSRelations(concept, parent, model, ontModel);
+
+
+ return model;
+ }
+
+ private void exportConceptSKOSRelations(ThesaurusConcept concept,
+ ThesaurusConcept parent, Model model, OntModel ontModel) {
+ skosAssociativeRelationshipExporter.exportAssociativeRelationships(
+ concept, model);
+
+ skosHierarchicalRelationshipExporter.exportHierarchicalRelationships(
+ model, parent, concept);
+
+ skosAlignmentExporter.exportAlignments(concept.getIdentifier(), model);
+ if (thesaurusConceptService.hasChildren(concept.getIdentifier())) {
+ for (ThesaurusConcept child : thesaurusConceptService
+ .getChildrenByConceptId(concept.getIdentifier(),null)) {
+
+ exportConceptSKOSRelations(child, concept, model, ontModel);
+
+ }
+ }
+ }
+
+ private void exportConceptSKOSWoRelations(ThesaurusConcept concept,
+ ThesaurusConcept parent, Model model, OntModel ontModel) {
+ logger.info("Exporting concept WoRelations: "+concept.getIdentifier());
Resource conceptResource = model.createResource(
concept.getIdentifier(), SKOS.CONCEPT);
@@ -120,27 +156,20 @@ public Model exportConceptSKOS(ThesaurusConcept concept,
skosNotesExporter.exportNotes(model, prefTerms, concept);
- skosAssociativeRelationshipExporter.exportAssociativeRelationships(
- concept, model);
+
+
+ skosCustomConceptAttributeExporter.exportCustomConceptAttributes(
+ concept, model, conceptResource, ontModel);
if (thesaurusConceptService.hasChildren(concept.getIdentifier())) {
for (ThesaurusConcept child : thesaurusConceptService
.getChildrenByConceptId(concept.getIdentifier(),null)) {
- exportConceptSKOS(child, concept, model, ontModel);
+ exportConceptSKOSWoRelations(child, concept, model, ontModel);
}
}
- skosHierarchicalRelationshipExporter.exportHierarchicalRelationships(
- model, parent, concept);
-
- skosAlignmentExporter.exportAlignments(concept.getIdentifier(), model);
-
- skosCustomConceptAttributeExporter.exportCustomConceptAttributes(
- concept, model, conceptResource, ontModel);
-
- return model;
}
/**
diff --git a/ginco-impl/src/main/java/fr/mcc/ginco/exports/skos/SKOSHierarchicalRelationshipExporter.java b/ginco-impl/src/main/java/fr/mcc/ginco/exports/skos/SKOSHierarchicalRelationshipExporter.java
index 667d59df1..97b1034f5 100644
--- a/ginco-impl/src/main/java/fr/mcc/ginco/exports/skos/SKOSHierarchicalRelationshipExporter.java
+++ b/ginco-impl/src/main/java/fr/mcc/ginco/exports/skos/SKOSHierarchicalRelationshipExporter.java
@@ -37,6 +37,8 @@
import javax.inject.Inject;
import javax.inject.Named;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import com.hp.hpl.jena.rdf.model.Model;
@@ -57,7 +59,9 @@
*/
@Component("skosHierarchicalRelationshipExporter")
public class SKOSHierarchicalRelationshipExporter {
-
+
+ private Logger logger = LoggerFactory.getLogger(SKOSHierarchicalRelationshipExporter.class);
+
@Inject
@Named("conceptHierarchicalRelationshipService")
private IConceptHierarchicalRelationshipService conceptHierarchicalRelationshipService;
@@ -65,7 +69,6 @@ public class SKOSHierarchicalRelationshipExporter {
public Model exportHierarchicalRelationships(Model model,
ThesaurusConcept parentConcept, ThesaurusConcept childConcept) {
Resource childRes = model.createResource(childConcept.getIdentifier());
-
if (parentConcept != null) {
Resource parentRes = model.createResource(parentConcept
.getIdentifier());
@@ -93,9 +96,10 @@ public Model exportHierarchicalRelationships(Model model,
return model;
}
- private Model buildHierarchicalRelationship(Model defaultModel,
+ private void buildHierarchicalRelationship(Model defaultModel,
Resource sourceConcept, Resource relatedConcept,
Property skosRelation, String skosLabel) {
+ logger.info("Relation "+skosRelation.toString()+" "+relatedConcept.getURI()+" "+sourceConcept.getURI());
defaultModel.add(sourceConcept, skosRelation, relatedConcept);
if (!skosLabel.isEmpty()) {
Property gincoRelProperty = defaultModel.createProperty(GINCO
@@ -104,6 +108,5 @@ private Model buildHierarchicalRelationship(Model defaultModel,
defaultModel.add(sourceConcept, gincoRelProperty, relatedConcept);
}
- return defaultModel;
}
}
\ No newline at end of file
diff --git a/ginco-impl/src/main/java/fr/mcc/ginco/services/AssociativeRelationshipServiceImpl.java b/ginco-impl/src/main/java/fr/mcc/ginco/services/AssociativeRelationshipServiceImpl.java
index 7e5c561f5..d85082ab2 100644
--- a/ginco-impl/src/main/java/fr/mcc/ginco/services/AssociativeRelationshipServiceImpl.java
+++ b/ginco-impl/src/main/java/fr/mcc/ginco/services/AssociativeRelationshipServiceImpl.java
@@ -37,6 +37,7 @@
import fr.mcc.ginco.beans.AssociativeRelationship;
import fr.mcc.ginco.beans.ThesaurusConcept;
import fr.mcc.ginco.dao.IAssociativeRelationshipDAO;
+import fr.mcc.ginco.enums.ConceptStatusEnum;
import fr.mcc.ginco.exceptions.BusinessException;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -55,6 +56,11 @@ public class AssociativeRelationshipServiceImpl implements IAssociativeRelations
public AssociativeRelationship getAssociativeRelationshipById(String id1, String id2) {
return associativeRelationshipDAO.getAssociativeRelationship(id1, id2);
}
+
+ @Override
+ public List getAssociatedConceptsId(ThesaurusConcept concept, ConceptStatusEnum status) {
+ return associativeRelationshipDAO.getAssociatedConcepts(concept, status);
+ }
@Override
public List getAssociatedConceptsId(ThesaurusConcept concept) {
diff --git a/ginco-impl/src/main/java/fr/mcc/ginco/services/ThesaurusConceptServiceImpl.java b/ginco-impl/src/main/java/fr/mcc/ginco/services/ThesaurusConceptServiceImpl.java
index 370f8701f..74fc87ffc 100644
--- a/ginco-impl/src/main/java/fr/mcc/ginco/services/ThesaurusConceptServiceImpl.java
+++ b/ginco-impl/src/main/java/fr/mcc/ginco/services/ThesaurusConceptServiceImpl.java
@@ -202,14 +202,19 @@ public long getOrphanThesaurusConceptsCount(String thesaurusId) {
*/
@Override
public List getTopTermThesaurusConcepts(String thesaurusId, int maxResults) {
- Thesaurus thesaurus = checkThesaurusId(thesaurusId);
- return thesaurusConceptDAO.getTopTermThesaurusConcept(thesaurus, maxResults,null);
+ return getTopTermThesaurusConcepts(thesaurusId, null, maxResults);
}
@Override
public List getTopTermThesaurusConcepts(String thesaurusId) {
return getTopTermThesaurusConcepts(thesaurusId, 0);
}
+
+ @Override
+ public List getTopTermThesaurusConcepts(String thesaurusId, ConceptStatusEnum status, int maxResults) {
+ Thesaurus thesaurus = checkThesaurusId(thesaurusId);
+ return thesaurusConceptDAO.getTopTermThesaurusConcept(thesaurus, maxResults,null, status);
+ }
@Override
public long getTopTermThesaurusConceptsCount(String thesaurusId) {
@@ -217,9 +222,14 @@ public long getTopTermThesaurusConceptsCount(String thesaurusId) {
return thesaurusConceptDAO.getTopTermThesaurusConceptCount(thesaurus);
}
+ @Override
+ public List getChildrenByConceptId(String conceptId, int maxResults,String like, ConceptStatusEnum status) {
+ return thesaurusConceptDAO.getChildrenConcepts(conceptId, maxResults,like,status);
+ }
+
@Override
public List getChildrenByConceptId(String conceptId, int maxResults,String like) {
- return thesaurusConceptDAO.getChildrenConcepts(conceptId, maxResults,like);
+ return getChildrenByConceptId(conceptId, maxResults,like,null);
}
@Override
@@ -742,4 +752,6 @@ private List getRecursiveParentByConceptId(
}
return arrayOfParent;
}
+
+
}
diff --git a/ginco-impl/src/test/java/fr/mcc/ginco/tests/daos/AssociativeRelationshipDAOTest.java b/ginco-impl/src/test/java/fr/mcc/ginco/tests/daos/AssociativeRelationshipDAOTest.java
index ade1caaef..c6b6b8bd9 100644
--- a/ginco-impl/src/test/java/fr/mcc/ginco/tests/daos/AssociativeRelationshipDAOTest.java
+++ b/ginco-impl/src/test/java/fr/mcc/ginco/tests/daos/AssociativeRelationshipDAOTest.java
@@ -45,6 +45,7 @@
import fr.mcc.ginco.beans.AssociativeRelationship;
import fr.mcc.ginco.beans.ThesaurusConcept;
import fr.mcc.ginco.dao.hibernate.AssociativeRelationshipDAO;
+import fr.mcc.ginco.enums.ConceptStatusEnum;
import fr.mcc.ginco.tests.BaseDAOTest;
public class AssociativeRelationshipDAOTest extends BaseDAOTest {
@@ -68,6 +69,15 @@ public void testGetDefaultAssociativeRelationshipRole() {
ListAssert.assertContains(associatedConcepts, "http://www.culturecommunication.gouv.fr/co6");
}
+
+ @Test
+ public void testGetDefaultAssociativeRelationshipRoleStatus() {
+ ThesaurusConcept concept1 = new ThesaurusConcept();
+ concept1.setIdentifier("http://www.culturecommunication.gouv.fr/co1");
+ List associatedConcepts = associativeRelationshipDAO.getAssociatedConcepts(concept1, ConceptStatusEnum.DEPRECATED);
+ Assert.assertEquals(1, associatedConcepts.size());
+ ListAssert.assertContains(associatedConcepts, "http://www.culturecommunication.gouv.fr/co2");
+ }
@Test
public void testGetRelationshipRole() {
diff --git a/ginco-impl/src/test/resources/dao/associativerelationship_init.xml b/ginco-impl/src/test/resources/dao/associativerelationship_init.xml
index d686ef5d6..e9efcc1f8 100644
--- a/ginco-impl/src/test/resources/dao/associativerelationship_init.xml
+++ b/ginco-impl/src/test/resources/dao/associativerelationship_init.xml
@@ -29,7 +29,7 @@
http://www.culturecommunication.gouv.fr/co2
2013-02-04 15:29:59.66325
2013-02-04 15:29:59.66325
- 0
+ 3
test
true
http://www.culturecommunication.gouv.fr/th1
diff --git a/ginco-webservices/src/main/java/fr/mcc/ginco/soap/ISOAPThesaurusConceptService.java b/ginco-webservices/src/main/java/fr/mcc/ginco/soap/ISOAPThesaurusConceptService.java
index 7145a6f50..60d58ddea 100644
--- a/ginco-webservices/src/main/java/fr/mcc/ginco/soap/ISOAPThesaurusConceptService.java
+++ b/ginco-webservices/src/main/java/fr/mcc/ginco/soap/ISOAPThesaurusConceptService.java
@@ -40,6 +40,7 @@
import javax.jws.WebService;
import fr.mcc.ginco.data.ReducedThesaurusTerm;
+import fr.mcc.ginco.enums.ConceptStatusEnum;
/**
* This class exposes all SOAP services related to concept objects
@@ -92,15 +93,15 @@ int getConceptsHierarchicalRelations(@WebParam(name = "firstConceptId") String f
* @param conceptId identifier of a concept
* @return list of objects
*/
- List getChildrenByConceptId(@WebParam(name = "conceptId") String conceptId);
-
+ List getChildrenByConceptId(@WebParam(name = "conceptId") String conceptId, @WebParam(name="status") ConceptStatusEnum status);
+
/**
* Returns root concepts for given concept
*
* @param conceptId identifier of a concept
* @return list of root concepts
*/
- List getRootConcepts(@WebParam(name = "conceptId") String conceptId);
+ List getRootConcepts(@WebParam(name = "conceptId") String conceptId, @WebParam(name="status") ConceptStatusEnum status);
/**
* Returns parent concepts for given concept
@@ -108,7 +109,7 @@ int getConceptsHierarchicalRelations(@WebParam(name = "firstConceptId") String f
* @param conceptId identifier of a concept
* @return list of parent concepts
*/
- List getParentConcepts(@WebParam(name = "conceptId") String conceptId);
+ List getParentConcepts(@WebParam(name = "conceptId") String conceptId, @WebParam(name="status") ConceptStatusEnum status);
/**
* Returns associative concepts for given concept
@@ -116,14 +117,16 @@ int getConceptsHierarchicalRelations(@WebParam(name = "firstConceptId") String f
* @param conceptId identifier of a concept
* @return list of associative concepts
*/
- List getAssociativeConcepts(@WebParam(name = "conceptId") String conceptId);
+ List getAssociativeConcepts(@WebParam(name = "conceptId") String conceptId, @WebParam(name="status") ConceptStatusEnum status);
+
/**
* Returns top concepts for a thesaurus
*
* @param thesaurusId identifier of a thesaurus
+ * @param status of concepts
* @return list of top concepts
*/
- List getTopConceptsByThesaurusId(@WebParam(name = "thesaurusId") String thesaurusId);
+ List getTopConceptsByThesaurusId(@WebParam(name = "thesaurusId") String thesaurusId, @WebParam(name="status") ConceptStatusEnum status);
}
diff --git a/ginco-webservices/src/main/java/fr/mcc/ginco/soap/SOAPThesaurusConceptServiceImpl.java b/ginco-webservices/src/main/java/fr/mcc/ginco/soap/SOAPThesaurusConceptServiceImpl.java
index 68d26059a..a9f3a04af 100644
--- a/ginco-webservices/src/main/java/fr/mcc/ginco/soap/SOAPThesaurusConceptServiceImpl.java
+++ b/ginco-webservices/src/main/java/fr/mcc/ginco/soap/SOAPThesaurusConceptServiceImpl.java
@@ -39,6 +39,7 @@
import fr.mcc.ginco.beans.ThesaurusConcept;
import fr.mcc.ginco.beans.ThesaurusTerm;
import fr.mcc.ginco.data.ReducedThesaurusTerm;
+import fr.mcc.ginco.enums.ConceptStatusEnum;
import fr.mcc.ginco.exceptions.BusinessException;
import fr.mcc.ginco.services.IAssociativeRelationshipService;
import fr.mcc.ginco.services.IConceptHierarchicalRelationshipServiceUtil;
@@ -134,12 +135,12 @@ public int getStatusByConceptId(String conceptId) {
}
@Override
- public List getChildrenByConceptId(String conceptId) {
+ public List getChildrenByConceptId(String conceptId, ConceptStatusEnum status) {
if (StringUtils.isNotEmpty(conceptId)) {
List results = new ArrayList();
ThesaurusConcept thesaurusConcept = thesaurusConceptService.getThesaurusConceptById(conceptId);
if (thesaurusConcept != null) {
- List thesaurusConceptList = thesaurusConceptService.getChildrenByConceptId(conceptId,null);
+ List thesaurusConceptList = thesaurusConceptService.getChildrenByConceptId(conceptId,0 ,null, status);
for (ThesaurusConcept conceptChild : thesaurusConceptList) {
results.add(conceptChild.getIdentifier());
}
@@ -153,13 +154,18 @@ public List getChildrenByConceptId(String conceptId) {
}
@Override
- public List getRootConcepts(String conceptId) {
+ public List getRootConcepts(String conceptId, ConceptStatusEnum status) {
if (StringUtils.isNotEmpty(conceptId)) {
ThesaurusConcept thesaurusConcept = thesaurusConceptService.getThesaurusConceptById(conceptId);
if (thesaurusConcept != null) {
List results = new ArrayList();
List thesaurusConceptList = conceptHierarchicalRelationshipServiceUtil.getRootConcepts(thesaurusConcept);
for (ThesaurusConcept conceptChild : thesaurusConceptList) {
+ if (status != null) {
+ if (conceptChild.getStatus().intValue()==status.getStatus()) {
+ results.add(conceptChild.getIdentifier());
+ }
+ } else
results.add(conceptChild.getIdentifier());
}
return results;
@@ -172,13 +178,19 @@ public List getRootConcepts(String conceptId) {
}
@Override
- public List getParentConcepts(String conceptId) {
+ public List getParentConcepts(String conceptId, ConceptStatusEnum status) {
if (StringUtils.isNotEmpty(conceptId)) {
ThesaurusConcept thesaurusConcept = thesaurusConceptService.getThesaurusConceptById(conceptId);
if (thesaurusConcept != null) {
List results = new ArrayList();
Set parentConceptList = thesaurusConcept.getParentConcepts();
for (ThesaurusConcept parentConcept : parentConceptList) {
+ if (status != null)
+ {
+ if (parentConcept.getStatus().intValue()==status.getStatus()) {
+ results.add(parentConcept.getIdentifier());
+ }
+ } else
results.add(parentConcept.getIdentifier());
}
return results;
@@ -191,11 +203,11 @@ public List getParentConcepts(String conceptId) {
}
@Override
- public List getAssociativeConcepts(String conceptId) {
+ public List getAssociativeConcepts(String conceptId, ConceptStatusEnum status) {
if (StringUtils.isNotEmpty(conceptId)) {
ThesaurusConcept thesaurusConcept = thesaurusConceptService.getThesaurusConceptById(conceptId);
if (thesaurusConcept != null) {
- return associativeRelationshipService.getAssociatedConceptsId(thesaurusConcept);
+ return associativeRelationshipService.getAssociatedConceptsId(thesaurusConcept, status);
} else {
throw new BusinessException("Concept with identifier " + conceptId + " does not exist", "concept-does-not-exist");
}
@@ -204,12 +216,13 @@ public List getAssociativeConcepts(String conceptId) {
}
}
- public List getTopConceptsByThesaurusId(String thesaurusId) {
+ @Override
+ public List getTopConceptsByThesaurusId(String thesaurusId, ConceptStatusEnum status) {
if (StringUtils.isNotEmpty(thesaurusId)) {
Thesaurus thesaurus = thesaurusService.getThesaurusById(thesaurusId);
if (thesaurus != null) {
List results = new ArrayList();
- List topConceptList = thesaurusConceptService.getTopTermThesaurusConcepts(thesaurusId);
+ List topConceptList = thesaurusConceptService.getTopTermThesaurusConcepts(thesaurusId, status, 0);
for (ThesaurusConcept topConcept : topConceptList) {
results.add(topConcept.getIdentifier());
}