transactionDetail.getWhenRegistered()).process(user,
annualEvent.getStartDate(), annualEvent.getEndDate()).process(user,
    protected Set<AccountingTransaction> internalProcess(User user, List<EntryDTO> entryDTOs,	    Event event, Account fromAccount, Account toAccount,	    AccountingTransactionDetailDTO transactionDetail) {	final Set<AccountingTransaction> result = new HashSet<AccountingTransaction>();	final Set<Entry> createdEntries = new HashSet<Entry>();	for (final EntryDTO entryDTO : entryDTOs) {	    if (entryDTO.getEntryType() == EntryType.INSURANCE_FEE) {		createdEntries.addAll(getPostingRuleForInsurance(transactionDetail.getWhenRegistered())			.process(user, Collections.singletonList(entryDTO), event, fromAccount,				toAccount, transactionDetail));	    } else if (entryDTO.getEntryType() == EntryType.ADMINISTRATIVE_OFFICE_FEE) {		createdEntries.addAll(getPostingRuleForAdministrativeOfficeFee(			transactionDetail.getWhenRegistered()).process(user,			Collections.singletonList(entryDTO), event, fromAccount, toAccount,			transactionDetail));	    } else {		throw new DomainException(			"error.accounting.postingRules.AdministrativeOfficeFeeAndInsurancePR.invalid.entry.type");	    }	}	((AdministrativeOfficeFeeAndInsuranceEvent) event).changePaymentCodeState(transactionDetail		.getWhenRegistered(), transactionDetail.getPaymentMode());	for (final Entry entry : createdEntries) {	    result.add(entry.getAccountingTransaction());	}	return result;    }