package se.idega.idegaweb.commune.business; import java.util.ArrayList; import java.util.List; import com.idega.block.school.data.SchoolClassMember; import com.idega.core.accesscontrol.data.PermissionGroup; import com.idega.core.user.data.PrimaryUserGroup; import com.idega.core.user.data.PrimaryUserGroupBMPBean; import com.idega.data.GenericEntity; import com.idega.data.IDOCopier; import com.idega.data.IDOEntityBean; import com.idega.user.data.Group; import com.idega.user.data.GroupBMPBean; /** * Title: A class to copy the setup of the Commune application from one datasource to another. * Description: * Copyright: Copyright (c) 2002 idega software * Company: idega software * @author <a href="tryggvi@idega.is">Tryggvi Larusson</a> * @version 1.0 */ public class CommuneCopier extends IDOCopier { private static String DEFAULT_FROM_DATASOURCE = "default"; private static List groupClassesList; public CommuneCopier() { this(DEFAULT_FROM_DATASOURCE); } public CommuneCopier(String fromDatasource) { super(); GenericEntity instance1 = createEntityInstance(com.idega.core.builder.data.ICDomain.class); //GenericEntity instance1 = ((com.idega.builder.data.IBDomainHome)com.idega.data.IDOLookup.getHomeLegacy(com.idega.builder.data.IBDomain.class)).createLegacy(); ((IDOEntityBean)instance1).setDatasource(fromDatasource); GenericEntity instance2 = createEntityInstance(com.idega.core.accesscontrol.data.LoginTable.class); //GenericEntity instance2 = ((com.idega.core.accesscontrol.data.LoginTableHome)com.idega.data.IDOLookup.getHomeLegacy(com.idega.core.accesscontrol.data.LoginTable.class)).createLegacy(); ((IDOEntityBean)instance2).setDatasource(fromDatasource); GenericEntity instance2b = createEntityInstance(com.idega.core.accesscontrol.data.LoginInfo.class); //GenericEntity instance2b = ((com.idega.core.accesscontrol.data.LoginInfoHome)com.idega.data.IDOLookup.getHomeLegacy(com.idega.core.accesscontrol.data.LoginInfo.class)).createLegacy(); ((IDOEntityBean)instance2b).setDatasource(fromDatasource); GenericEntity instance3 = createEntityInstance(com.idega.core.component.data.ICObjectInstance.class); ((IDOEntityBean)instance3).setDatasource(fromDatasource); GenericEntity instance4 = createEntityInstance(com.idega.core.accesscontrol.data.ICPermission.class); //GenericEntity instance4 = ((com.idega.core.accesscontrol.data.ICPermissionHome)com.idega.data.IDOLookup.getHomeLegacy(com.idega.core.accesscontrol.data.ICPermission.class)).createLegacy(); ((IDOEntityBean)instance4).setDatasource(fromDatasource); GenericEntity instance5 = createEntityInstance(com.idega.builder.dynamicpagetrigger.data.PageTriggerInfo.class); ((IDOEntityBean)instance5).setDatasource(fromDatasource); GenericEntity instance6 = createEntityInstance(com.idega.user.data.GroupRelation.class); ((IDOEntityBean)instance6).setDatasource(fromDatasource); GenericEntity instance7 = createEntityInstance(SchoolClassMember.class); ((IDOEntityBean)instance7).setDatasource(fromDatasource); GenericEntity instance8 = createEntityInstance(com.idega.block.school.data.School.class); ((IDOEntityBean)instance8).setDatasource(fromDatasource); super.addEntityToCopy(instance1); super.addEntityToCopy(instance2); super.addEntityToCopy(instance3); super.addEntityToCopy(instance4); super.addEntityToCopy(instance5); super.addEntityToCopy(instance6); super.addEntityToCopy(instance7); super.addEntityToCopy(instance8); } protected IDOEntityCopyInfo getIDOEntityCopyInfo(Class entityClass, String tableName) { return new CommuneIDOEntityCopyInfo(entityClass, tableName); } protected class CommuneIDOEntityCopyInfo extends IDOEntityCopyInfo { protected CommuneIDOEntityCopyInfo(Class entityClass, String tableName) { super(entityClass, tableName); } public boolean equals(Object o) { if (o != null) { if (o instanceof IDOEntityCopyInfo) { IDOEntityCopyInfo ci = (IDOEntityCopyInfo)o; return isAGroupEntity(this)&&isAGroupEntity(ci); } } return false; } } private List getGroupClassesList() { if (groupClassesList == null) { groupClassesList = new ArrayList(); //groupClassesList.add(GenericGroup.class); //groupClassesList.add(GenericGroupBMPBean.class); groupClassesList.add(PermissionGroup.class); //groupClassesList.add(PermissionGroupBMPBean.class); groupClassesList.add(Group.class); groupClassesList.add(GroupBMPBean.class); groupClassesList.add(PrimaryUserGroup.class); groupClassesList.add(PrimaryUserGroupBMPBean.class); return groupClassesList; } else { return groupClassesList; } } protected boolean isAGroupEntity(IDOEntityCopyInfo ci){ return getGroupClassesList().contains(ci.entityClass); } }