class SpringWebFluxWebSession implements ISpringWebFluxWebSession {

    private final WebSession session;


    SpringWebFluxWebSession(final WebSession session) {
        super();
        Validate.notNull(session, "Session cannot be null");
        this.session = session;
    }

    @Override
    public boolean exists() {
        return this.session.isStarted();
    }

    @Override
    public Map<String, Object> getAttributes() {
        return Collections.unmodifiableMap(this.session.getAttributes());
    }

    @Override
    public Object getAttributeValue(final String name) {
        Validate.notNull(name, "Name cannot be null");
        return this.session.getAttribute(name);
    }

    @Override
    public void setAttributeValue(final String name, final Object value) {<FILL_FUNCTION_BODY>}

    @Override
    public void removeAttribute(final String name) {
        Validate.notNull(name, "Name cannot be null");
        this.session.getAttributes().remove(name);
    }

    @Override
    public Object getNativeSessionObject() {
        return this.session;
    }

}

        Validate.notNull(name, "Name cannot be null");
        if (value == null) {
            this.session.getAttributes().remove(name);
        } else {
            this.session.getAttributes().put(name, value);
        }
    
<no_super_class>