diff --git a/o11nplugin-contrail-config/buildNumber.properties b/o11nplugin-contrail-config/buildNumber.properties index 432e74dc..debfd364 100644 --- a/o11nplugin-contrail-config/buildNumber.properties +++ b/o11nplugin-contrail-config/buildNumber.properties @@ -1,3 +1,3 @@ #maven.buildNumber.plugin properties file -#Fri Apr 20 16:54:21 CEST 2018 -buildNumber=1290 +#Thu Apr 26 13:03:36 CEST 2018 +buildNumber=1309 diff --git a/o11nplugin-contrail-config/src/main/kotlin/net/juniper/contrail/vro/config/Config.kt b/o11nplugin-contrail-config/src/main/kotlin/net/juniper/contrail/vro/config/Config.kt index 2a146812..cabfb1e4 100644 --- a/o11nplugin-contrail-config/src/main/kotlin/net/juniper/contrail/vro/config/Config.kt +++ b/o11nplugin-contrail-config/src/main/kotlin/net/juniper/contrail/vro/config/Config.kt @@ -17,6 +17,7 @@ val modelClasses = setOf( the(), the(), the(), + the(), the(), the(), the(), @@ -110,9 +111,14 @@ val hiddenRoots = setOf( val hiddenRelations = setOf( pair(), pair(), + pair(), pair() ) +val relationAsProperty = setOf( + pair() +) + val reversedRelations = setOf( pair() ) @@ -167,6 +173,12 @@ fun ObjectClass.isRelationEditable(child: ObjectClass) = ! child.isInternal && ! nonEditableReference.containsUnordered(simpleName, child.simpleName) +fun Class<*>.isInPropertyRelationTo(child: Class<*>) = + relationAsProperty.contains(simpleName, child.simpleName) + +private fun Set>.contains(first: T, second: T) = + contains(Pair(first, second)) + private fun Set>.containsUnordered(first: T, second: T) = contains(Pair(first, second)) || contains(Pair(second, first)) diff --git a/o11nplugin-contrail-custom/src/main/kotlin/net/juniper/contrail/vro/CustomReferenceProperty.kt b/o11nplugin-contrail-custom/src/main/kotlin/net/juniper/contrail/vro/CustomReferenceProperty.kt index 3d570ade..bd136c69 100644 --- a/o11nplugin-contrail-custom/src/main/kotlin/net/juniper/contrail/vro/CustomReferenceProperty.kt +++ b/o11nplugin-contrail-custom/src/main/kotlin/net/juniper/contrail/vro/CustomReferenceProperty.kt @@ -5,6 +5,7 @@ package net.juniper.contrail.vro import net.juniper.contrail.vro.config.backReferenceClass +import net.juniper.contrail.vro.config.isInPropertyRelationTo import net.juniper.contrail.vro.config.refsPropertyPrefix import net.juniper.contrail.vro.config.refsPropertySuffix import net.juniper.contrail.vro.config.isInReversedRelationTo @@ -30,5 +31,8 @@ val Method.referencePropertyClass get() = referenceClass ?: backReferenceClass val Method.isReferenceProperty get() = - referenceClass?.let { declaringClass.isInReversedRelationTo(it) } ?: false || + referenceClass?.let { + declaringClass.isInReversedRelationTo(it) || + declaringClass.isInPropertyRelationTo(it) + } ?: false || backReferenceClass?.let { !declaringClass.isInReversedRelationTo(it) } ?: false