All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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