@Override
    public String getName(DMNType type) {
        String name = type.getName();
        DMNType belongingType = ((BaseDMNTypeImpl) type).getBelongingType(); // internals for anonymous inner types.
        while (belongingType != null) {
            name = belongingType.getName() + "_" + name;
            belongingType = ((BaseDMNTypeImpl) belongingType).getBelongingType();
        }
        name = CodegenStringUtil.escapeIdentifier(name);
        return name;
    }
@Test
    void test() {
        DefaultNamingPolicy ut = new DefaultNamingPolicy("#/definitions/");

        assertThat(ut.getName(unregisteredType("tPerson"))).isEqualTo("tPerson");
        assertThat(ut.getName(unregisteredType("my person type"))).isEqualTo("my_32person_32type");
        assertThat(ut.getName(unregisteredType("my_person_type"))).isEqualTo("my__person__type");
        assertThat(ut.getName(unregisteredType("my-person-type"))).isEqualTo("my_45person_45type");
    }