private static Set<EEnum> getAllEEnumerations(EClass sysmlClass,
			LinkedHashSet<EEnum> linkedHashSet) {
		for (EAttribute eAttribute : sysmlClass.getEAllAttributes()) {
			if (eAttribute.getEType() instanceof EEnum) {
				EEnum eEnum = (EEnum) eAttribute.getEType();
				linkedHashSet.add(eEnum);
			}

		}
		for (EReference eReference : sysmlClass.getEAllReferences()) {
			// System.out.println("\t\t\t" + eReference.getName());
			if (eReference.getName().startsWith("base")) {
				// System.out
				// .println("\t\t\t\t" + eReference.getEType().getName());
				EClassifier umlClassifier = eReference.getEType();
				if (umlClassifier instanceof EClass) {
					EClass umlType = (EClass) umlClassifier;

					for (EAttribute umlAttribute : umlType.getEAllAttributes()) {
						if (umlAttribute.getName().equals("eAnnotations")) {
							continue;
						}
						if (umlAttribute.getEType() instanceof EEnum) {
							EEnum eEnum = (EEnum) umlAttribute.getEType();
							linkedHashSet.add(eEnum);
						}
					}
					for (EClass eSuperType : umlType.getESuperTypes()) {
						getAllEEnumerations(eSuperType, linkedHashSet);
					}
				}

			}
		}
		return linkedHashSet;
	}