Project

General

Profile

« Previous | Next » 

Revision 36081

changed organizationDAO save to updateorsave

View differences:

OrganizationManagerImpl.java
6 6
import eu.dnetlib.goldoa.domain.Vocabulary;
7 7
import eu.dnetlib.goldoa.service.dao.BudgetDAO;
8 8
import eu.dnetlib.goldoa.service.dao.OrganizationDAO;
9
import org.apache.commons.codec.digest.DigestUtils;
9 10
import org.springframework.beans.factory.annotation.Autowired;
10 11
import org.springframework.dao.EmptyResultDataAccessException;
11 12
import org.springframework.jdbc.core.BatchPreparedStatementSetter;
......
79 80
	@Override
80 81
	public String saveOrganization(final Organization organization) throws OrganizationManagerException {
81 82

  
82
		if (organization.getId() == null)
83
			organization.setId(UUID.randomUUID().toString());
83
		if (organization.getId() == null) {
84
            organization.setId("portal::" + DigestUtils.md5Hex(organization.getName()));
85
            organization.setSource("portal");
86
        }
84 87

  
85
		try {
86
			organizationDAO.getOrganization(organization.getId());
87
			throw new OrganizationManagerException(OrganizationManagerException.ErrorCause.ALREADY_EXISTS);
88
		} catch (OrganizationManagerException e) {
89
			if (e.getErrorCause() == OrganizationManagerException.ErrorCause.ALREADY_EXISTS)
90
				throw e;
91
		}
88
		organizationDAO.saveOrganization(organization);
89
        organizationDAO.deleteOrganizationBudgets(organization);
90
		organizationDAO.insertOrganizationBudgets(organization);
92 91

  
93
		organizationDAO.insertOrganization(organization);
94
		organizationDAO.insertOrganizationBudget(organization);
95

  
96 92
		return organization.getId();
97 93
	}
98

  
99
	public OrganizationDAO getOrganizationDAO() {
100
		return organizationDAO;
101
	}
102

  
103
	public void setOrganizationDAO(OrganizationDAO organizationDAO) {
104
		this.organizationDAO = organizationDAO;
105
	}
106 94
}

Also available in: Unified diff