class DeserializeStrategyGet implements IAddRequestParametersToIObject {

    @Override
    public void extract(final IObject message, final Object requestObject) throws AddRequestParametersToIObjectException {
        FullHttpRequest request = (FullHttpRequest) requestObject;
        if (!request.uri().contains("/")) {
            return;
        }
        QueryStringDecoder decoder = new QueryStringDecoder(
                request.uri().substring(request.uri().indexOf("/")));
        decoder.parameters().forEach(
                (k, v) -> {
                    try {
                        IFieldName fieldName = IOC.resolve(Keys.getOrAdd("info.smart_tools.smartactors.iobject.ifield_name.IFieldName"), k);
                        message.setValue(fieldName, v.get(0));
                    } catch (ResolutionException | ChangeValueException | InvalidArgumentException e) {
                        throw new RuntimeException(e);
                    }
                }
        );
        Map<String, String> parameters = tree.match(decoder.path());
        parameters.forEach(
                (k, v) -> {
                    try {
                        IFieldName fieldName = IOC.resolve(Keys.getOrAdd("info.smart_tools.smartactors.iobject.ifield_name.IFieldName"), k);
                        message.setValue(fieldName, v);
                    } catch (ResolutionException | ChangeValueException | InvalidArgumentException e) {
                        throw new RuntimeException(e);
                    }
                }
        );
        return;
    }

    public  DeserializeStrategyGet(final List<String> templates);

}