Rather than having an ungrammatical classification into arbitrary compound types, it would make more sense to have a basic separation of head&head compound vs modifiers. Basically, it would be separating into
[prefixed modifiers] [head word + possible compound dependents] [postfixed modifiers]
Where a basic separation would be accomplished by getHeadCompound() and getModifiers(), while specific types of modifiers could be accessed through more specific getters.
Rather than having an ungrammatical classification into arbitrary compound types, it would make more sense to have a basic separation of head&head compound vs modifiers. Basically, it would be separating into
[prefixed modifiers] [head word + possible compound dependents] [postfixed modifiers]
Where a basic separation would be accomplished by getHeadCompound() and getModifiers(), while specific types of modifiers could be accessed through more specific getters.