in service/src/main/java/org/apache/fineract/cn/office/internal/service/OfficeService.java [101:127]
public Optional<Office> findOfficeByIdentifier(final String identifier) {
final Optional<OfficeEntity> officeEntityOptional = this.officeRepository.findByIdentifier(identifier);
if (officeEntityOptional.isPresent()) {
final Optional<Office> officeOptional = officeEntityOptional.map(OfficeMapper::map);
officeOptional.ifPresent(office -> {
final Long parentOfficeId = officeEntityOptional.get().getParentOfficeId();
if(parentOfficeId != null) {
final OfficeEntity parentEntity = this.officeRepository.getOne(parentOfficeId);
office.setParentIdentifier(parentEntity.getIdentifier());
}
final Optional<AddressEntity> addressEntityOptional = this.addressRepository.findByOffice(officeEntityOptional.get());
addressEntityOptional.ifPresent(addressEntity -> office.setAddress(AddressMapper.map(addressEntity)));
office.setExternalReferences(
this.branchExists(office.getIdentifier())
|| this.hasEmployees(office.getIdentifier())
|| this.hasExternalReferences(office.getIdentifier())
);
});
return officeOptional;
}
return Optional.empty();
}