/*******************************************************************************
* Copyright 2013 See AUTHORS File
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
******************************************************************************/
package com.mobidevelop.maps.basic;
import com.badlogic.gdx.utils.ObjectMap;
import com.mobidevelop.maps.MapProperties;
public class BasicMapProperties implements MapProperties {
private ObjectMap<String, Object> data;
public BasicMapProperties() {
data = new ObjectMap<String, Object>();
}
public boolean containsKey(String key) {
return data.containsKey(key);
}
public Iterable<String> getKeys() {
return data.keys();
}
public Object get(String key) {
return data.get(key);
}
public Boolean getAsBoolean(String key) {
Object value = data.get(key);
try {
return (Boolean) value;
} catch (ClassCastException e) {
if (value instanceof CharSequence) {
return Boolean.valueOf(value.toString());
} else {
return null;
}
}
}
public Boolean getAsBoolean(String key, Boolean defaultValue) {
Boolean value = getAsBoolean(key);
return value == null? defaultValue : value;
}
public Byte getAsByte(String key) {
Object value = data.get(key);
if (value != null) {
if (value instanceof Number) {
return ((Number) value).byteValue();
} else {
if (value instanceof CharSequence) {
try {
return Byte.valueOf(value.toString());
} catch (NumberFormatException e2) {
return null;
}
} else {
return null;
}
}
} else {
return null;
}
}
public Byte getAsByte(String key, Byte defaultValue) {
Byte value = getAsByte(key);
return value == null? defaultValue : value;
}
public Double getAsDouble(String key) {
Object value = data.get(key);
if (value != null) {
if (value instanceof Number) {
return ((Number) value).doubleValue();
} else {
if (value instanceof CharSequence) {
try {
return Double.valueOf(value.toString());
} catch (NumberFormatException e2) {
return null;
}
} else {
return null;
}
}
} else {
return null;
}
}
public Double getAsDouble(String key, Double defaultValue) {
Double value = getAsDouble(key);
return value == null? defaultValue : value;
}
public Float getAsFloat(String key) {
Object value = data.get(key);
if (value != null) {
if (value instanceof Number) {
return ((Number) value).floatValue();
} else {
if (value instanceof CharSequence) {
try {
return Float.valueOf(value.toString());
} catch (NumberFormatException e2) {
return null;
}
} else {
return null;
}
}
} else {
return null;
}
}
public Float getAsFloat(String key, Float defaultValue) {
Float value = getAsFloat(key);
return value == null? defaultValue : value;
}
public Integer getAsInteger(String key) {
Object value = data.get(key);
if (value != null) {
if (value instanceof Number) {
return ((Number) value).intValue();
} else {
if (value instanceof CharSequence) {
try {
return Integer.valueOf(value.toString());
} catch (NumberFormatException e2) {
return null;
}
} else {
return null;
}
}
} else {
return null;
}
}
public Integer getAsInteger(String key, Integer defaultValue) {
Integer value = getAsInteger(key);
return value == null? defaultValue : value;
}
public Long getAsLong(String key) {
Object value = data.get(key);
if (value != null) {
if (value instanceof Number) {
return ((Number) value).longValue();
} else {
if (value instanceof CharSequence) {
try {
return Long.valueOf(value.toString());
} catch (NumberFormatException e2) {
return null;
}
} else {
return null;
}
}
} else {
return null;
}
}
public Long getAsLong(String key, Long defaultValue) {
Long value = getAsLong(key);
return value == null? defaultValue : value;
}
public Short getAsShort(String key) {
Object value = data.get(key);
if (value != null) {
if (value instanceof Number) {
return ((Number) value).shortValue();
} else {
if (value instanceof CharSequence) {
try {
return Short.valueOf(value.toString());
} catch (NumberFormatException e2) {
return null;
}
} else {
return null;
}
}
} else {
return null;
}
}
public Short getAsShort(String key, Short defaultValue) {
Short value = getAsShort(key);
return value == null? defaultValue : value;
}
public String getAsString(String key) {
Object value = data.get(key);
if (value != null) {
return value.toString();
} else {
return null;
}
}
public String getAsString(String key, String defaultValue) {
String value = getAsString(key);
return value == null? defaultValue : value;
}
public void put(String key, Object value) {
data.put(key, value);
}
public void putAll(MapProperties properties) {
for (String key : properties.getKeys()) {
data.put(key, properties.get(key));
}
}
public void remove(String key) {
data.remove(key);
}
public void clear() {
data.clear();
}
}