|
18 | 18 | import java.util.stream.Collectors; |
19 | 19 |
|
20 | 20 | import org.jmolecules.stereotype.tooling.HierarchicalNodeHandler; |
| 21 | +import org.jmolecules.stereotype.tooling.LabelUtils; |
21 | 22 | import org.jmolecules.stereotype.tooling.ProjectTree; |
22 | 23 | import org.jmolecules.stereotype.tooling.SimpleLabelProvider; |
23 | 24 | import org.jmolecules.stereotype.tooling.StructureProvider.SimpleStructureProvider; |
@@ -51,8 +52,11 @@ private Node nodeFrom(StereotypeCatalogRegistry stereotypeCatalogRegistry, Sprin |
51 | 52 | var factory = new IndexBasedStereotypeFactory(catalog, springIndex); |
52 | 53 | factory.registerStereotypeDefinitions(); |
53 | 54 |
|
54 | | - var labels = SimpleLabelProvider.forPackage(StereotypePackageElement::getPackageName, StereotypeClassElement::getType, |
55 | | - (StereotypeMethodElement m, StereotypeClassElement __) -> m.getMethodName(), Object::toString); |
| 55 | + StereotypePackageElement mainApplicationPackage = identifyMainApplicationPackage(project, springIndex); |
| 56 | + |
| 57 | + var labels = new SimpleLabelProvider<>(StereotypePackageElement::getPackageName, StereotypePackageElement::getPackageName, StereotypeClassElement::getType, |
| 58 | + (StereotypeMethodElement m, StereotypeClassElement __) -> m.getMethodName(), Object::toString) |
| 59 | + .withTypeLabel(it -> abbreviate(mainApplicationPackage, it)); |
56 | 60 |
|
57 | 61 | SimpleStructureProvider<StereotypePackageElement, StereotypePackageElement, StereotypeClassElement, StereotypeMethodElement> structureProvider = |
58 | 62 | new SimpleStructureProvider<StereotypePackageElement, StereotypePackageElement, StereotypeClassElement, StereotypeMethodElement>() { |
@@ -88,10 +92,19 @@ public Collection<StereotypeClassElement> extractTypes(StereotypePackageElement |
88 | 92 | .withGrouper("org.jmolecules.architecture") |
89 | 93 | .withGrouper("org.jmolecules.ddd", "org.jmolecules.event", "spring", "jpa", "java"); |
90 | 94 |
|
91 | | - jsonTree.process(identifyMainApplicationPackage(project, springIndex)); |
| 95 | + jsonTree.process(mainApplicationPackage); |
92 | 96 |
|
93 | 97 | return jsonHandler.getRoot(); |
94 | 98 | } |
| 99 | + |
| 100 | + private String abbreviate(StereotypePackageElement mainApplicationPackage, StereotypeClassElement it) { |
| 101 | + if (mainApplicationPackage == null || mainApplicationPackage.getPackageName() == null || mainApplicationPackage.getPackageName().isBlank()) { |
| 102 | + return it.getType(); |
| 103 | + } |
| 104 | + else { |
| 105 | + return LabelUtils.abbreviate(it.getType(), mainApplicationPackage.getPackageName()); |
| 106 | + } |
| 107 | + } |
95 | 108 |
|
96 | 109 | public StereotypePackageElement identifyMainApplicationPackage(IJavaProject project, SpringMetamodelIndex springIndex) { |
97 | 110 | List<StereotypeClassElement> classNodes = springIndex.getNodesOfType(project.getElementName(), StereotypeClassElement.class); |
|
0 commit comments