001    package de.deepamehta.core.service;
002    
003    import java.util.HashMap;
004    import java.util.Map;
005    
006    
007    
008    public class ClientState {
009    
010        // ---------------------------------------------------------------------------------------------- Instance Variables
011    
012        private Map<String, String> values = new HashMap();
013    
014        // ---------------------------------------------------------------------------------------------------- Constructors
015    
016        /**
017          * Converts a "Cookie" header value (String) to a map (key=String, value=String).
018          * E.g. "user=jri; workspace_id=123" => {"user"="jri", "workspace_id"="123"}
019          * <p>
020          * Called by JAX-RS container to create a ClientState from a "Cookie" @HeaderParam
021          */
022        public ClientState(String cookie) {
023            if (cookie != null) {
024                for (String value : cookie.split("; ")) {
025                    String[] val = value.split("=");
026                    values.put(val[0], val[1]);
027                }
028            }
029        }
030    
031        // -------------------------------------------------------------------------------------------------- Public Methods
032    
033        public String get(String key) {
034            return values.get(key);
035        }
036    
037        /**
038         * Convenience method.
039         */
040        public long getLong(String key) {
041            return Long.parseLong(get(key));
042        }
043    
044        // ---
045    
046        @Override
047        public String toString() {
048            return values.toString();
049        }
050    }