package com.jadarstudios.developercapes.cape;
import com.jadarstudios.developercapes.DevCapes;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Collection;
import java.util.HashMap;
/**
* @author jadar
*/
public enum CapeManager {
INSTANCE;
private HashMap<String, ICape> capes;
private CapeManager() {
this.capes = new HashMap<String, ICape>();
}
public void addCape(ICape cape) {
if (!capes.containsValue(cape)) {
capes.put(cape.getName(), cape);
}
}
public void addCapes(Collection<ICape> capes) {
for (ICape c : capes) {
this.addCape(c);
}
}
public ICape getCape(String capeName) {
return capes.get(capeName);
}
public ICape newInstance(String name) {
StaticCape cape = new StaticCape(name);
this.capes.put(name, cape);
return cape;
}
@SuppressWarnings("finally")
public ICape parse(String name, Object object) {
ICape cape = null;
if (!(object instanceof String)) {
DevCapes.logger.info(String.format("Cape, %s, could not be parsed because it is not a String!", object));
return cape;
}
try {
cape = new StaticCape(name, new URL((String) object));
} catch (MalformedURLException e) {
DevCapes.logger.error(String.format("Are you crazy?? %s is not a valid URL!", (String) object));
e.printStackTrace();
} finally {
return cape;
}
}
}