public VDC find(Object pk) { VDC vdc = (VDC) em.find(VDC.class, pk); VDCCollection rootCollection = vdc.getRootCollection(); rootCollection.getId(); Collection<VDCCollection> subcollections = rootCollection.getSubCollections(); traverseCollections(subcollections); return vdc; }
public Map getVdcTemplatesMap(Long vdcId) { VDC vdc = em.find(VDC.class, vdcId); Map templatesMap = new LinkedHashMap(); Template defaultNetworkTemplate = vdcNetworkService.find().getDefaultTemplate(); templatesMap.put(defaultNetworkTemplate.getName(), defaultNetworkTemplate.getId()); Collection<Template> vdcTemplates = vdc.getTemplates(); if (vdcTemplates != null) { for (Template template : vdcTemplates) { templatesMap.put(template.getName(), template.getId()); } } return templatesMap; }
/* updateScholarDVs * * This is not currently used. It was * developed for 16a, but there is an * issue with casting and the java * persistence layer. * Leaving it here as a placeholder. * * * @author wbossons */ public VDC updateScholarDVs(VDC scholarDV) { // String updateString = "update vdc set firstname = '" + scholarDV.getFirstName() + "', lastname='" + scholarDV.getLastName() + "', name='" + scholarDV.getName() + "', alias='" + scholarDV.getAlias() + "', affiliation='" + scholarDV.getAffiliation() + "', dtype = 'Scholar' where id = " + scholarDV.getId(); Connection conn = null; PreparedStatement updateStatement = null; try { conn = dvnDatasource.getConnection(); updateStatement = conn.prepareStatement(updateString); int rowcount = updateStatement.executeUpdate(); } catch (java.sql.SQLException e) { // Do nothing, just return null. } em.flush(); VDC scholardataverse = em.find(VDC.class, scholarDV.getId()); return scholardataverse; // }
/** * This method implements the interface defined in DefinitionHandler to save definition to * database backend. * * @param d is the Definition that is ready to be stored. * @return true, if new version was stored and database modified, false, if the definition was * rejected for any reason. */ public boolean store(Definition d) { boolean result = false; VDC vdc = (VDC) m_dbschema; // NEW: remember all DVs we came across if (m_derivations != null && d instanceof Derivation) m_derivations.add(d.shortID()); try { if (m_rejects == null) { // rely on saveDefinition to do "the right thing" result = vdc.saveDefinition(d, m_overwrite); } else { // Is the Definition already in the database? if (vdc.containsDefinition(d)) { if (m_overwrite) { // this is time-consuming and ineffective Definition old = vdc.loadDefinition(d.getNamespace(), d.getName(), d.getVersion(), d.getType()); old.toXML(m_rejects, " "); result = vdc.saveDefinition(d, true); } else { // skip, if not forced to overwrite, but save rejects d.toXML(m_rejects, " "); } } else { // not found, insert unconditionally result = vdc.saveDefinition(d, true); } } } catch (SQLException sql) { // database problems for (int i = 0; sql != null; ++i) { m_logger.log( "database", 0, "SQL error " + i + ": " + sql.getErrorCode() + ": " + sql.getMessage()); sql = sql.getNextException(); } m_logger.log("database", 0, "ignoring SQL exception(s)"); } catch (Exception e) { m_logger.log("database", 0, "caught " + e + ", ignoring"); result = false; } if (result) m_count++; else m_rejected++; return result; }
public void updateDefaultTemplate(Long vdcId, Long templateId) { VDC vdc = em.find(VDC.class, vdcId); Template template = em.find(Template.class, templateId); vdc.setDefaultTemplate(template); }
public void delete(Long vdcId) { VDC vdc = em.find(VDC.class, vdcId); em.refresh(vdc); List studyIds = new ArrayList(); // Get the studyIds separately, to avoid a ConcurrentAccess Exception // (This is necessary because the studies are deleted in Native SQL) for (Iterator it = vdc.getOwnedStudies().iterator(); it.hasNext(); ) { Study elem = (Study) it.next(); studyIds.add(elem.getId()); } if (!studyIds.isEmpty()) { studyService.deleteStudyList(studyIds); } vdc.getOwnedStudies().clear(); vdc.setRootCollection(null); for (Iterator it = vdc.getOwnedCollections().iterator(); it.hasNext(); ) { VDCCollection elem = (VDCCollection) it.next(); elem.setParentCollection(null); elem.setOwner(null); // Remove this Collection from all linked VDCs for (Iterator itc = elem.getLinkedVDCs().iterator(); itc.hasNext(); ) { VDC linkedVDC = (VDC) itc.next(); linkedVDC.getLinkedCollections().remove(elem); } } for (Iterator it = vdc.getLinkedCollections().iterator(); it.hasNext(); ) { VDCCollection elem = (VDCCollection) it.next(); VDCCollection coll = em.find(VDCCollection.class, elem.getId()); coll.getLinkedVDCs().remove(vdc); } for (Iterator it = vdc.getVdcGroups().iterator(); it.hasNext(); ) { VDCGroup vdcGroup = (VDCGroup) it.next(); vdcGroup.getVdcs().remove(vdc); } for (Iterator it = vdc.getVdcRoles().iterator(); it.hasNext(); ) { VDCRole vdcRole = (VDCRole) it.next(); VDCUser vdcUser = vdcRole.getVdcUser(); vdcUser.getVdcRoles().remove(vdcRole); } if (vdc.isHarvestingDv()) { harvesterService.removeHarvestTimer(vdc.getHarvestingDataverse()); } // If the vdc Default Template is in the list of dataverse templates // (not the Network Default Template), then remove the reference before deleting the dataverse. // If not removed, you will get a foreign key violation when the persistence logic deletes // the collection of templates. if (vdc.getTemplates().contains(vdc.getDefaultTemplate())) { vdc.setDefaultTemplate(null); } em.remove(vdc); }
public List getLinkedCollections(VDC vdc, boolean getHiddenCollections) { // getHiddenCollections is no longer used return vdc.getLinkedCollections(); }
private void create(VDCUser user, String name, String alias, String dtype, List studyFields) { VDC addedSite = new VDC(); addedSite.setCreator(user); VDCNetwork vdcNetwork = vdcNetworkService.find(new Long(1)); addedSite.setDefaultTemplate(vdcNetwork.getDefaultTemplate()); em.persist(addedSite); addedSite.setName(name); addedSite.setAlias(alias); addedSite.setDtype(dtype); addedSite.setCreatedDate(DateUtil.getTimestamp()); addedSite.getRootCollection().setName(name); addedSite.setDefaultTemplate(vdcNetwork.getDefaultTemplate()); addedSite.setHeader(vdcNetwork.getDefaultVDCHeader()); addedSite.setFooter(vdcNetwork.getDefaultVDCFooter()); addedSite.setRestricted(true); addedSite.setDisplayAnnouncements(false); ArrayList advancedSearchFields = new ArrayList(); ArrayList searchResultsFields = new ArrayList(); for (Iterator it = studyFields.iterator(); it.hasNext(); ) { StudyField elem = (StudyField) it.next(); if (elem.isAdvancedSearchField()) { advancedSearchFields.add(elem); } if (elem.isSearchResultField()) { searchResultsFields.add(elem); } } addedSite.setAdvSearchFields(advancedSearchFields); addedSite.setSearchResultFields(searchResultsFields); userService.addVdcRole( user.getId(), findByAlias(addedSite.getAlias()).getId(), roleService.ADMIN); }
/** scholar dataverse */ private void createScholarDataverse( Long userId, String firstName, String lastName, String name, String affiliation, String alias, String dataverseType, List studyFields) { VDC sDV = new VDC(); em.persist(sDV); sDV.setCreator(em.find(VDCUser.class, userId)); sDV.setName(name); sDV.setFirstName(firstName); sDV.setLastName(lastName); sDV.setAffiliation(affiliation); sDV.setName(name); sDV.setAlias(alias); sDV.setDtype(dataverseType); sDV.setCreatedDate(DateUtil.getTimestamp()); sDV.getRootCollection().setName(name); VDCNetwork vdcNetwork = vdcNetworkService.find(new Long(1)); sDV.setDefaultTemplate(vdcNetwork.getDefaultTemplate()); sDV.setHeader(vdcNetwork.getDefaultVDCHeader()); sDV.setFooter(vdcNetwork.getDefaultVDCFooter()); sDV.setRestricted(true); sDV.setDisplayAnnouncements(false); ArrayList advancedSearchFields = new ArrayList(); ArrayList searchResultsFields = new ArrayList(); for (Iterator it = studyFields.iterator(); it.hasNext(); ) { StudyField elem = (StudyField) it.next(); if (elem.isAdvancedSearchField()) { advancedSearchFields.add(elem); } if (elem.isSearchResultField()) { searchResultsFields.add(elem); } } sDV.setAdvSearchFields(advancedSearchFields); sDV.setSearchResultFields(searchResultsFields); userService.addVdcRole(userId, findByAlias(sDV.getAlias()).getId(), roleService.ADMIN); }
public void addContributorRequest(Long vdcId, Long userId) { Role contributor = (Role) roleService.findByName(RoleServiceLocal.CONTRIBUTOR); VDC vdc = em.find(VDC.class, vdcId); VDCUser user = em.find(VDCUser.class, userId); RoleRequest roleRequest = new RoleRequest(); roleRequest.setRole(contributor); roleRequest.setVdcUser(user); roleRequest.setVdc(vdc); vdc.getRoleRequests().add(roleRequest); }