You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2021/05/05 08:32:57 UTC
[isis] branch master updated: ISIS-2645: GridSystemService: a bit
of housekeeping
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/master by this push:
new e3109d7 ISIS-2645: GridSystemService: a bit of housekeeping
e3109d7 is described below
commit e3109d75bf371160eba6f1432befdcc860e19d54
Author: Andi Huber <ah...@apache.org>
AuthorDate: Wed May 5 10:32:40 2021 +0200
ISIS-2645: GridSystemService: a bit of housekeeping
---
.../core/metamodel/IsisModuleCoreMetamodel.java | 4 +--
.../services/grid/GridSystemServiceAbstract.java | 29 ++++++----------------
...iceBS3.java => GridSystemServiceBootstrap.java} | 18 +++++++-------
.../bootstrap3/{GridModel.java => _GridModel.java} | 6 ++---
.../core/metamodel/spec/feature/ObjectMember.java | 29 ++++++++++------------
.../core/metamodel/services/grid/BS3GridTest.java | 6 ++---
6 files changed, 38 insertions(+), 54 deletions(-)
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/IsisModuleCoreMetamodel.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/IsisModuleCoreMetamodel.java
index 808c6f6..9a5e4c2 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/IsisModuleCoreMetamodel.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/IsisModuleCoreMetamodel.java
@@ -41,7 +41,7 @@ import org.apache.isis.core.metamodel.services.exceprecog.ExceptionRecognizerFor
import org.apache.isis.core.metamodel.services.grid.GridLoaderServiceDefault;
import org.apache.isis.core.metamodel.services.grid.GridReaderUsingJaxb;
import org.apache.isis.core.metamodel.services.grid.GridServiceDefault;
-import org.apache.isis.core.metamodel.services.grid.bootstrap3.GridSystemServiceBS3;
+import org.apache.isis.core.metamodel.services.grid.bootstrap3.GridSystemServiceBootstrap;
import org.apache.isis.core.metamodel.services.layout.LayoutServiceDefault;
import org.apache.isis.core.metamodel.services.metamodel.MetaModelServiceDefault;
import org.apache.isis.core.metamodel.services.registry.ServiceRegistryDefault;
@@ -85,7 +85,7 @@ import org.apache.isis.core.security.IsisModuleCoreSecurity;
GridLoaderServiceDefault.class,
GridReaderUsingJaxb.class,
GridServiceDefault.class,
- GridSystemServiceBS3.class,
+ GridSystemServiceBootstrap.class,
LayoutServiceDefault.class,
MetaModelServiceDefault.class,
ProgrammingModelServiceDefault.class,
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridSystemServiceAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridSystemServiceAbstract.java
index d103359..4024dd1 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridSystemServiceAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridSystemServiceAbstract.java
@@ -21,7 +21,6 @@ package org.apache.isis.core.metamodel.services.grid;
import java.util.LinkedHashSet;
import java.util.Set;
import java.util.concurrent.atomic.AtomicInteger;
-import java.util.stream.Stream;
import javax.inject.Inject;
@@ -78,11 +77,8 @@ import org.apache.isis.core.metamodel.facets.properties.propertylayout.RenderedA
import org.apache.isis.core.metamodel.facets.properties.propertylayout.TypicalLengthFacetForPropertyXml;
import org.apache.isis.core.metamodel.facets.properties.propertylayout.UnchangingFacetForPropertyXml;
import org.apache.isis.core.metamodel.layout.LayoutFacetUtil.MetamodelToGridOverridingVisitor;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.MixedIn;
import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
-import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
-import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
import static org.apache.isis.core.metamodel.facetapi.FacetUtil.addOrReplaceFacet;
@@ -100,7 +96,7 @@ implements GridSystemService<G> {
@Inject protected JaxbService jaxbService;
@Inject protected MessageService messageService;
@Inject IsisSystemEnvironment isisSystemEnvironment;
-
+
private final Class<G> gridImplementation;
private final String tns;
private final String schemaLocation;
@@ -109,7 +105,7 @@ implements GridSystemService<G> {
final Class<G> gridImplementation,
final String tns,
final String schemaLocation) {
-
+
this.gridImplementation = gridImplementation;
this.tns = tns;
this.schemaLocation = schemaLocation;
@@ -170,7 +166,7 @@ implements GridSystemService<G> {
/**
* Overwrites (replaces) any existing facets in the metamodel with info taken from the grid.
*
- * @implNote This code uses {@link FacetUtil#addOrReplaceFacet(Facet)}
+ * @implNote This code uses {@link FacetUtil#addOrReplaceFacet(Facet)}
* because the layout might be changed multiple times.
*/
private void overwriteFacets(
@@ -179,8 +175,8 @@ implements GridSystemService<G> {
val objectSpec = specificationLoader.specForTypeElseFail(domainClass);
- val oneToOneAssociationById = ObjectMember.mapById(getOneToOneAssociations(objectSpec));
- val oneToManyAssociationById = ObjectMember.mapById(getOneToManyAssociations(objectSpec));
+ val oneToOneAssociationById = ObjectMember.mapById(objectSpec.streamProperties(MixedIn.INCLUDED));
+ val oneToManyAssociationById = ObjectMember.mapById(objectSpec.streamCollections(MixedIn.INCLUDED));
val objectActionById = ObjectMember.mapById(objectSpec.streamActions(MixedIn.INCLUDED));
final AtomicInteger propertySequence = new AtomicInteger(0);
@@ -241,7 +237,7 @@ implements GridSystemService<G> {
}
addOrReplaceFacet(LayoutOrderFacetFromXml.create(memberOrderSequence, objectAction));
addOrReplaceFacet(LayoutGroupFacetFromXml.create(groupIdAndName, objectAction));
-
+
// fix up the action position if required
if(actionLayoutDataOwner instanceof FieldSet) {
@@ -302,7 +298,7 @@ implements GridSystemService<G> {
// nb for any given field set the sequence won't reset to zero; however this is what we want so that
// table columns are shown correctly (by fieldset, then property order within that fieldset).
final FieldSet fieldSet = propertyLayoutData.getOwner();
-
+
addOrReplaceFacet(LayoutOrderFacetFromXml.create(propertySequence.incrementAndGet(), oneToOneAssociation));
addOrReplaceFacet(LayoutGroupFacetFromXml.create(fieldSet, oneToOneAssociation));
}
@@ -317,7 +313,7 @@ implements GridSystemService<G> {
addOrReplaceFacet(CssClassFacetForCollectionXml.create(collectionLayoutData, oneToManyAssociation));
addOrReplaceFacet(DefaultViewFacetForCollectionXml.create(collectionLayoutData, oneToManyAssociation));
addOrReplaceFacet(DescribedAsFacetForCollectionXml.create(collectionLayoutData, oneToManyAssociation));
- addOrReplaceFacet(HiddenFacetForCollectionXml.create(collectionLayoutData, oneToManyAssociation));
+ addOrReplaceFacet(HiddenFacetForCollectionXml.create(collectionLayoutData, oneToManyAssociation));
// preserve translations
NamedFacet existingNamedFacet = oneToManyAssociation.getFacet(NamedFacet.class);
if(existingNamedFacet == null) {
@@ -331,15 +327,6 @@ implements GridSystemService<G> {
});
}
- protected static Stream<OneToOneAssociation> getOneToOneAssociations(final ObjectSpecification objectSpec) {
- return objectSpec.streamProperties(MixedIn.INCLUDED);
- }
-
- protected static Stream<OneToManyAssociation> getOneToManyAssociations(final ObjectSpecification objectSpec) {
- return objectSpec.streamCollections(MixedIn.INCLUDED);
- }
-
-
@Value(staticConstructor = "of")
protected static class SurplusAndMissing {
public final Set<String> surplus;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/bootstrap3/GridSystemServiceBS3.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/bootstrap3/GridSystemServiceBootstrap.java
similarity index 97%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/bootstrap3/GridSystemServiceBS3.java
rename to core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/bootstrap3/GridSystemServiceBootstrap.java
index f3ca834..555b49c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/bootstrap3/GridSystemServiceBS3.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/bootstrap3/GridSystemServiceBootstrap.java
@@ -75,19 +75,19 @@ import lombok.val;
import lombok.extern.log4j.Log4j2;
@Service
-@Named("isis.metamodel.GridSystemServiceBS3")
+@Named("isis.metamodel.GridSystemServiceBootstrap")
@Order(OrderPrecedence.MIDPOINT)
@Primary
-@Qualifier("BS3")
+@Qualifier("Bootstrap")
@Log4j2
-public class GridSystemServiceBS3 extends GridSystemServiceAbstract<BS3Grid> {
+public class GridSystemServiceBootstrap extends GridSystemServiceAbstract<BS3Grid> {
public static final String TNS = "http://isis.apache.org/applib/layout/grid/bootstrap3";
public static final String SCHEMA_LOCATION = "http://isis.apache.org/applib/layout/grid/bootstrap3/bootstrap3.xsd";
@Inject private GridReaderUsingJaxb gridReader;
- public GridSystemServiceBS3() {
+ public GridSystemServiceBootstrap() {
super(BS3Grid.class, TNS, SCHEMA_LOCATION);
}
@@ -174,15 +174,15 @@ public class GridSystemServiceBS3 extends GridSystemServiceAbstract<BS3Grid> {
val bs3Grid = (BS3Grid) grid;
val objectSpec = specificationLoader.specForTypeElseFail(domainClass);
- val oneToOneAssociationById = ObjectMember.mapById(getOneToOneAssociations(objectSpec));
- val oneToManyAssociationById = ObjectMember.mapById(getOneToManyAssociations(objectSpec));
+ val oneToOneAssociationById = ObjectMember.mapById(objectSpec.streamProperties(MixedIn.INCLUDED));
+ val oneToManyAssociationById = ObjectMember.mapById(objectSpec.streamCollections(MixedIn.INCLUDED));
val objectActionById = ObjectMember.mapById(objectSpec.streamActions(MixedIn.INCLUDED));
val propertyLayoutDataById = bs3Grid.getAllPropertiesById();
val collectionLayoutDataById = bs3Grid.getAllCollectionsById();
val actionLayoutDataById = bs3Grid.getAllActionsById();
- val gridModelIfValid = GridModel.createFrom(bs3Grid);
+ val gridModelIfValid = _GridModel.createFrom(bs3Grid);
if(!gridModelIfValid.isPresent()) { // only present if valid
return false;
}
@@ -336,7 +336,7 @@ public class GridSystemServiceBS3 extends GridSystemServiceAbstract<BS3Grid> {
for (final String actionId : sortedPossiblyMissingActionIds) {
val objectAction = objectActionById.get(actionId);
-
+
val layoutGroupFacet = objectAction.getFacet(LayoutGroupFacet.class);
if(layoutGroupFacet == null) {
continue;
@@ -401,7 +401,7 @@ public class GridSystemServiceBS3 extends GridSystemServiceAbstract<BS3Grid> {
}
}
- // ... the missing actions are those in the second tuple, excluding those associated
+ // ... the missing actions are those in the second tuple, excluding those associated
// (via @Action#associateWith) to a property or collection. (XXX comment might be outdated)
final List<String> missingActionIds = _Lists.newArrayList(sortedPossiblyMissingActionIds);
missingActionIds.removeAll(associatedActionIds);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/bootstrap3/GridModel.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/bootstrap3/_GridModel.java
similarity index 98%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/bootstrap3/GridModel.java
rename to core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/bootstrap3/_GridModel.java
index 28be252..95163eb 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/bootstrap3/GridModel.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/bootstrap3/_GridModel.java
@@ -41,7 +41,7 @@ import lombok.val;
* @since 2.0
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
-final class GridModel {
+final class _GridModel {
private final LinkedHashSet<String> allIds = _Sets.newLinkedHashSet();
private final LinkedHashMap<String, BS3Row> rows = _Maps.newLinkedHashMap();
private final LinkedHashMap<String, BS3Col> cols = _Maps.newLinkedHashMap();
@@ -77,9 +77,9 @@ final class GridModel {
* @param bs3Grid
* @return empty if not valid
*/
- public static Optional<GridModel> createFrom(BS3Grid bs3Grid) {
+ public static Optional<_GridModel> createFrom(BS3Grid bs3Grid) {
- val gridModel = new GridModel();
+ val gridModel = new _GridModel();
bs3Grid.visit(new BS3Grid.VisitorAdapter(){
@Override
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectMember.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectMember.java
index 74052a4..89263e7 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectMember.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectMember.java
@@ -24,8 +24,6 @@ import java.util.Map;
import java.util.Objects;
import java.util.stream.Stream;
-import javax.annotation.meta.When;
-
import org.apache.isis.applib.annotation.Where;
import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.commons.internal.collections._Maps;
@@ -67,7 +65,6 @@ public interface ObjectMember extends ObjectFeature {
*
* <p>
* Determined as per the {@link HiddenFacet} being present and
- * {@link HiddenFacet#when()} returning {@link When#ALWAYS}, and
* {@link HiddenFacet#where()} returning {@link Where#ANYWHERE}.
*/
boolean isAlwaysHidden();
@@ -179,11 +176,11 @@ public interface ObjectMember extends ObjectFeature {
public HiddenException() {
super(null);
}
-
+
public static boolean isInstanceOf(Throwable throwable) {
return throwable instanceof HiddenException;
}
-
+
}
class DisabledException extends AuthorizationException {
@@ -212,18 +209,18 @@ public interface ObjectMember extends ObjectFeature {
// -- COMPARATORS
public static class Comparators {
-
+
public static <T extends IdentifiedHolder> Comparator<T> byMemberOrderSequence(
final boolean ensureInSameGroup) {
-
+
return new Comparator<T>() {
@Override
public int compare(final T m1, final T m2) {
-
+
val orderFacet1 = m1==null ? null : m1.getFacet(LayoutOrderFacet.class);
val orderFacet2 = m2==null ? null : m2.getFacet(LayoutOrderFacet.class);
-
+
if (orderFacet1 == null && orderFacet2 == null) {
return 0;
}
@@ -234,24 +231,24 @@ public interface ObjectMember extends ObjectFeature {
return -1; // annotated before non-annotated
}
- if (ensureInSameGroup) {
-
+ if (ensureInSameGroup) {
+
val groupFacet1 = m1.getFacet(LayoutGroupFacet.class);
val groupFacet2 = m2.getFacet(LayoutGroupFacet.class);
val groupId1 = _Strings.nullToEmpty(groupFacet1==null ? null : groupFacet1.getGroupId());
val groupId2 = _Strings.nullToEmpty(groupFacet2==null ? null : groupFacet2.getGroupId());
-
+
if(!Objects.equals(groupId1, groupId2)) {
throw _Exceptions.illegalArgument(
- "Not in same fieldSetId1 when comparing: '%s', '%s'",
- groupId1,
+ "Not in same fieldSetId1 when comparing: '%s', '%s'",
+ groupId1,
groupId2);
}
}
return _Comparators.deweyOrderCompare(
- orderFacet1.getSequence(),
- orderFacet2.getSequence());
+ orderFacet1.getSequence(),
+ orderFacet2.getSequence());
}
};
}
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/grid/BS3GridTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/grid/BS3GridTest.java
index fa98a29..0db59c6 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/grid/BS3GridTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/grid/BS3GridTest.java
@@ -40,7 +40,7 @@ import org.apache.isis.applib.services.jaxb.IsisSchemas;
import org.apache.isis.applib.services.jaxb.JaxbService;
import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.commons.internal.collections._Maps;
-import org.apache.isis.core.metamodel.services.grid.bootstrap3.GridSystemServiceBS3;
+import org.apache.isis.core.metamodel.services.grid.bootstrap3.GridSystemServiceBootstrap;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.is;
@@ -50,13 +50,13 @@ public class BS3GridTest {
private JaxbService jaxbService;
private GridServiceDefault gridServiceDefault;
- private GridSystemServiceBS3 gridSystemServiceBS3;
+ private GridSystemServiceBootstrap gridSystemServiceBS3;
@Before
public void setUp() throws Exception {
jaxbService = new JaxbService.Simple() {};
gridServiceDefault = new GridServiceDefault();
- gridSystemServiceBS3 = new GridSystemServiceBS3();
+ gridSystemServiceBS3 = new GridSystemServiceBootstrap();
gridServiceDefault.gridSystemServicesForTest = _Lists.of(gridSystemServiceBS3);
}