diff --git a/src/main/java/cz/cvut/kbss/analysis/dao/FaultTreeDao.java b/src/main/java/cz/cvut/kbss/analysis/dao/FaultTreeDao.java index 1b58314..0faa244 100755 --- a/src/main/java/cz/cvut/kbss/analysis/dao/FaultTreeDao.java +++ b/src/main/java/cz/cvut/kbss/analysis/dao/FaultTreeDao.java @@ -21,6 +21,8 @@ @Repository public class FaultTreeDao extends ManagedEntityDao { + public static final URI STATUS_PROP = URI.create(Vocabulary.s_p_status); + @Autowired protected FaultTreeDao(EntityManager em, PersistenceConf config, IdentifierService identifierService, SecurityUtils securityUtils) { super(FaultTree.class, em, config, identifierService, securityUtils); @@ -168,4 +170,8 @@ public Query getSummariesQuery() { .setParameter("pCreator", P_CREATOR) .setParameter("pLastEditor", P_LAST_EDITOR); } + + public void updateStatus(URI faultTree, Status status){ + super.addOrReplaceValue(faultTree, STATUS_PROP, status, faultTree); + } } diff --git a/src/main/java/cz/cvut/kbss/analysis/dao/ManagedEntityDao.java b/src/main/java/cz/cvut/kbss/analysis/dao/ManagedEntityDao.java index 5220f14..fca2658 100644 --- a/src/main/java/cz/cvut/kbss/analysis/dao/ManagedEntityDao.java +++ b/src/main/java/cz/cvut/kbss/analysis/dao/ManagedEntityDao.java @@ -11,6 +11,7 @@ import cz.cvut.kbss.jopa.model.descriptors.EntityDescriptor; import cz.cvut.kbss.jopa.model.metamodel.Attribute; import cz.cvut.kbss.jopa.model.metamodel.EntityType; +import cz.cvut.kbss.jopa.model.query.Query; import cz.cvut.kbss.jopa.vocabulary.DC; import java.net.URI; @@ -75,8 +76,30 @@ public void setChangedByContext(URI context, Date date){ public List findAllSummaries(){ try { - List ret = em.createNativeQuery(""" + List ret = getSummariesQuery() + .getResultList(); + + return ret.stream().map(s -> s.asEntity(type)).toList(); + } catch (RuntimeException e) { + throw new PersistenceException(e); + } + } + + public T findSummary(URI managedEntityUri){ + try { + ManagedEntity ret = (ManagedEntity)getSummariesQuery() + .setParameter("_uri", managedEntityUri) + .getSingleResult(); + return ret.asEntity(type); + } catch (RuntimeException e) { + throw new PersistenceException(e); + } + } + + public Query getSummariesQuery(){ + return em.createNativeQuery(""" SELECT * WHERE { + BIND(?_uri as ?uri) ?uri a ?type. ?uri ?pName ?name. OPTIONAL{?uri ?pDescription ?description.} @@ -85,21 +108,13 @@ public List findAllSummaries(){ OPTIONAL{?uri ?pCreator ?creator.} OPTIONAL{?uri ?pLastEditor ?lastEditor.} }""", "ManagedEntitySummary") - .setParameter("type", typeUri) - .setParameter("pName", P_HAS_NAME) - .setParameter("pDescription", P_HAS_DESCRIPTION) - .setParameter("pCreated", P_CREATED) - .setParameter("pModified", P_MODIFIED) - .setParameter("pCreator", P_CREATOR) - .setParameter("pLastEditor", P_LAST_EDITOR) - .getResultList(); - - return ret.stream().map(s -> s.asEntity(type)).toList(); - } catch (RuntimeException e) { - throw new PersistenceException(e); - } + .setParameter("type", typeUri) + .setParameter("pName", P_HAS_NAME) + .setParameter("pDescription", P_HAS_DESCRIPTION) + .setParameter("pCreated", P_CREATED) + .setParameter("pModified", P_MODIFIED) + .setParameter("pCreator", P_CREATOR) + .setParameter("pLastEditor", P_LAST_EDITOR); } - - }