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 2021/05/24 14:23:40 UTC
[isis] 03/05: ISIS-2614: converts api.ApplicationTenancy from
interface to an abstract class
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch ISIS-2614
in repository https://gitbox.apache.org/repos/asf/isis.git
commit 75f6f13f8431a8780c39bef6d13c1a0b39ae4f8f
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Mon May 24 14:38:03 2021 +0100
ISIS-2614: converts api.ApplicationTenancy from interface to an abstract class
---
.../secman/api/tenancy/dom/ApplicationTenancy.java | 84 ++++++++++++++++------
.../dom/ApplicationTenancy.layout.fallback.xml | 0
.../secman/jdo/tenancy/dom/ApplicationTenancy.java | 43 +----------
.../dom/ApplicationTenancy.layout.fallback.xml | 67 -----------------
.../secman/jpa/tenancy/dom/ApplicationTenancy.java | 49 ++-----------
5 files changed, 71 insertions(+), 172 deletions(-)
diff --git a/extensions/security/secman/api/src/main/java/org/apache/isis/extensions/secman/api/tenancy/dom/ApplicationTenancy.java b/extensions/security/secman/api/src/main/java/org/apache/isis/extensions/secman/api/tenancy/dom/ApplicationTenancy.java
index 2011e72..40879d3 100644
--- a/extensions/security/secman/api/src/main/java/org/apache/isis/extensions/secman/api/tenancy/dom/ApplicationTenancy.java
+++ b/extensions/security/secman/api/src/main/java/org/apache/isis/extensions/secman/api/tenancy/dom/ApplicationTenancy.java
@@ -23,6 +23,7 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.Collection;
+import java.util.Comparator;
import org.apache.isis.applib.annotation.CollectionLayout;
import org.apache.isis.applib.annotation.DomainObject;
@@ -32,6 +33,10 @@ import org.apache.isis.applib.annotation.ParameterLayout;
import org.apache.isis.applib.annotation.Property;
import org.apache.isis.applib.annotation.PropertyLayout;
import org.apache.isis.applib.annotation.Where;
+import org.apache.isis.applib.util.Equality;
+import org.apache.isis.applib.util.Hashing;
+import org.apache.isis.applib.util.ObjectContracts;
+import org.apache.isis.applib.util.ToString;
import org.apache.isis.extensions.secman.api.IsisModuleExtSecmanApi;
/**
@@ -40,25 +45,25 @@ import org.apache.isis.extensions.secman.api.IsisModuleExtSecmanApi;
@DomainObject(
objectType = ApplicationTenancy.OBJECT_TYPE
)
-public interface ApplicationTenancy extends Comparable<ApplicationTenancy> {
+public abstract class ApplicationTenancy implements Comparable<ApplicationTenancy> {
- String OBJECT_TYPE = IsisModuleExtSecmanApi.NAMESPACE + ".ApplicationTenancy";
-
- String NAMED_QUERY_FIND_BY_NAME = "ApplicationTenancy.findByName";
- String NAMED_QUERY_FIND_BY_PATH = "ApplicationTenancy.findByPath";
- String NAMED_QUERY_FIND_BY_NAME_OR_PATH_MATCHING = "ApplicationTenancy.findByNameOrPathMatching";
+ public static final String OBJECT_TYPE = IsisModuleExtSecmanApi.NAMESPACE + ".ApplicationTenancy";
+ public static final String NAMED_QUERY_FIND_BY_NAME = "ApplicationTenancy.findByName";
+ public static final String NAMED_QUERY_FIND_BY_PATH = "ApplicationTenancy.findByPath";
+ public static final String NAMED_QUERY_FIND_BY_NAME_OR_PATH_MATCHING = "ApplicationTenancy.findByNameOrPathMatching";
// -- DOMAIN EVENTS
- abstract class PropertyDomainEvent<T> extends IsisModuleExtSecmanApi.PropertyDomainEvent<ApplicationTenancy, T> {}
- abstract class CollectionDomainEvent<T> extends IsisModuleExtSecmanApi.CollectionDomainEvent<ApplicationTenancy, T> {}
- abstract class ActionDomainEvent extends IsisModuleExtSecmanApi.ActionDomainEvent<ApplicationTenancy> {}
+ public static abstract class PropertyDomainEvent<T> extends IsisModuleExtSecmanApi.PropertyDomainEvent<ApplicationTenancy, T> {}
+ public static abstract class CollectionDomainEvent<T> extends IsisModuleExtSecmanApi.CollectionDomainEvent<ApplicationTenancy, T> {}
+ public static abstract class ActionDomainEvent extends IsisModuleExtSecmanApi.ActionDomainEvent<ApplicationTenancy> {}
+
// -- MODEL
- default String title() {
+ public String title() {
return getName();
}
@@ -84,7 +89,7 @@ public interface ApplicationTenancy extends Comparable<ApplicationTenancy> {
)
@Target({ ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER, ElementType.ANNOTATION_TYPE })
@Retention(RetentionPolicy.RUNTIME)
- @interface Name {
+ public @interface Name {
int MAX_LENGTH = 120;
int TYPICAL_LENGTH = 20;
@@ -92,8 +97,8 @@ public interface ApplicationTenancy extends Comparable<ApplicationTenancy> {
}
@Name
- String getName();
- void setName(String name);
+ public abstract String getName();
+ public abstract void setName(String name);
// -- PATH
@@ -108,20 +113,19 @@ public interface ApplicationTenancy extends Comparable<ApplicationTenancy> {
)
@Target({ ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER, ElementType.ANNOTATION_TYPE })
@Retention(RetentionPolicy.RUNTIME)
- @interface Path {
+ public @interface Path {
int MAX_LENGTH = 255;
class DomainEvent extends PropertyDomainEvent<String> {}
}
@Path
- String getPath();
- void setPath(String path);
+ public abstract String getPath();
+ public abstract void setPath(String path);
// -- PARENT
-
@Property(
domainEvent = Parent.DomainEvent.class,
editing = Editing.DISABLED
@@ -133,13 +137,13 @@ public interface ApplicationTenancy extends Comparable<ApplicationTenancy> {
)
@Target({ ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER, ElementType.ANNOTATION_TYPE })
@Retention(RetentionPolicy.RUNTIME)
- @interface Parent {
+ public @interface Parent {
class DomainEvent extends PropertyDomainEvent<ApplicationTenancy> {}
}
@Parent
- ApplicationTenancy getParent();
- void setParent(ApplicationTenancy parent);
+ public abstract ApplicationTenancy getParent();
+ public abstract void setParent(ApplicationTenancy parent);
@@ -153,12 +157,48 @@ public interface ApplicationTenancy extends Comparable<ApplicationTenancy> {
)
@Target({ ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER, ElementType.ANNOTATION_TYPE })
@Retention(RetentionPolicy.RUNTIME)
- @interface Children {
+ public @interface Children {
class DomainEvent extends CollectionDomainEvent<ApplicationTenancy> {}
}
@Children
- Collection<ApplicationTenancy> getChildren();
+ public abstract Collection<ApplicationTenancy> getChildren();
+
+
+
+ // -- CONTRACT
+
+ private static final Equality<ApplicationTenancy> equality =
+ ObjectContracts.checkEquals(ApplicationTenancy::getPath);
+
+ private static final Hashing<ApplicationTenancy> hashing =
+ ObjectContracts.hashing(ApplicationTenancy::getPath);
+
+ private static final ToString<ApplicationTenancy> toString =
+ ObjectContracts.toString("path", ApplicationTenancy::getPath)
+ .thenToString("name", ApplicationTenancy::getName);
+ private static final Comparator<ApplicationTenancy> comparator =
+ Comparator.comparing(ApplicationTenancy::getPath);
+
+ @Override
+ public int compareTo(final org.apache.isis.extensions.secman.api.tenancy.dom.ApplicationTenancy other) {
+ return comparator.compare(this, (ApplicationTenancy) other);
+ }
+
+ @Override
+ public boolean equals(final Object other) {
+ return equality.equals(this, other);
+ }
+
+ @Override
+ public int hashCode() {
+ return hashing.hashCode(this);
+ }
+
+ @Override
+ public String toString() {
+ return toString.toString(this);
+ }
}
diff --git a/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/tenancy/dom/ApplicationTenancy.layout.fallback.xml b/extensions/security/secman/api/src/main/java/org/apache/isis/extensions/secman/api/tenancy/dom/ApplicationTenancy.layout.fallback.xml
similarity index 100%
rename from extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/tenancy/dom/ApplicationTenancy.layout.fallback.xml
rename to extensions/security/secman/api/src/main/java/org/apache/isis/extensions/secman/api/tenancy/dom/ApplicationTenancy.layout.fallback.xml
diff --git a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/tenancy/dom/ApplicationTenancy.java b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/tenancy/dom/ApplicationTenancy.java
index deb3383..8ca5bff 100644
--- a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/tenancy/dom/ApplicationTenancy.java
+++ b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/tenancy/dom/ApplicationTenancy.java
@@ -18,7 +18,6 @@
*/
package org.apache.isis.extensions.secman.jdo.tenancy.dom;
-import java.util.Comparator;
import java.util.SortedSet;
import java.util.TreeSet;
@@ -41,10 +40,6 @@ import javax.jdo.annotations.VersionStrategy;
import org.apache.isis.applib.annotation.BookmarkPolicy;
import org.apache.isis.applib.annotation.DomainObject;
import org.apache.isis.applib.annotation.DomainObjectLayout;
-import org.apache.isis.applib.util.Equality;
-import org.apache.isis.applib.util.Hashing;
-import org.apache.isis.applib.util.ObjectContracts;
-import org.apache.isis.applib.util.ToString;
import org.apache.isis.commons.internal.base._Casts;
@@ -88,10 +83,11 @@ import org.apache.isis.commons.internal.base._Casts;
bookmarking = BookmarkPolicy.AS_ROOT
)
public class ApplicationTenancy
- implements org.apache.isis.extensions.secman.api.tenancy.dom.ApplicationTenancy {
+ extends org.apache.isis.extensions.secman.api.tenancy.dom.ApplicationTenancy {
protected final static String FQCN = "org.apache.isis.extensions.secman.jdo.tenancy.dom.ApplicationTenancy";
+
// -- NAME
@Column(allowsNull ="false", length = Name.MAX_LENGTH)
@@ -161,39 +157,4 @@ public class ApplicationTenancy
}
- // -- CONTRACT
-
- private static final Equality<ApplicationTenancy> equality =
- ObjectContracts.checkEquals(ApplicationTenancy::getPath);
-
- private static final Hashing<ApplicationTenancy> hashing =
- ObjectContracts.hashing(ApplicationTenancy::getPath);
-
- private static final ToString<ApplicationTenancy> toString =
- ObjectContracts.toString("path", ApplicationTenancy::getPath)
- .thenToString("name", ApplicationTenancy::getName);
-
- private static final Comparator<ApplicationTenancy> comparator =
- Comparator.comparing(ApplicationTenancy::getPath);
-
- @Override
- public int compareTo(final org.apache.isis.extensions.secman.api.tenancy.dom.ApplicationTenancy other) {
- return comparator.compare(this, (ApplicationTenancy) other);
- }
-
- @Override
- public boolean equals(final Object other) {
- return equality.equals(this, other);
- }
-
- @Override
- public int hashCode() {
- return hashing.hashCode(this);
- }
-
- @Override
- public String toString() {
- return toString.toString(this);
- }
-
}
diff --git a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/tenancy/dom/ApplicationTenancy.layout.fallback.xml b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/tenancy/dom/ApplicationTenancy.layout.fallback.xml
deleted file mode 100644
index e991bcc..0000000
--- a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/tenancy/dom/ApplicationTenancy.layout.fallback.xml
+++ /dev/null
@@ -1,67 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements. See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership. The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied. See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<bs3:grid
- xsi:schemaLocation="http://isis.apache.org/applib/layout/component http://isis.apache.org/applib/layout/component/component.xsd http://isis.apache.org/applib/layout/grid/bootstrap3 http://isis.apache.org/applib/layout/grid/bootstrap3/bootstrap3.xsd"
- xmlns:bs3="http://isis.apache.org/applib/layout/grid/bootstrap3"
- xmlns:cpt="http://isis.apache.org/applib/layout/component"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <bs3:row>
- <bs3:col span="12" unreferencedActions="true">
- <cpt:domainObject/>
- </bs3:col>
- </bs3:row>
- <bs3:row>
- <bs3:col span="4">
- <bs3:tabGroup>
- <bs3:tab name="Identity">
- <bs3:row>
- <bs3:col span="12">
- <cpt:fieldSet name="Identity" id="identity"/>
- </bs3:col>
- </bs3:row>
- </bs3:tab>
- <bs3:tab name="Other">
- <bs3:row>
- <bs3:col span="12">
- <cpt:fieldSet name="Other" id="other" unreferencedProperties="true"/>
- </bs3:col>
- </bs3:row>
- </bs3:tab>
- <bs3:tab name="Metadata">
- <bs3:row>
- <bs3:col span="12">
- <cpt:fieldSet name="Metadata" id="metadata"/>
- </bs3:col>
- </bs3:row>
- </bs3:tab>
- </bs3:tabGroup>
- <cpt:fieldSet name="Details" id="details"/>
- </bs3:col>
- <bs3:col span="8">
- <cpt:collection id="children"/>
- <cpt:collection id="users"/>
- </bs3:col>
- </bs3:row>
- <bs3:row>
- <bs3:col span="12">
- <bs3:tabGroup unreferencedCollections="true"/>
- </bs3:col>
- </bs3:row>
-</bs3:grid>
diff --git a/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/tenancy/dom/ApplicationTenancy.java b/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/tenancy/dom/ApplicationTenancy.java
index 55f0a0c..8d5f96a 100644
--- a/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/tenancy/dom/ApplicationTenancy.java
+++ b/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/tenancy/dom/ApplicationTenancy.java
@@ -18,13 +18,13 @@
*/
package org.apache.isis.extensions.secman.jpa.tenancy.dom;
-import java.util.Comparator;
import java.util.Set;
import java.util.SortedSet;
import java.util.TreeSet;
import javax.persistence.Column;
import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
@@ -33,14 +33,11 @@ import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
+import javax.persistence.Version;
import org.apache.isis.applib.annotation.BookmarkPolicy;
import org.apache.isis.applib.annotation.DomainObject;
import org.apache.isis.applib.annotation.DomainObjectLayout;
-import org.apache.isis.applib.util.Equality;
-import org.apache.isis.applib.util.Hashing;
-import org.apache.isis.applib.util.ObjectContracts;
-import org.apache.isis.applib.util.ToString;
import org.apache.isis.commons.internal.base._Casts;
@@ -80,7 +77,11 @@ import org.apache.isis.commons.internal.base._Casts;
bookmarking = BookmarkPolicy.AS_ROOT
)
public class ApplicationTenancy
- implements org.apache.isis.extensions.secman.api.tenancy.dom.ApplicationTenancy {
+ extends org.apache.isis.extensions.secman.api.tenancy.dom.ApplicationTenancy {
+
+
+ @Version
+ private Long version;
// -- NAME
@@ -118,7 +119,6 @@ public class ApplicationTenancy
// -- PARENT
-
@ManyToOne
@JoinColumn(name="parentPath", nullable = true)
private ApplicationTenancy parent;
@@ -153,39 +153,4 @@ public class ApplicationTenancy
}
- // -- CONTRACT
-
- private static final Equality<ApplicationTenancy> equality =
- ObjectContracts.checkEquals(ApplicationTenancy::getPath);
-
- private static final Hashing<ApplicationTenancy> hashing =
- ObjectContracts.hashing(ApplicationTenancy::getPath);
-
- private static final ToString<ApplicationTenancy> toString =
- ObjectContracts.toString("path", ApplicationTenancy::getPath)
- .thenToString("name", ApplicationTenancy::getName);
-
- private static final Comparator<ApplicationTenancy> comparator =
- Comparator.comparing(ApplicationTenancy::getPath);
-
- @Override
- public int compareTo(final org.apache.isis.extensions.secman.api.tenancy.dom.ApplicationTenancy other) {
- return comparator.compare(this, (ApplicationTenancy)other);
- }
-
- @Override
- public boolean equals(final Object other) {
- return equality.equals(this, other);
- }
-
- @Override
- public int hashCode() {
- return hashing.hashCode(this);
- }
-
- @Override
- public String toString() {
- return toString.toString(this);
- }
-
}