private Map invert(Map map) {
		Set entries = map.entrySet();
		Iterator it = entries.iterator();
		Map inverse = null;
		try {
			inverse = (Map) map.getClass().newInstance();
			while (it.hasNext()) {
				Map.Entry entry = (Map.Entry) it.next();
				inverse.put(entry.getValue(), entry.getKey());
			}
		} catch (Throwable e) {

		}
		return inverse;
	}