package org.atricore.idbus.connectors.jdoidentityvault.domain.dao.impl; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.atricore.idbus.connectors.jdoidentityvault.domain.JDOUserAttributeValue; import org.atricore.idbus.connectors.jdoidentityvault.domain.dao.JDOUserAttributeValueDAO; import javax.jdo.PersistenceManager; import javax.jdo.Query; import java.util.Collection; public class JDOUserAttributeValueDAOImpl extends GenericDAOImpl<JDOUserAttributeValue, Long> implements JDOUserAttributeValueDAO { private static final Log logger = LogFactory.getLog(JDOUserAttributeValueDAOImpl.class); public void updateName(String oldName, String newName) { PersistenceManager pm = getPersistenceManager(); Query query = pm.newQuery("SELECT FROM org.atricore.idbus.connectors.jdoidentityvault.domain.JDOUserAttributeValue" + " WHERE this.name == '" + oldName + "'"); Collection<JDOUserAttributeValue> values = (Collection<JDOUserAttributeValue>) query.execute(); if (values != null) { for (JDOUserAttributeValue value : values) { value.setName(newName); save(value); } } } public void deleteValues(String name) { PersistenceManager pm = getPersistenceManager(); Query query = pm.newQuery("SELECT FROM org.atricore.idbus.connectors.jdoidentityvault.domain.JDOUserAttributeValue" + " WHERE this.name == '" + name + "'"); Collection<JDOUserAttributeValue> values = (Collection<JDOUserAttributeValue>) query.execute(); if (values != null) { for (JDOUserAttributeValue value : values) { delete(value.getId()); } } } public void deleteRemovedValues(JDOUserAttributeValue[] oldValues, JDOUserAttributeValue[] newValues) { if (oldValues == null) return; if (newValues == null) newValues = new JDOUserAttributeValue[]{}; for (JDOUserAttributeValue oldValue : oldValues) { boolean removed = true; for (JDOUserAttributeValue newValue : newValues) { if (oldValue.getId() == newValue.getId()) { removed = false; break; } } if (removed) { delete(oldValue.getId()); } } } }