org.duelengine.duel.codedom.CodeObject Maven / Gradle / Ivy
package org.duelengine.duel.codedom;
import java.util.HashMap;
import java.util.Map;
import org.duelengine.duel.DuelData;
import org.duelengine.duel.codegen.JavaCodeGen;
public abstract class CodeObject {
private Map metaData;
/**
* Checks existence of a metadata value for the given key
* @param key
* @return
*/
public boolean hasMetaData(String key) {
return (metaData != null && metaData.containsKey(key));
}
/**
* Retrieves a metadata value for the given key
* @param key
* @return
*/
public Object getMetaData(String key) {
if (metaData == null || !metaData.containsKey(key)) {
return null;
}
return metaData.get(key);
}
/**
* Inserts a metadata value for the given key
* @param key
* @param value
* @return
*/
public Object putMetaData(String key, Object value) {
if (metaData == null) {
metaData = new HashMap(4, 1.0f);
}
return metaData.put(key, value);
}
/**
* Retrieves a metadata value for the given key
* @param key
* @return
*/
public Object removeMetaData(String key) {
if (metaData == null || !metaData.containsKey(key)) {
return null;
}
return metaData.remove(key);
}
/**
* Inserts multiple metadata key-value pairs
* @param pairs alternating key, value...
* @return
*/
public CodeObject withMetaData(Object... pairs) {
if (pairs == null || pairs.length < 1) {
return this;
}
final int length = pairs.length/2;
if (metaData == null) {
metaData = new HashMap(length, 1.0f);
}
for (int i=0; i © 2015 - 2025 Weber Informatics LLC | Privacy Policy