package pt.utl.ist.scripts.runOnce; import java.util.HashSet; import java.util.Locale; import java.util.Set; import net.sourceforge.fenixedu.domain.organizationalStructure.AcademicalInstitutionType; import net.sourceforge.fenixedu.domain.organizationalStructure.Accountability; import net.sourceforge.fenixedu.domain.organizationalStructure.AccountabilityType; import net.sourceforge.fenixedu.domain.organizationalStructure.AccountabilityTypeEnum; import net.sourceforge.fenixedu.domain.organizationalStructure.Party; import net.sourceforge.fenixedu.domain.organizationalStructure.Unit; import net.sourceforge.fenixedu.domain.organizationalStructure.UniversityUnit; import org.joda.time.YearMonthDay; import pt.ist.bennu.core.domain.Bennu; import pt.utl.ist.fenix.tools.util.i18n.Language; import pt.utl.ist.fenix.tools.util.i18n.MultiLanguageString; import pt.utl.ist.scripts.commons.AtomicScript; public class CreateUniversity extends AtomicScript { static YearMonthDay fusionBeginDate = new YearMonthDay(2013, 07, 25); static YearMonthDay utlEndDate = new YearMonthDay(2013, 07, 24); static YearMonthDay istBeginDate = new YearMonthDay(1911, 05, 23); public static void main(String[] args) { processWriteTransaction(new CreateUniversity()); } @Override protected void run() throws Exception { final Unit institutionUnit = Bennu.getInstance().getInstitutionUnit(); Language.setDefaultLocale(new Locale("pt", "PT")); /* final Collection parentUniversityUnits = (Collection) institutionUnit.getParentParties(AccountabilityTypeEnum.ORGANIZATIONAL_STRUCTURE, UniversityUnit.class);*/ Class parentPartyClass = UniversityUnit.class; final Set result = new HashSet(); for (final Accountability accountability : institutionUnit.getParentsSet()) { System.out.println("Processing: " + accountability.getExternalId()); if (parentPartyClass.isAssignableFrom(accountability.getParentParty().getClass())) { System.out.println("passed ass."); accountability.setBeginDate(istBeginDate.minusDays(0)); accountability.setEndDate(utlEndDate.minusDays(0)); Party univUTL = accountability.getParentParty(); Accountability firstAccountability = univUTL.getParents().iterator().next(); firstAccountability.setEndDate(utlEndDate.minusDays(0)); //Party firstParty = firstAccountability.getParentParty(); MultiLanguageString newUnitName = new MultiLanguageString(Language.pt, "Universidade de Lisboa") .with(Language.en, "Universidade de Lisboa"); Unit unitPortugal = univUTL.getParentUnits().iterator().next(); UniversityUnit unitULisboa = UniversityUnit.createNewUniversityUnit(newUnitName, null, null, "ULisboa", fusionBeginDate.minusDays(0), null, unitPortugal, null, null, false, null); unitULisboa.setInstitutionType(AcademicalInstitutionType.NATIONAL_PUBLIC_INSTITUTION); Accountability newAccountabilityULisboaIST = new Accountability(unitULisboa, accountability.getChildParty(), AccountabilityType.readByType(AccountabilityTypeEnum.ORGANIZATIONAL_STRUCTURE)); newAccountabilityULisboaIST.setBeginDate(fusionBeginDate.minusDays(0)); for (final Accountability accountabilityULisboa : unitULisboa.getParentsSet()) { if (parentPartyClass.isAssignableFrom(accountability.getParentParty().getClass())) { accountabilityULisboa.setBeginDate(fusionBeginDate.minusDays(0)); accountabilityULisboa.setAccountabilityType(AccountabilityType .readByType(AccountabilityTypeEnum.ORGANIZATIONAL_STRUCTURE)); } } } } } }