Skip to content

Commit 2eb137c

Browse files
authored
fix: getAspectClassNames to handle union alias (#477)
1 parent af8812b commit 2eb137c

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

dao-api/src/main/java/com/linkedin/metadata/dao/utils/ModelUtils.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -929,7 +929,9 @@ public static <ASPECT_UNION extends UnionTemplate> List<String> getAspectClassNa
929929
try {
930930
final UnionTemplate unionTemplate = unionClass.newInstance();
931931
final UnionDataSchema unionDataSchema = (UnionDataSchema) unionTemplate.schema();
932-
return unionDataSchema.getMembers().stream().map(UnionDataSchema.Member::getUnionMemberKey).collect(Collectors.toList());
932+
return unionDataSchema.getMembers().stream().map(
933+
member -> member.hasAlias() ? member.getType().getUnionMemberKey() : member.getUnionMemberKey()
934+
).collect(Collectors.toList());
933935
} catch (Exception e) {
934936
throw new RuntimeException(e);
935937
}

dao-api/src/test/java/com/linkedin/metadata/dao/utils/ModelUtilsTest.java

+7
Original file line numberDiff line numberDiff line change
@@ -601,6 +601,13 @@ public void testGetAspectClassNames() {
601601
assertEquals(classNames.get(1), "com.linkedin.testing.EntityBar");
602602
}
603603

604+
@Test
605+
public void testGetAspectClassNamesWithAlias() {
606+
List<String> classNames = ModelUtils.getAspectClassNames(EntityUnionAlias.class);
607+
assertEquals(classNames.get(0), "com.linkedin.testing.EntityFoo");
608+
assertEquals(classNames.get(1), "com.linkedin.testing.EntityBar");
609+
}
610+
604611
@Test
605612
public void testGetUnionClassFromSnapshot() {
606613
Class<UnionTemplate> unionTemplate = ModelUtils.getUnionClassFromSnapshot(EntitySnapshot.class);

0 commit comments

Comments
 (0)