Package org.spdx.storage.simple
Class InMemSpdxStore
- java.lang.Object
-
- org.spdx.storage.simple.InMemSpdxStore
-
- All Implemented Interfaces:
AutoCloseable,org.spdx.storage.IModelStore
public class InMemSpdxStore extends Object implements org.spdx.storage.IModelStore
In memory implementation of an SPDX storeThis 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
-
-
Field Summary
Fields Modifier and Type Field Description static StringANON_PREFIXPrefix for anonymous idsstatic PatternLICENSE_ID_PATTERN_GENERATEDPattern for the generated license IDprotected Map<String,StoredTypedItem>typedValueMapMap of property object URI's to typed value items
-
Constructor Summary
Constructors Constructor Description InMemSpdxStore()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanaddValueToCollection(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)voiddelete(String objectUri)org.spdx.storage.IModelStore.IModelStoreLockenterCriticalSection(boolean readLockRequested)booleanexists(String objectUri)Stream<org.spdx.core.TypedValue>getAllItems(String nameSpace, String typeFilter)Optional<String>getCaseSensitiveId(String nameSpace, String caseInsensitiveId)org.spdx.storage.IModelStore.IdTypegetIdType(String objectUri)protected StoredTypedItemgetItem(String objectUri)Gets the item from the hashmapStringgetNextId(org.spdx.storage.IModelStore.IdType idType)List<org.spdx.storage.PropertyDescriptor>getPropertyValueDescriptors(String objectUri)Optional<org.spdx.core.TypedValue>getTypedValue(String objectUri)Optional<Object>getValue(String objectUri, org.spdx.storage.PropertyDescriptor propertyDescriptor)booleanisAnon(String objectUri)booleanisCollectionMembersAssignableTo(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)Iterator<Object>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)voidsetValue(String objectUri, org.spdx.storage.PropertyDescriptor propertyDescriptor, Object value)
-
-
-
Field Detail
-
LICENSE_ID_PATTERN_GENERATED
public static Pattern LICENSE_ID_PATTERN_GENERATED
Pattern for the generated license ID
-
ANON_PREFIX
public static final String ANON_PREFIX
Prefix for anonymous ids- See Also:
- Constant Field Values
-
typedValueMap
protected Map<String,StoredTypedItem> typedValueMap
Map of property object URI's to typed value items
-
-
Method Detail
-
exists
public boolean exists(String objectUri)
- 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
public List<org.spdx.storage.PropertyDescriptor> getPropertyValueDescriptors(String objectUri) throws org.spdx.core.InvalidSPDXAnalysisException
- Specified by:
getPropertyValueDescriptorsin interfaceorg.spdx.storage.IModelStore- Throws:
org.spdx.core.InvalidSPDXAnalysisException
-
setValue
public void setValue(String objectUri, org.spdx.storage.PropertyDescriptor propertyDescriptor, Object value) throws org.spdx.core.InvalidSPDXAnalysisException
- Specified by:
setValuein interfaceorg.spdx.storage.IModelStore- Throws:
org.spdx.core.InvalidSPDXAnalysisException
-
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
public Iterator<Object> listValues(String objectUri, org.spdx.storage.PropertyDescriptor propertyDescriptor) throws org.spdx.core.InvalidSPDXAnalysisException
- Specified by:
listValuesin interfaceorg.spdx.storage.IModelStore- Throws:
org.spdx.core.InvalidSPDXAnalysisException
-
getValue
public Optional<Object> getValue(String objectUri, org.spdx.storage.PropertyDescriptor propertyDescriptor) throws org.spdx.core.InvalidSPDXAnalysisException
- Specified by:
getValuein interfaceorg.spdx.storage.IModelStore- Throws:
org.spdx.core.InvalidSPDXAnalysisException
-
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
public Stream<org.spdx.core.TypedValue> getAllItems(@Nullable String nameSpace, @Nullable String typeFilter)
- Specified by:
getAllItemsin interfaceorg.spdx.storage.IModelStore
-
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
public boolean collectionContains(String objectUri, org.spdx.storage.PropertyDescriptor propertyDescriptor, Object value) throws org.spdx.core.InvalidSPDXAnalysisException
- Specified by:
collectionContainsin interfaceorg.spdx.storage.IModelStore- Throws:
org.spdx.core.InvalidSPDXAnalysisException
-
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
public boolean isAnon(String objectUri)
- Specified by:
isAnonin interfaceorg.spdx.storage.IModelStore
-
getIdType
public org.spdx.storage.IModelStore.IdType getIdType(String objectUri)
- 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
public Optional<String> getCaseSensitiveId(String nameSpace, String caseInsensitiveId)
- Specified by:
getCaseSensitiveIdin interfaceorg.spdx.storage.IModelStore
-
getTypedValue
public Optional<org.spdx.core.TypedValue> getTypedValue(String objectUri) throws org.spdx.core.InvalidSPDXAnalysisException
- Specified by:
getTypedValuein interfaceorg.spdx.storage.IModelStore- Throws:
org.spdx.core.InvalidSPDXAnalysisException
-
clear
public void clear()
Remove all existing elements, properties, and values
-
delete
public void delete(String objectUri) throws org.spdx.core.InvalidSPDXAnalysisException
- Specified by:
deletein interfaceorg.spdx.storage.IModelStore- Throws:
org.spdx.core.InvalidSPDXAnalysisException
-
close
public void close() throws Exception- Specified by:
closein interfaceAutoCloseable- Throws:
Exception
-
-