You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2017/08/02 16:28:13 UTC
isis git commit: ISIS-1688: honours both @DomainServiceLayout and
@DomainService menuOrder when determining priority
Repository: isis
Updated Branches:
refs/heads/master 28fdfeb5e -> 9a2702c3d
ISIS-1688: honours both @DomainServiceLayout and @DomainService menuOrder when determining priority
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/9a2702c3
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/9a2702c3
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/9a2702c3
Branch: refs/heads/master
Commit: 9a2702c3de2ed93b8737f687d8ff07a1c9aec0d7
Parents: 28fdfeb
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Wed Aug 2 17:28:07 2017 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Wed Aug 2 17:28:07 2017 +0100
----------------------------------------------------------------------
.../ServicesInstallerFromAnnotation.java | 23 +++++++++++++++-----
1 file changed, 18 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/9a2702c3/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServicesInstallerFromAnnotation.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServicesInstallerFromAnnotation.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServicesInstallerFromAnnotation.java
index 2fe04ef..9f2da65 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServicesInstallerFromAnnotation.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServicesInstallerFromAnnotation.java
@@ -236,12 +236,25 @@ public class ServicesInstallerFromAnnotation extends ServicesInstallerAbstract {
private static String orderOf(final Class<?> cls) {
final DomainServiceLayout domainServiceLayout = cls.getAnnotation(DomainServiceLayout.class);
- String order = domainServiceLayout != null ? domainServiceLayout.menuOrder(): null;
- if(order == null || order.equals("" + Integer.MAX_VALUE)) {
- final DomainService domainService = cls.getAnnotation(DomainService.class);
- order = domainService != null ? domainService.menuOrder() : "" + Integer.MAX_VALUE;
+ String dslayoutOrder = domainServiceLayout != null ? domainServiceLayout.menuOrder(): null;
+ final DomainService domainService = cls.getAnnotation(DomainService.class);
+ String dsOrder = domainService != null ? domainService.menuOrder() : "" + Integer.MAX_VALUE;
+
+ return minimumOf(dslayoutOrder, dsOrder);
+ }
+
+ private static String minimumOf(final String dslayoutOrder, final String dsOrder) {
+ if(isUndefined(dslayoutOrder)) {
+ return dsOrder;
}
- return order;
+ if(isUndefined(dsOrder)) {
+ return dslayoutOrder;
+ }
+ return dslayoutOrder.compareTo(dsOrder) < 0 ? dslayoutOrder : dsOrder;
+ }
+
+ private static boolean isUndefined(final String str) {
+ return str == null || str.equals("" + Integer.MAX_VALUE);
}
private static String nameOf(final Class<?> cls) {