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/01/26 17:08:52 UTC
[isis] branch master updated: ISIS-2431: ObjectSpecId to support
(logical) namespace
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 2134376 ISIS-2431: ObjectSpecId to support (logical) namespace
2134376 is described below
commit 2134376897561fa93f6c945260df84a132da1dbd
Author: Andi Huber <ah...@apache.org>
AuthorDate: Tue Jan 26 18:08:36 2021 +0100
ISIS-2431: ObjectSpecId to support (logical) namespace
---
.../services/appfeat/ApplicationFeatureRepository.java | 2 ++
.../appfeat/ApplicationFeatureRepositoryDefault.java | 13 ++++++++++++-
.../org/apache/isis/core/metamodel/spec/ObjectSpecId.java | 9 ++++++---
3 files changed, 20 insertions(+), 4 deletions(-)
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/appfeat/ApplicationFeatureRepository.java b/api/applib/src/main/java/org/apache/isis/applib/services/appfeat/ApplicationFeatureRepository.java
index 7909b24..d0b17b1 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/appfeat/ApplicationFeatureRepository.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/appfeat/ApplicationFeatureRepository.java
@@ -26,6 +26,8 @@ import java.util.SortedSet;
*/
public interface ApplicationFeatureRepository {
+ SortedSet<String> namespaces();
+
SortedSet<String> packageNames();
SortedSet<String> packageNamesContainingClasses(
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeatureRepositoryDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeatureRepositoryDefault.java
index 6b70d00..a69e7e0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeatureRepositoryDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeatureRepositoryDefault.java
@@ -71,6 +71,7 @@ public class ApplicationFeatureRepositoryDefault implements ApplicationFeatureRe
private final SortedMap<ApplicationFeatureId, ApplicationFeature> propertyFeatures = _Maps.newTreeMap();
private final SortedMap<ApplicationFeatureId, ApplicationFeature> collectionFeatures = _Maps.newTreeMap();
private final SortedMap<ApplicationFeatureId, ApplicationFeature> actionFeatures = _Maps.newTreeMap();
+ private final SortedSet<String> namespaces = _Sets.newTreeSet();
private final IsisConfiguration configuration;
private final SpecificationLoader specificationLoader;
@@ -176,6 +177,8 @@ public class ApplicationFeatureRepositoryDefault implements ApplicationFeatureRe
// and add all of its parent packages
final ApplicationFeatureId classParentPackageId = addClassParent(classFeatureId);
addParents(classParentPackageId);
+
+ namespaces.add(spec.getSpecId().getNamespace());
}
private static Class<?> correspondingClassFor(final ObjectSpecification objectSpec) {
@@ -473,8 +476,16 @@ public class ApplicationFeatureRepositoryDefault implements ApplicationFeatureRe
return actionFeatures.values();
}
-
+ // -- namespaces
+
+ @Override
+ public SortedSet<String> namespaces() {
+ initializeIfRequired();
+ return Collections.unmodifiableSortedSet(namespaces);
+ }
+
// -- packageNames, packageNamesContainingClasses, classNamesContainedIn, memberNamesOf
+
@Override
public SortedSet<String> packageNames() {
initializeIfRequired();
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecId.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecId.java
index 7fab054..3057234 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecId.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecId.java
@@ -20,6 +20,7 @@ package org.apache.isis.core.metamodel.spec;
import java.io.Serializable;
+import org.apache.isis.commons.internal.base._Refs;
import org.apache.isis.core.metamodel.facets.object.objectspecid.ObjectSpecIdFacet;
import static org.apache.isis.commons.internal.base._With.requiresNotEmpty;
@@ -43,10 +44,13 @@ public final class ObjectSpecId implements Serializable {
private static final long serialVersionUID = 1L;
@NonNull private final String specId;
+ @NonNull private final String namespace;
- public static ObjectSpecId of(String specId) {
+ public static ObjectSpecId of(final @NonNull String specId) {
requiresNotEmpty(specId, "specId");
- return new ObjectSpecId(specId);
+ return new ObjectSpecId(
+ specId,
+ _Refs.stringRef(specId).cutAtLastIndexOf("."));
}
public String asString() {
@@ -58,5 +62,4 @@ public final class ObjectSpecId implements Serializable {
return asString();
}
-
}