From c8fc1ab8152db4901c51af82e748a2f0e0f95313 Mon Sep 17 00:00:00 2001 From: Gary O'Neall Date: Wed, 29 Jan 2025 10:52:23 -0800 Subject: [PATCH] Add getId method to CoreModelObject --- .../java/org/spdx/core/CoreModelObject.java | 9 ++++ .../org/spdx/core/TestCoreModelObject.java | 41 ++++++++++++------- 2 files changed, 35 insertions(+), 15 deletions(-) diff --git a/src/main/java/org/spdx/core/CoreModelObject.java b/src/main/java/org/spdx/core/CoreModelObject.java index 77c6f23..72fffa0 100644 --- a/src/main/java/org/spdx/core/CoreModelObject.java +++ b/src/main/java/org/spdx/core/CoreModelObject.java @@ -1031,4 +1031,13 @@ public String getSpecVersion() throws InvalidSPDXAnalysisException { public void setIdPrefix(@Nullable String idPrefix) { this.idPrefix = idPrefix; } + + /** + * @return if the objectUri is prefixed by the idPrefix, returns just the id portion of the objectUri, otherwise + * returns the objectUri + */ + public String getId() { + return Objects.nonNull(idPrefix) && objectUri.startsWith(idPrefix) ? + objectUri.substring(idPrefix.length()) : objectUri; + } } diff --git a/src/test/java/org/spdx/core/TestCoreModelObject.java b/src/test/java/org/spdx/core/TestCoreModelObject.java index b3a18af..e9fbd95 100644 --- a/src/test/java/org/spdx/core/TestCoreModelObject.java +++ b/src/test/java/org/spdx/core/TestCoreModelObject.java @@ -24,8 +24,10 @@ * */ public class TestCoreModelObject { - - static final String OBJECT_URI = "https://myspdx.docs/objecturi#part1"; + + static final String PREFIX = "https://myspdx.docs/objecturi#"; + static final String ID = "part1"; + static final String OBJECT_URI = PREFIX + ID; static final String OBJECT_PROPERTY_NAME = "objectPropName"; static final String PROPERTY_NAMESPACE = "https://spdx-mock/namespace"; static final String STRING_PROPERTY_NAME = "stringPropName"; @@ -80,7 +82,7 @@ public void testCoreModelObjectIModelStoreStringIModelCopyManagerBooleanString() /** * Test method for {@link org.spdx.core.CoreModelObject#CoreModelObject(org.spdx.core.CoreModelObject.CoreModelObjectBuilder, java.lang.String)}. - * @throws InvalidSPDXAnalysisException + * @throws InvalidSPDXAnalysisException on unexpected errors */ @Test public void testCoreModelObjectCoreModelObjectBuilderString() throws InvalidSPDXAnalysisException { @@ -108,7 +110,7 @@ public void testVerifyString() { /** * Test method for {@link org.spdx.core.CoreModelObject#verifyCollection(java.util.Collection, java.lang.String, java.util.Set, java.lang.String)}. - * @throws InvalidSPDXAnalysisException + * @throws InvalidSPDXAnalysisException on unexpected errors */ @Test public void testVerifyCollection() throws InvalidSPDXAnalysisException { @@ -134,7 +136,7 @@ public void testSetStrict() { /** * Test method for {@link org.spdx.core.CoreModelObject#getPropertyValueDescriptors()}. - * @throws InvalidSPDXAnalysisException + * @throws InvalidSPDXAnalysisException on unexpected errors */ @Test public void testGetPropertyValueDescriptors() throws InvalidSPDXAnalysisException { @@ -163,7 +165,7 @@ public void testGetPropertyValueDescriptors() throws InvalidSPDXAnalysisExceptio /** * Test method for {@link org.spdx.core.CoreModelObject#getObjectPropertyValue(org.spdx.storage.PropertyDescriptor)}. - * @throws InvalidSPDXAnalysisException + * @throws InvalidSPDXAnalysisException on unexpected errors */ @Test public void testGetObjectPropertyValue() throws InvalidSPDXAnalysisException { @@ -179,7 +181,7 @@ public void testGetObjectPropertyValue() throws InvalidSPDXAnalysisException { /** * Test method for {@link org.spdx.core.CoreModelObject#setPropertyValue(org.spdx.storage.PropertyDescriptor, java.lang.Object)}. - * @throws InvalidSPDXAnalysisException + * @throws InvalidSPDXAnalysisException on unexpected errors */ @Test public void testSetPropertyValue() throws InvalidSPDXAnalysisException { @@ -223,7 +225,7 @@ public void testSetPropertyValue() throws InvalidSPDXAnalysisException { /** * Test method for {@link org.spdx.core.CoreModelObject#removeProperty(org.spdx.storage.PropertyDescriptor)}. - * @throws InvalidSPDXAnalysisException + * @throws InvalidSPDXAnalysisException on unexpected errors */ @Test public void testRemoveProperty() throws InvalidSPDXAnalysisException { @@ -239,7 +241,7 @@ public void testRemoveProperty() throws InvalidSPDXAnalysisException { /** * Test method for {@link org.spdx.core.CoreModelObject#clearValueCollection(org.spdx.storage.PropertyDescriptor)}. - * @throws InvalidSPDXAnalysisException + * @throws InvalidSPDXAnalysisException on unexpected errors */ @Test public void testClearValueCollection() throws InvalidSPDXAnalysisException { @@ -258,7 +260,7 @@ public void testClearValueCollection() throws InvalidSPDXAnalysisException { /** * Test method for {@link org.spdx.core.CoreModelObject#addPropertyValueToCollection(org.spdx.storage.PropertyDescriptor, java.lang.Object)}. - * @throws InvalidSPDXAnalysisException + * @throws InvalidSPDXAnalysisException on unexpected errors */ @Test public void testAddPropertyValueToCollection() throws InvalidSPDXAnalysisException { @@ -273,7 +275,7 @@ public void testAddPropertyValueToCollection() throws InvalidSPDXAnalysisExcepti /** * Test method for {@link org.spdx.core.CoreModelObject#removePropertyValueFromCollection(org.spdx.storage.PropertyDescriptor, java.lang.Object)}. - * @throws InvalidSPDXAnalysisException + * @throws InvalidSPDXAnalysisException on unexpected errors */ @Test public void testRemovePropertyValueFromCollection() throws InvalidSPDXAnalysisException { @@ -288,7 +290,7 @@ public void testRemovePropertyValueFromCollection() throws InvalidSPDXAnalysisEx /** * Test method for {@link org.spdx.core.CoreModelObject#getObjectPropertyValueSet(org.spdx.storage.PropertyDescriptor, java.lang.Class)}. - * @throws InvalidSPDXAnalysisException + * @throws InvalidSPDXAnalysisException on unexpected errors */ @Test public void testGetObjectPropertyValueSet() throws InvalidSPDXAnalysisException { @@ -305,7 +307,7 @@ public void testGetObjectPropertyValueSet() throws InvalidSPDXAnalysisException /** * Test method for {@link org.spdx.core.CoreModelObject#getObjectPropertyValueCollection(org.spdx.storage.PropertyDescriptor, java.lang.Class)}. - * @throws InvalidSPDXAnalysisException + * @throws InvalidSPDXAnalysisException on unexpected errors */ @Test public void testGetObjectPropertyValueCollection() throws InvalidSPDXAnalysisException { @@ -322,7 +324,7 @@ public void testGetObjectPropertyValueCollection() throws InvalidSPDXAnalysisExc /** * Test method for {@link org.spdx.core.CoreModelObject#equivalent(org.spdx.core.CoreModelObject, boolean)}. - * @throws InvalidSPDXAnalysisException + * @throws InvalidSPDXAnalysisException on unexpected errors */ @Test public void testEquivalentCoreModelObjectBoolean() throws InvalidSPDXAnalysisException { @@ -371,7 +373,7 @@ public void testEquivalentCoreModelObjectBoolean() throws InvalidSPDXAnalysisExc /** * Test method for {@link org.spdx.core.CoreModelObject#toTypedValue()}. - * @throws InvalidSPDXAnalysisException + * @throws InvalidSPDXAnalysisException on unexpected errors */ @Test public void testToTypedValue() throws InvalidSPDXAnalysisException { @@ -381,4 +383,13 @@ public void testToTypedValue() throws InvalidSPDXAnalysisException { assertEquals("3.0.0", result.getSpecVersion()); } + @Test + public void testGetId() throws InvalidSPDXAnalysisException { + CoreModelObject prefix = new MockModelType(modelStore, OBJECT_URI, copyManager, true, "3.0.0"); + prefix.setIdPrefix(PREFIX); + assertEquals(ID, prefix.getId()); + CoreModelObject noPrefix = new MockModelType(modelStore, OBJECT_URI, copyManager, true, "3.0.0"); + assertEquals(OBJECT_URI, noPrefix.getId()); + } + }