private ILeaf getOrCreateLeaf(DescriptionDiagram diagram, final Code code2) {
		final String code = code2.getFullName();
		if (code.startsWith("()")) {
			return diagram.getOrCreateLeaf(
					Code.of(StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(code.substring(2).trim())),
					LeafType.DESCRIPTION, USymbol.INTERFACE);
		}
		final char codeChar = code.length() > 2 ? code.charAt(0) : 0;
		if (codeChar == '(') {
			return diagram.getOrCreateLeaf(code2.eventuallyRemoveStartingAndEndingDoubleQuote(), LeafType.USECASE,
					USymbol.USECASE);
		} else if (codeChar == ':') {
			return diagram.getOrCreateLeaf(code2.eventuallyRemoveStartingAndEndingDoubleQuote(), LeafType.DESCRIPTION,
					USymbol.ACTOR);
		} else if (codeChar == '[') {
			final USymbol sym = diagram.getSkinParam().useUml2ForComponent() ? USymbol.COMPONENT2 : USymbol.COMPONENT1;
			return diagram.getOrCreateLeaf(code2.eventuallyRemoveStartingAndEndingDoubleQuote(), LeafType.DESCRIPTION,
					sym);
		}

		return diagram.getOrCreateLeaf(code2, null, null);
	}