class TopLevelObjectCreator implements IReceiverObjectCreator {

    @Override
    public void create(IReceiverObjectListener listener, IObject config, IObject context)
            throws ReceiverObjectListenerException, InvalidReceiverPipelineException, ReceiverObjectCreatorException {
        try {
            Object object = IOC.resolve(
                    IOC.resolve(IOC.getKeyForKeyStorage(), config.getValue(dependencyFieldName)),
                    config
            );

            context.setValue(topLevelObjectFieldName, object);

            listener.acceptItem(null, object);
            listener.endItems();
        } catch (InvalidArgumentException | ReadValueException | ChangeValueException | ResolutionException e) {
            throw new ReceiverObjectCreatorException(e);
        }
    }

    public  TopLevelObjectCreator();

}