class InstrumentAccountCodeService {

    @Transactional
    public List<InstrumentAccountCode> update(List<InstrumentAccountCode> instrumentAccountCodes, BindingResult errors,
            RequestInfo requestInfo) {

        try {

            instrumentAccountCodes = fetchRelated(instrumentAccountCodes, requestInfo);

            validate(instrumentAccountCodes, ACTION_UPDATE, errors);

            if (errors.hasErrors())
                throw new CustomBindException(errors);

        } catch (CustomBindException e) {

            throw new CustomBindException(errors);
        }

        return instrumentAccountCodeRepository.update(instrumentAccountCodes, requestInfo);

    }

    @Autowired public  InstrumentAccountCodeService(SmartValidator validator,
            InstrumentAccountCodeRepository instrumentAccountCodeRepository,
            ChartOfAccountContractRepository chartOfAccountContractRepository,
            InstrumentTypeRepository instrumentTypeRepository);

}