/** * DeveloperCapes by Jadar * License: MIT License * (https://raw.github.com/jadar/DeveloperCapes/master/LICENSE) * version 4.0.0.x */ package com.jadarstudios.developercapes.cape; import java.net.MalformedURLException; import java.net.URL; import java.util.Collection; import java.util.HashMap; import com.jadarstudios.developercapes.DevCapes; /** * This manages all of the capes, be nice to it or you won't get one! * * @author jadar */ public class CapeManager { protected static CapeManager instance; private HashMap<String, ICape> capes; public CapeManager () { this.capes = new HashMap<String, ICape>(); } public static CapeManager getInstance () { if (instance == null) instance = new CapeManager(); return instance; } public void addCape (ICape cape) { if (!capes.containsValue(cape)) capes.put(cape.getName(), cape); } public void addCapes (Collection<ICape> capes) { for (ICape c : capes) addCape(c); } public ICape getCape (String capeName) { return capes.get(capeName); } public ICape newCape (String name) { StaticCape cape = new StaticCape(name); this.capes.put(name, cape); return cape; } public ICape parse (String name, Object object) { ICape cape = null; if (object instanceof String || object instanceof URL) cape = parse(name, object.toString()); else DevCapes.logger.error(String.format("Cape, %s, could not be parsed because it is not in an accepted format!", object)); return cape; } protected ICape parse (String name, String url) { ICape cape = null; try { cape = new StaticCape(name, new URL(url)); } catch (MalformedURLException e) { DevCapes.logger.error(String.format("Are you crazy?? \"%s\" is not a valid URL!", url)); e.printStackTrace(); } return cape; } }