class ClientProcessorForJava {

    public Boolean processCaseModel(Event event, Client client, List<String> createsCase) {
        try {

            if (createsCase == null || createsCase.isEmpty()) {
                return false;
            }
            for (String clientType : createsCase) {
                Table table = getColumnMappings(clientType);
                List<Column> columns = table.columns;
                String baseEntityId = client != null ? client.getBaseEntityId() : event != null ? event.getBaseEntityId() : null;

                ContentValues contentValues = new ContentValues();
                //Add the base_entity_id
                contentValues.put("base_entity_id", baseEntityId);
                contentValues.put("is_closed", 0);

                for (Column colObject : columns) {
                    processCaseModel(event, client, colObject, contentValues);
                }

                // Modify openmrs generated identifier, Remove hyphen if it exists
                updateIdentifier(contentValues);

                // save the values to db
                executeInsertStatement(contentValues, clientType);

                String entityId=contentValues.getAsString("base_entity_id");
                updateFTSsearch(clientType, entityId, contentValues);
                Long timestamp = getEventDate(event.getEventDate());
                addContentValuesToDetailsTable(contentValues, timestamp);
                updateClientDetailsTable(event, client);
            }

            return true;
        } catch (Exception e) {
            Timber.e(e);

            return null;
        }
    }

    public  ClientProcessorForJava(Context context);

}