public static Set<Property> getAllProperties(Interface inf) { Set<Property> result = new HashSet<Property>(); result.addAll(inf.getAllAttributes()); Set<Association> associations = getAllAssociations(inf); for (Association association : associations) { List<Property> memberEnds = association.getMemberEnds(); for (Property property : memberEnds) { if (!UmlgClassOperations.isSpecializationOf(inf, property.getType())) { result.add(property); } } } return result; }