function listFeatureTypesAttributes($stereotype, $parent, $class, $with_first_attrib_name = false) { $this->logger->log('<br><b>Klasse: ' . $class['name'] . '</b> (' . $class['xmi_id'] . ')'); # Erzeuge FeatueType $featureType = new FeatureType($class['name'], $parent, $this->logger, $this->umlSchema); $featureType->setId($class['id']); $featureType->primaryKey = 'gml_id'; if ($parent != null) { $this->logger->log(' abgeleitet von: <b>' . $parent->alias . '</b>'); } $featureType->getAttributesUntilLeafs($featureType->alias, $stereotype, array()); $featureType->flattenAttributes(); # lade abgeleitete Klassen $subClasses = $this->umlSchema->getSubUmlClasses($stereotype, $class); if (empty($subClasses)) { if ($with_first_attrib_name) { $featureType->unifyShortNamesWithFirst(1); } else { $featureType->unifyShortNames(1); } $this->renameList = array_merge($this->renameList, $featureType->outputFlattenedAttributes()); if ($this->logger->level > 0) { $featureType->outputFlattendedAttributTable(); } } foreach ($subClasses as $subClass) { $this->listFeatureTypesAttributes($stereotype, $featureType, $subClass, $with_first_attrib_name); } }