Class InMemSpdxStore
java.lang.Object
org.spdx.storage.simple.InMemSpdxStore
- All Implemented Interfaces:
AutoCloseable,org.spdx.storage.IModelStore
In memory implementation of an SPDX store
This implementation primarily uses ConcurrentHashMaps.
It is designed to be thread-safe and low CPU utilization. It may use significant amounts of memory for larger SPDX documents.
- Author:
- Gary O'Neall
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.spdx.storage.IModelStore
org.spdx.storage.IModelStore.IdType, org.spdx.storage.IModelStore.IModelStoreLock, org.spdx.storage.IModelStore.ModelUpdate -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringPrefix for anonymous idsstatic PatternPattern for the generated license IDprotected Map<String, StoredTypedItem> Map of property object URI's to typed value items -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanaddValueToCollection(String objectUri, org.spdx.storage.PropertyDescriptor propertyDescriptor, Object value) voidclear()Remove all existing elements, properties, and valuesvoidclearValueCollection(String objectUri, org.spdx.storage.PropertyDescriptor propertyDescriptor) voidclose()booleancollectionContains(String objectUri, org.spdx.storage.PropertyDescriptor propertyDescriptor, Object value) intcollectionSize(String objectUri, org.spdx.storage.PropertyDescriptor propertyDescriptor) voidcreate(org.spdx.core.TypedValue typedValue) voidorg.spdx.storage.IModelStore.IModelStoreLockenterCriticalSection(boolean readLockRequested) booleanStream<org.spdx.core.TypedValue> getAllItems(String nameSpace, String typeFilter) getCaseSensitiveId(String nameSpace, String caseInsensitiveId) org.spdx.storage.IModelStore.IdTypeprotected StoredTypedItemGets the item from the hashmapgetNextId(org.spdx.storage.IModelStore.IdType idType) List<org.spdx.storage.PropertyDescriptor> getPropertyValueDescriptors(String objectUri) Optional<org.spdx.core.TypedValue> getTypedValue(String objectUri) booleanbooleanisCollectionMembersAssignableTo(String objectUri, org.spdx.storage.PropertyDescriptor propertyDescriptor, Class<?> clazz) booleanisCollectionProperty(String objectUri, org.spdx.storage.PropertyDescriptor propertyDescriptor) booleanisPropertyValueAssignableTo(String objectUri, org.spdx.storage.PropertyDescriptor propertyDescriptor, Class<?> clazz, String specVersion) voidleaveCriticalSection(org.spdx.storage.IModelStore.IModelStoreLock lock) listValues(String objectUri, org.spdx.storage.PropertyDescriptor propertyDescriptor) voidremoveProperty(String objectUri, org.spdx.storage.PropertyDescriptor propertyDescriptor) booleanremoveValueFromCollection(String objectUri, org.spdx.storage.PropertyDescriptor propertyDescriptor, Object value) voidMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.spdx.storage.IModelStore
getCaseSensisitiveId
-
Field Details
-
LICENSE_ID_PATTERN_GENERATED
Pattern for the generated license ID -
ANON_PREFIX
-
typedValueMap
Map of property object URI's to typed value items
-
-
Constructor Details
-
InMemSpdxStore
public InMemSpdxStore()
-
-
Method Details
-
exists
- Specified by:
existsin interfaceorg.spdx.storage.IModelStore
-
create
public void create(org.spdx.core.TypedValue typedValue) throws org.spdx.core.InvalidSPDXAnalysisException - Specified by:
createin interfaceorg.spdx.storage.IModelStore- Throws:
org.spdx.core.InvalidSPDXAnalysisException
-
getItem
protected StoredTypedItem getItem(String objectUri) throws org.spdx.core.InvalidSPDXAnalysisException Gets the item from the hashmap- Parameters:
objectUri- Anonymous or URI ID- Returns:
- the item from the hash map
- Throws:
org.spdx.core.InvalidSPDXAnalysisException- on SPDX parsing errors
-
getPropertyValueDescriptors
-
setValue
-
clearValueCollection
public void clearValueCollection(String objectUri, org.spdx.storage.PropertyDescriptor propertyDescriptor) throws org.spdx.core.InvalidSPDXAnalysisException - Specified by:
clearValueCollectionin interfaceorg.spdx.storage.IModelStore- Throws:
org.spdx.core.InvalidSPDXAnalysisException
-
addValueToCollection
public boolean addValueToCollection(String objectUri, org.spdx.storage.PropertyDescriptor propertyDescriptor, Object value) throws org.spdx.core.InvalidSPDXAnalysisException - Specified by:
addValueToCollectionin interfaceorg.spdx.storage.IModelStore- Throws:
org.spdx.core.InvalidSPDXAnalysisException
-
removeValueFromCollection
public boolean removeValueFromCollection(String objectUri, org.spdx.storage.PropertyDescriptor propertyDescriptor, Object value) throws org.spdx.core.InvalidSPDXAnalysisException - Specified by:
removeValueFromCollectionin interfaceorg.spdx.storage.IModelStore- Throws:
org.spdx.core.InvalidSPDXAnalysisException
-
listValues
-
getValue
-
getNextId
public String getNextId(org.spdx.storage.IModelStore.IdType idType) throws org.spdx.core.InvalidSPDXAnalysisException - Specified by:
getNextIdin interfaceorg.spdx.storage.IModelStore- Throws:
org.spdx.core.InvalidSPDXAnalysisException
-
removeProperty
public void removeProperty(String objectUri, org.spdx.storage.PropertyDescriptor propertyDescriptor) throws org.spdx.core.InvalidSPDXAnalysisException - Specified by:
removePropertyin interfaceorg.spdx.storage.IModelStore- Throws:
org.spdx.core.InvalidSPDXAnalysisException
-
getAllItems
-
collectionSize
public int collectionSize(String objectUri, org.spdx.storage.PropertyDescriptor propertyDescriptor) throws org.spdx.core.InvalidSPDXAnalysisException - Specified by:
collectionSizein interfaceorg.spdx.storage.IModelStore- Throws:
org.spdx.core.InvalidSPDXAnalysisException
-
collectionContains
-
isCollectionMembersAssignableTo
public boolean isCollectionMembersAssignableTo(String objectUri, org.spdx.storage.PropertyDescriptor propertyDescriptor, Class<?> clazz) throws org.spdx.core.InvalidSPDXAnalysisException - Specified by:
isCollectionMembersAssignableToin interfaceorg.spdx.storage.IModelStore- Throws:
org.spdx.core.InvalidSPDXAnalysisException
-
isPropertyValueAssignableTo
public boolean isPropertyValueAssignableTo(String objectUri, org.spdx.storage.PropertyDescriptor propertyDescriptor, Class<?> clazz, String specVersion) throws org.spdx.core.InvalidSPDXAnalysisException - Specified by:
isPropertyValueAssignableToin interfaceorg.spdx.storage.IModelStore- Throws:
org.spdx.core.InvalidSPDXAnalysisException
-
isCollectionProperty
public boolean isCollectionProperty(String objectUri, org.spdx.storage.PropertyDescriptor propertyDescriptor) throws org.spdx.core.InvalidSPDXAnalysisException - Specified by:
isCollectionPropertyin interfaceorg.spdx.storage.IModelStore- Throws:
org.spdx.core.InvalidSPDXAnalysisException
-
isAnon
- Specified by:
isAnonin interfaceorg.spdx.storage.IModelStore
-
getIdType
- Specified by:
getIdTypein interfaceorg.spdx.storage.IModelStore
-
enterCriticalSection
public org.spdx.storage.IModelStore.IModelStoreLock enterCriticalSection(boolean readLockRequested) - Specified by:
enterCriticalSectionin interfaceorg.spdx.storage.IModelStore
-
leaveCriticalSection
public void leaveCriticalSection(org.spdx.storage.IModelStore.IModelStoreLock lock) - Specified by:
leaveCriticalSectionin interfaceorg.spdx.storage.IModelStore
-
getCaseSensitiveId
-
getTypedValue
-
clear
public void clear()Remove all existing elements, properties, and values -
delete
- Specified by:
deletein interfaceorg.spdx.storage.IModelStore- Throws:
org.spdx.core.InvalidSPDXAnalysisException
-
close
- Specified by:
closein interfaceAutoCloseable- Throws:
Exception
-