Java tutorial
/** * Copyright (c) 1999, 2014 Claresco Corporation, Berkeley, California. All rights reserved. * * * XapiAccessManager.java Sep 9, 2014 * * Copyright 2014 Claresco Corporation, Berkeley, CA 94704. All Rights Reserved. * * This software is the proprietary information of Claresco Corporation. * Use is subject to license terms. * * Author : Rheza * */ package com.claresco.tinman.servlet; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.PrintWriter; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; import java.util.TreeMap; import org.joda.time.DateTime; import org.joda.time.DateTimeComparator; /** * XapiAccessManager * @author Rheza * * Description: * * * Status: * * */ public class XapiAccessManager { private XapiCredentialsList myCredentialsList; private HashMap<XapiKeySecret, DateTime> myKeySecretTimeMap; private ArrayList<XapiKeySecret> myLMSKeySecret; private boolean isDebugMode = false; private String myCredentialsListFileName; /** * Constructor * * Params: * * */ public XapiAccessManager(XapiCredentialsList theCredentialsList, HashMap<XapiKeySecret, DateTime> theKeySecretTimeMap) { myCredentialsList = theCredentialsList; myKeySecretTimeMap = theKeySecretTimeMap; } /** * Constructor * * Params: * * */ public XapiAccessManager(String theFileName) { this(new XapiCredentialsList(new HashMap<XapiKeySecret, XapiCredentials>()), theFileName); } /** * Constructor * * Params: * * */ public XapiAccessManager(XapiCredentialsList theCredentialsList, String theFileName) { myCredentialsList = theCredentialsList; myKeySecretTimeMap = new HashMap<XapiKeySecret, DateTime>(); myLMSKeySecret = new ArrayList<XapiKeySecret>(); myCredentialsListFileName = theFileName; } protected void addCrendential(XapiKeySecret theKeySecret, XapiCredentials theCredential) { addLastAccessedTime(theKeySecret, DateTime.now()); myCredentialsList.put(theKeySecret, theCredential); } protected void addLastAccessedTime(XapiKeySecret theKeySecret, DateTime theTime) { myKeySecretTimeMap.put(theKeySecret, theTime); } protected XapiCredentials getCredential(XapiKeySecret theKeySecret) { return myCredentialsList.get(theKeySecret); } protected TreeMap<XapiKeySecret, DateTime> getSortedMap() { AccessedTimeComparator theComparator = new AccessedTimeComparator(myKeySecretTimeMap); TreeMap<XapiKeySecret, DateTime> theSortedMap = new TreeMap<XapiKeySecret, DateTime>(theComparator); theSortedMap.putAll(myKeySecretTimeMap); return theSortedMap; } protected Set<Map.Entry<XapiKeySecret, DateTime>> getSortedSet() { return getSortedMap().entrySet(); } protected boolean containsClientCredentials(XapiKeySecret theCredentials) { return myCredentialsList.containsKey(theCredentials); } protected Set<XapiKeySecret> getCredentialsKeySet() { return myCredentialsList.keySet(); } protected void removePermission(XapiKeySecret theKeySecret) { myKeySecretTimeMap.remove(theKeySecret); } protected void addServerKeySecret(XapiKeySecret theKeySecret) { myLMSKeySecret.add(theKeySecret); } protected boolean containServerKeySecret(XapiKeySecret theKeySecret) { return myLMSKeySecret.contains(theKeySecret); } protected void setDebugMode(boolean theValue) { isDebugMode = theValue; } protected boolean isDebugMode() { return isDebugMode; } protected XapiCredentialsList getCredentialsList() { return myCredentialsList; } protected void saveCredentialsList(String theList) { DateTime theDate = DateTime.now(); File theFile = new File(myCredentialsListFileName); try { if (!theFile.exists()) { theFile.createNewFile(); } PrintWriter theWriter = new PrintWriter( new BufferedWriter(new FileWriter(myCredentialsListFileName, false))); theWriter.print(theList); theWriter.close(); } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) { XapiAccessManager theM = new XapiAccessManager("abc"); XapiKeySecret theKS1 = new XapiKeySecret("a", "b"); XapiKeySecret theKS2 = new XapiKeySecret("c", "d"); theM.addLastAccessedTime(theKS2, new DateTime()); theM.addLastAccessedTime(theKS1, new DateTime()); for (Map.Entry<XapiKeySecret, DateTime> theEntry : theM.getSortedSet()) { System.out.println(theEntry.getKey() + " : " + theEntry.getValue()); } } }