All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.springframework.session.SessionRepository Maven / Gradle / Ivy

There is a newer version: 1.3.5.RELEASE
Show newest version
/*
 * Copyright 2014-2016 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.springframework.session;

/**
 * A repository interface for managing {@link Session} instances.
 *
 * @param  the {@link Session} type
 * @author Rob Winch
 * @since 1.0
 */
public interface SessionRepository {

	/**
	 * Creates a new {@link Session} that is capable of being persisted by this
	 * {@link SessionRepository}.
	 *
	 * 

* This allows optimizations and customizations in how the {@link Session} is * persisted. For example, the implementation returned might keep track of the changes * ensuring that only the delta needs to be persisted on a save. *

* * @return a new {@link Session} that is capable of being persisted by this * {@link SessionRepository} */ S createSession(); /** * Ensures the {@link Session} created by * {@link org.springframework.session.SessionRepository#createSession()} is saved. * *

* Some implementations may choose to save as the {@link Session} is updated by * returning a {@link Session} that immediately persists any changes. In this case, * this method may not actually do anything. *

* * @param session the {@link Session} to save */ void save(S session); /** * Gets the {@link Session} by the {@link Session#getId()} or null if no * {@link Session} is found. * * @param id the {@link org.springframework.session.Session#getId()} to lookup * @return the {@link Session} by the {@link Session#getId()} or null if no * {@link Session} is found. */ S getSession(String id); /** * Deletes the {@link Session} with the given {@link Session#getId()} or does nothing * if the {@link Session} is not found. * @param id the {@link org.springframework.session.Session#getId()} to delete */ void delete(String id); }