// Loop of the selected types list.
logger.config("Included object types: " + includedObjectType);
String[] typeList = includedObjectType.split(",");
for (String typeName : typeList) {
IType type = sess.getType(typeName);
logger.config("Type name: " + typeName + "; attribute count: "
+ type.getTypeAttrCount());
// Loop of the properties of each selected type.
ATTRIBUTES:
for (int i = 0; i < type.getTypeAttrCount(); i++) {
String attrName = type.getTypeAttrNameAt(i);
logger.config("Attribute name " + i + ": " + attrName);
Set<String> baseTypes = new HashSet<String>();
if (sysObjectAttrs.contains(attrName)) {
baseTypes.add("dm_sysobject");
} else if (!propertiesMap.containsKey(attrName)) {
baseTypes.add(typeName);
} else {
Set<String> currentTypes = propertiesMap.get(attrName);
logger.config(attrName + " previously found in types: "
+ currentTypes);
// Loop of the types we have already found for this attribute.
for (String currentTypeName : currentTypes) {
IType currentType = sess.getType(currentTypeName);
if (currentType.isSubTypeOf(typeName)) {
logger.config(typeName + " is supertype of " + currentTypeName);
baseTypes.add(typeName);
} else if (type.isSubTypeOf(currentTypeName)) {
// We don't need typeName for this attribute, so skip to
// the next attribute.