static void setField(Class<?> clazz, Object o, PlcReadResponse response, String targetTagName, String sourceTagName) throws NoSuchFieldException, IllegalAccessException {
        LOGGER.debug("setField on clazz: {}, Object: {}, response: {}, targetFieldName: {}, sourceFieldName:{} ", clazz, o, response, targetTagName, sourceTagName);
        Field field = clazz.getDeclaredField(targetTagName);
        field.setAccessible(true);
        try {
            field.set(o, getTyped(field.getType(), response, sourceTagName));
        } catch (ClassCastException e) {
            throw new PlcRuntimeException(String.format("Unable to assign return value %s to tag %s with type %s",
                response.getObject(sourceTagName), targetTagName, field.getType()), e);
        }
    }
Tries to set a response Item to a tag in the given object.
This is one by looking for a tag in the class and a response item
which is equal to the given tagName parameter.

@param o               Object to set the value on
@param response        Response to fetch the response from
@param targetTagName Name of the tag in the object
@param sourceTagName Name of the tag in the response
@throws NoSuchFieldException   If a tag is not present in entity
@throws IllegalAccessException If a tag in the entity cannot be accessed
plc4j/tools/opm/src/main/java/org/apache/plc4x/java/opm/PlcEntityInterceptor.java