001package de.deepamehta.plugins.topicmaps.model; 002 003import de.deepamehta.core.util.DeepaMehtaUtils; 004 005import org.codehaus.jettison.json.JSONObject; 006 007import java.util.HashMap; 008 009 010 011public class ViewProperties extends HashMap<String, Object> { 012 013 // ---------------------------------------------------------------------------------------------------- Constructors 014 015 /** 016 * Note: invoked from JAX-RS message body reader (see Webservice's ObjectProvider.java). 017 */ 018 public ViewProperties(JSONObject viewProps) { 019 DeepaMehtaUtils.toMap(viewProps, this); 020 } 021 022 // --- 023 024 /** 025 * Convenience constructor that initializes the "dm4.topicmaps.x", "dm4.topicmaps.y", and "dm4.topicmaps.visibility" 026 * standard view properties. 027 */ 028 public ViewProperties(int x, int y, boolean visibility) { 029 put(x, y); 030 put(visibility); 031 } 032 033 /** 034 * Convenience constructor that initializes the "dm4.topicmaps.x" and "dm4.topicmaps.y" standard view properties. 035 */ 036 public ViewProperties(int x, int y) { 037 put(x, y); 038 } 039 040 /** 041 * Convenience constructor that initializes the "dm4.topicmaps.visibility" standard view property. 042 */ 043 public ViewProperties(boolean visibility) { 044 put(visibility); 045 } 046 047 // -------------------------------------------------------------------------------------------------- Public Methods 048 049 public int getInt(String propUri) { 050 return (Integer) get(propUri); 051 } 052 053 public boolean getBoolean(String propUri) { 054 return (Boolean) get(propUri); 055 } 056 057 // --- 058 059 public Iterable<String> propUris() { 060 return keySet(); 061 } 062 063 // ------------------------------------------------------------------------------------------------ Private Methods 064 065 private void put(int x, int y) { 066 put("dm4.topicmaps.x", x); 067 put("dm4.topicmaps.y", y); 068 } 069 070 private void put(boolean visibility) { 071 put("dm4.topicmaps.visibility", visibility); 072 } 073}