public Optional findOfficeByIdentifier()

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();
  }