![JAR search and dependency download from the Maven repository](/logo.png)
org.nico.cat.mvc.container.NomvcContainer Maven / Gradle / Ivy
package org.nico.cat.mvc.container;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import org.nico.cat.mvc.container.entity.CinemaEntity;
import org.nico.cat.mvc.container.entity.LobbyEntity;
import org.nico.cat.mvc.parameter.RequestMethod;
import org.nico.cat.mvc.util.PathValidMatchUtils;
public class NomvcContainer {
private static NomvcContainer instance;
private NomvcContainer(){
cinemaMap = new ConcurrentHashMap, CinemaEntity>();
lobbyMap = new ConcurrentHashMap>();
}
public static NomvcContainer getInstance(){
try {
if(instance != null){
}else{
Thread.sleep(300);
synchronized (NomvcContainer.class) {
if(instance == null){
instance = new NomvcContainer();
}
}
}
} catch (InterruptedException e) {
e.printStackTrace();
}
return instance;
}
private Map, CinemaEntity> cinemaMap;
private Map> lobbyMap;
public void putCinema(Class> clazz, CinemaEntity cinemaEntity){
cinemaMap.put(clazz, cinemaEntity);
}
public void putLobby(final String mapping, final LobbyEntity lobbyEntity){
RequestMethod requestMethod = lobbyEntity.getLobby().requestMethod();
if(lobbyMap.containsKey(requestMethod)) {
lobbyMap.get(requestMethod).put(mapping, lobbyEntity);
}else {
lobbyMap.put(requestMethod, new ConcurrentHashMap(){
private static final long serialVersionUID = 1L;
{
put(mapping, lobbyEntity);
}
});
}
}
public boolean containsLobbyEntity(String mapping, RequestMethod method){
return getLobbyEntity(mapping, method) != null;
}
public boolean containsCinemaEntity(Class> clazz){
return cinemaMap.containsKey(clazz);
}
public LobbyEntity getLobbyEntity(String mapping, RequestMethod method){
Map routers = null;
for(int i = 0; i< 2; i++) {
if(i == 0) {
routers = lobbyMap.get(method);
}else {
if(method.equals(RequestMethod.DEFAULT)) {
break;
}
routers = lobbyMap.get(RequestMethod.DEFAULT);
}
if(routers != null && ! routers.isEmpty()) {
for(String key: routers.keySet()){
if(PathValidMatchUtils.pathValidMatcher(key, mapping)){
return routers.get(key);
}
}
}
}
return null;
}
public CinemaEntity getCinemaEntity(Class> clazz){
return cinemaMap.get(clazz);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy