public void overideGroup(Group g, Entity proxy) {
		if (groups.containsValue(g) == false) {
			throw new IllegalArgumentException();
		}
		if (entities.containsKey(proxy.getCode())) {
			throw new IllegalArgumentException();
		}
		if (entities.containsValue(proxy)) {
			throw new IllegalArgumentException();
		}
		for (final ListIterator<Link> it = links.listIterator(); it.hasNext();) {
			final Link link = it.next();
			final Link newLink = link.mute(g, proxy);
			if (newLink == null) {
				it.remove();
			} else if (newLink != link) {
				it.set(newLink);
			}
		}
		groups.remove(g.getCode());
		assert groups.containsValue(g) == false;

		for (final Iterator<Entity> it = entities.values().iterator(); it.hasNext();) {
			final IEntity ent = it.next();
			if (ent.getParent() == g) {
				it.remove();
			}
		}
		entities.put(proxy.getCode(), proxy);
		// if (proxy.getImageFile() != null) {
		// proxy.addSubImage(proxy.getImageFile());
		// }
	}