package pt.utl.ist.scripts.runOnce; import net.sourceforge.fenixedu.domain.contacts.EmailAddress; import net.sourceforge.fenixedu.domain.contacts.MobilePhone; import net.sourceforge.fenixedu.domain.contacts.PartyContact; import net.sourceforge.fenixedu.domain.contacts.Phone; import net.sourceforge.fenixedu.domain.contacts.WebAddress; import org.apache.commons.lang.StringUtils; import pt.utl.ist.scripts.commons.AtomicScript; public class DeleteEmptyContacts extends AtomicScript { @Override protected void run() throws Exception { int phoneCount = 0; int mobileCount = 0; int emailCount = 0; int webCount = 0; for (PartyContact contact : rootDomainObject.getPartyContactsSet()) { if (contact instanceof Phone) { Phone phone = (Phone) contact; if (StringUtils.isEmpty(phone.getNumber())) { contact.deleteWithoutCheckRules(); phoneCount++; } } if (contact instanceof MobilePhone) { MobilePhone phone = (MobilePhone) contact; if (StringUtils.isEmpty(phone.getNumber())) { contact.deleteWithoutCheckRules(); mobileCount++; } } if (contact instanceof EmailAddress) { EmailAddress email = (EmailAddress) contact; if (StringUtils.isEmpty(email.getValue())) { contact.deleteWithoutCheckRules(); emailCount++; } } if (contact instanceof WebAddress) { WebAddress webAddress = (WebAddress) contact; if (StringUtils.isEmpty(webAddress.getUrl())) { contact.deleteWithoutCheckRules(); webCount++; } } } System.out.println("phones deleted: " + phoneCount); System.out.println("mobiles deleted: " + mobileCount); System.out.println("emails deleted: " + emailCount); System.out.println("webs deleted: " + webCount); } public static void main(String[] args) { processWriteTransaction(new DeleteEmptyContacts()); System.exit(0); } }