private DrawFile getDrawFileFromHref(final String href) throws IOException {
		if (diagram.getUmlDiagramType() == UmlDiagramType.CLASS || diagram.getUmlDiagramType() == UmlDiagramType.OBJECT) {
			final DrawFile drawFile = staticFilesMap.getDrawFile(href);
			if (drawFile != null) {
				return drawFile;
			}
		}
		final File searched = new File(href).getCanonicalFile();

		final DrawFile result = searchImageFile(searched, diagram.entities().values());
		if (result != null) {
			return result;
		}

		for (Link ent : diagram.getLinks()) {
			final DrawFile df = ent.getImageFile();
			if (df == null) {
				continue;
			}
			if (df.getPng().getCanonicalFile().equals(searched)) {
				return df;
			}
		}
		Log.error("Cannot find " + href);
		return null;
	}