blob: 06828edfe3659ccbb646d26eae9064fc06a32dab [file] [log] [blame]
package org.eclipse.om2m.persistence.eclipselink.internal.dao;
import java.util.List;
import org.eclipse.om2m.commons.entities.AccessControlPolicyEntity;
import org.eclipse.om2m.commons.entities.AeAnncEntity;
import org.eclipse.om2m.commons.entities.AeEntity;
import org.eclipse.om2m.commons.entities.CSEBaseEntity;
import org.eclipse.om2m.commons.entities.ContainerEntity;
import org.eclipse.om2m.commons.entities.ContentInstanceEntity;
import org.eclipse.om2m.commons.entities.DynamicAuthorizationConsultationEntity;
import org.eclipse.om2m.commons.entities.FlexContainerAnncEntity;
import org.eclipse.om2m.commons.entities.FlexContainerEntity;
import org.eclipse.om2m.commons.entities.GroupEntity;
import org.eclipse.om2m.commons.entities.LabelEntity;
import org.eclipse.om2m.commons.entities.MgmtObjEntity;
import org.eclipse.om2m.commons.entities.NodeEntity;
import org.eclipse.om2m.commons.entities.RemoteCSEEntity;
import org.eclipse.om2m.commons.entities.ScheduleEntity;
import org.eclipse.om2m.persistence.eclipselink.internal.DBTransactionJPAImpl;
import org.eclipse.om2m.persistence.service.DBTransaction;
public class DynamicAuthorizationConsultationDAO extends AbstractDAO<DynamicAuthorizationConsultationEntity> {
@Override
public DynamicAuthorizationConsultationEntity find(DBTransaction dbTransaction, Object id) {
DBTransactionJPAImpl transaction = (DBTransactionJPAImpl) dbTransaction;
return transaction.getEm().find(DynamicAuthorizationConsultationEntity.class, id);
}
@Override
public void update(DBTransaction dbTransaction, DynamicAuthorizationConsultationEntity resource) {
DBTransactionJPAImpl transaction = (DBTransactionJPAImpl) dbTransaction;
List<LabelEntity> lbls = processLabels(dbTransaction, resource.getLabelsEntities());
resource.setLabelsEntities(lbls);
transaction.getEm().merge(resource);
}
@Override
public void delete(DBTransaction dbTransaction, DynamicAuthorizationConsultationEntity resource) {
DBTransactionJPAImpl transaction = (DBTransactionJPAImpl) dbTransaction;
if (resource.getParentCseBase() != null) {
resource.getParentCseBase().getChildDynamicAuthorizationConsultation().remove(resource);
transaction.getEm().merge(resource.getParentCseBase());
}
if (resource.getParentAe() != null) {
resource.getParentAe().getDynamicAuthorizationConsultations().remove(resource);
transaction.getEm().merge(resource.getParentAe());
}
if (resource.getParentRemoteCse() != null) {
resource.getParentRemoteCse().getChildDynamicAuthorizationConsultation().remove(resource);
transaction.getEm().merge(resource.getParentRemoteCse());
}
// remove relation with ACPs
for(AccessControlPolicyEntity acpe : resource.getAccessControlPolicies()) {
acpe.getLinkedDynamicAuthorizationConsultation().remove(resource);
transaction.getEm().merge(acpe);
}
// remove relation with DynamicAuthorizationConsultation
for(DynamicAuthorizationConsultationEntity dace : resource.getDynamicAuthorizationConsultations()) {
dace.getLinkedDynamicAuthorizationConsultationEntity().remove(resource);
transaction.getEm().merge(dace);
}
// remove link with ACPs
for(AccessControlPolicyEntity acpe : resource.getLinkedAccessControlPolicyEntities()) {
acpe.getDynamicAuthorizationConsultations().remove(resource);
transaction.getEm().merge(acpe);
}
// remove link with AeAnnc
for(AeAnncEntity aae : resource.getLinkedAeAnncEntities()) {
aae.getDynamicAuthorizationConsultations().remove(resource);
transaction.getEm().merge(aae);
}
// remove link with Ae
for(AeEntity ae : resource.getLinkedAeEntities()) {
ae.getDynamicAuthorizationConsultations().remove(resource);
transaction.getEm().merge(ae);
}
// remove link with Mgmt Objs
for(MgmtObjEntity mgmtObj : resource.getMgmtObjEntities()) {
mgmtObj.getDynamicAuthorizationConsultations().remove(resource);
transaction.getEm().merge(mgmtObj);
}
// remove link with Container
for(ContainerEntity ce : resource.getLinkedContainerEntities()) {
ce.getDynamicAuthorizationConsultations().remove(resource);
transaction.getEm().merge(ce);
}
// remove link with ContentInstance
for(ContentInstanceEntity cie : resource.getLinkedContentInstanceEntites()) {
cie.getDynamicAuthorizationConsultations().remove(resource);
transaction.getEm().merge(cie);
}
// remove link with CseBase
for(CSEBaseEntity cbe : resource.getLinkedCseBaseEntities()) {
cbe.getDynamicAuthorizationConsultations().remove(resource);
transaction.getEm().merge(cbe);
}
// remove link with DynamicAuthorizationConsultation
for(DynamicAuthorizationConsultationEntity dace : resource.getLinkedDynamicAuthorizationConsultationEntity()) {
dace.getDynamicAuthorizationConsultations().remove(resource);
transaction.getEm().merge(dace);
}
// remove link with flexContainerAnnc
for(FlexContainerAnncEntity fae : resource.getLinkedFlexContainerAnncEntities()) {
fae.getDynamicAuthorizationConsultations().remove(resource);
transaction.getEm().merge(fae);
}
// remove link with flexContainer
for(FlexContainerEntity fe : resource.getLinkedFlexContainerEntites()) {
fe.getDynamicAuthorizationConsultations().remove(resource);
transaction.getEm().merge(fe);
}
// remove link with group
for(GroupEntity ge : resource.getLinkedGroupEntities()) {
ge.getDynamicAuthorizationConsultations().remove(resource);
transaction.getEm().merge(ge);
}
// remove link with node
for(NodeEntity ne : resource.getLinkedNodeEntities()) {
ne.getDynamicAuthorizationConsultations().remove(resource);
transaction.getEm().merge(ne);
}
// remove link with RemoteCSE
for(RemoteCSEEntity rce : resource.getLinkedRemoteCSEEntities()) {
rce.getDynamicAuthorizationConsultations().remove(resource);
transaction.getEm().merge(rce);
}
// remove link with Schedule
for(ScheduleEntity se : resource.getLinkedScheduleEntities()) {
se.getDynamicAuthorizationConsultations().remove(resource);
transaction.getEm().merge(se);
}
transaction.getEm().remove(resource);
transaction.getEm().flush();
}
}