class ClientProcessorForJava {

    public void updateClientDetailsTable(Event event, Client client) {
        try {
            Timber.d("Started updateClientDetailsTable");

            if (CoreLibrary.getInstance().getSyncConfiguration().updateClientDetailsTable()) {
                String baseEntityId = client.getBaseEntityId();
                Long timestamp = getEventDate(event.getEventDate());

                Map<String, String> genderInfo = getGender(client);
                saveClientDetails(baseEntityId, genderInfo, timestamp);

                Map<String, String> addressInfo = getClientAddressAsMap(client);
                saveClientDetails(baseEntityId, addressInfo, timestamp);

                Map<String, String> attributes = getClientAttributes(client);
                saveClientDetails(baseEntityId, attributes, timestamp);

                Map<String, String> obs = getObsFromEvent(event);
                saveClientDetails(baseEntityId, obs, timestamp);
            }

            event.addDetails(detailsUpdated, Boolean.TRUE.toString());

            Timber.d("Finished updateClientDetailsTable");
            // save the other misc, client info date of birth...
        } catch (Exception e) {
            Timber.e(e);
        }
    }

    public  ClientProcessorForJava(Context context);

}