package com.siberika.idea.pascal.jps.util;
import com.intellij.openapi.diagnostic.Logger;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jps.model.JpsElement;
import org.jetbrains.jps.model.JpsSimpleElement;
import java.util.HashMap;
/**
* Author: George Bakhtadze
* Date: 11/05/2014
*/
public class ParamMap extends HashMap<String, String> {
private static final Logger LOG = Logger.getInstance(ParamMap.class.getName());
public ParamMap() {
}
public ParamMap(ParamMap msg) {
this.putAll(msg);
}
public ParamMap addPair(String key, String value) {
this.put(key, value);
return this;
}
public static void addJpsParam(JpsElement jpsElement, String name, String value) {
Object data = null;
if (jpsElement instanceof JpsSimpleElement) {
data = ((JpsSimpleElement) jpsElement).getData();
}
if (data instanceof ParamMap) {
((ParamMap) data).addPair(name, value);
} else {
LOG.info("ERROR: Data is not ParamMap: " + data);
}
}
public static String getJpsParam(JpsElement jpsElement, String name) {
Object data = null;
if (jpsElement instanceof JpsSimpleElement) {
data = ((JpsSimpleElement) jpsElement).getData();
}
if (data instanceof ParamMap) {
return ((ParamMap) data).get(name);
} else {
LOG.info("ERROR: Data is not ParamMap: " + data);
return null;
}
}
@Nullable
public static ParamMap getJpsParams(JpsElement jpsElement) {
if (jpsElement instanceof JpsSimpleElement) {
Object data = ((JpsSimpleElement) jpsElement).getData();
if (data instanceof ParamMap) {
return (ParamMap) data;
} else {
LOG.info("ERROR: Data is not ParamMap: " + data);
return null;
}
}
return null;
}
}