1 18 19 package com.martiansoftware.nailgun; 20 21 import java.util.Iterator ; 22 import java.util.Map ; 23 import java.util.Properties ; 24 import java.util.Set ; 25 26 32 public class AliasManager { 33 34 37 private Map aliases; 38 39 43 public AliasManager() { 44 aliases = new java.util.HashMap (); 45 46 try { 47 Properties props = new Properties (); 48 props.load(getClass().getClassLoader().getResourceAsStream("com/martiansoftware/nailgun/builtins/builtins.properties")); 49 loadFromProperties(props); 50 } catch (java.io.IOException e) { 51 System.err.println("Unable to load builtins.properties: " + e.getMessage()); 52 } 53 } 54 55 71 public void loadFromProperties(java.util.Properties properties) { 72 for (Iterator i = properties.keySet().iterator(); i.hasNext();) { 73 String key = (String ) i.next(); 74 if (!key.endsWith(".desc")) { 75 try { 76 Class clazz = Class.forName(properties.getProperty(key)); 77 String desc = properties.getProperty(key + ".desc", ""); 78 addAlias(new Alias(key, desc, clazz)); 79 } catch (ClassNotFoundException e) { 80 System.err.println("Unable to locate class " + properties.getProperty(key)); 81 } 82 } 83 } 84 } 85 86 91 public void addAlias(Alias alias) { 92 synchronized (aliases) { 93 aliases.put(alias.getName(), alias); 94 } 95 } 96 97 103 public Set getAliases() { 104 Set result = new java.util.TreeSet (); 105 synchronized(aliases) { 106 result.addAll(aliases.values()); 107 } 108 return (result); 109 } 110 111 116 public void removeAlias(String aliasName) { 117 synchronized (aliases) { 118 aliases.remove(aliasName); 119 } 120 } 121 122 128 public Alias getAlias(String aliasName) { 129 return ((Alias) aliases.get(aliasName)); 130 } 131 132 } 133 | Popular Tags |