package com.openkm.cache;
import java.util.HashMap;
import java.util.Map;
import org.apache.jackrabbit.core.NodeId;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.openkm.bean.cache.NodePermissions;
import com.openkm.util.Serializer;
public class NodePermissionsManager {
@SuppressWarnings("unused")
private static Logger log = LoggerFactory.getLogger(NodePermissionsManager.class);
private static final String FILEALIZATION = "NodePermissionsManager";
private static Map<NodeId, NodePermissions> nodePermissionsMgr;
static {
deserialize();
}
/**
*
*/
public static NodePermissions get(NodeId id) {
return nodePermissionsMgr.get(id);
}
/**
*
*/
public static synchronized void put(NodeId id, NodePermissions perm) {
nodePermissionsMgr.put(id, perm);
serialize();
}
/**
*
*/
private static synchronized void serialize() {
Serializer.write(FILEALIZATION, nodePermissionsMgr);
}
/**
*
*/
@SuppressWarnings("unchecked")
private static synchronized void deserialize() {
nodePermissionsMgr = new HashMap<NodeId, NodePermissions>();
Object obj = Serializer.read(FILEALIZATION);
if (obj != null) {
nodePermissionsMgr = (HashMap<NodeId, NodePermissions>) obj;
}
}
}