package pt.utl.ist.scripts.runOnce.research; import net.sourceforge.fenixedu.domain.research.result.publication.PreferredPublication; import pt.utl.ist.scripts.commons.AtomicScript; public class CleanupPublicationPreferences extends AtomicScript { @Override protected void run() throws Exception { int nulls = 0; int foreigns = 0; for (PreferredPublication preferred : rootDomainObject.getPreferredPublicationSet()) { if (!preferred.hasPersonThatPrefers() || !preferred.hasPreferredPublication()) { preferred.delete(); nulls++; } else if (!preferred.getPreferredPublication().hasPersonParticipation(preferred.getPersonThatPrefers())) { preferred.delete(); foreigns++; } } System.out.println("unlinked preferreds deleted: " + nulls); System.out.println("preferreds of now owned publications deleted: " + foreigns); } public static void main(String[] args) { processWriteTransaction(new CleanupPublicationPreferences()); } }