Class BasicIndexer
- java.lang.Object
-
- gov.nist.secauto.oscal.lib.profile.resolver.support.BasicIndexer
-
- All Implemented Interfaces:
IIndexer
- Direct Known Subclasses:
ReassignmentIndexer
public class BasicIndexer extends Object implements IIndexer
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface gov.nist.secauto.oscal.lib.profile.resolver.support.IIndexer
IIndexer.SelectionStatus
-
-
Field Summary
-
Fields inherited from interface gov.nist.secauto.oscal.lib.profile.resolver.support.IIndexer
HAS_PROP_KEEP_METAPATH, KEEP_ENTITY_PREDICATE
-
-
Constructor Summary
Constructors Constructor Description BasicIndexer()BasicIndexer(IIndexer other)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description IEntityItemaddControl(gov.nist.secauto.metaschema.model.common.metapath.item.IRequiredValueModelNodeItem item)IEntityItemaddGroup(gov.nist.secauto.metaschema.model.common.metapath.item.IRequiredValueModelNodeItem item)protected IEntityItemaddItem(gov.nist.secauto.oscal.lib.profile.resolver.support.AbstractEntityItem.Builder builder)protected IEntityItemaddItem(IEntityItem item)IEntityItemaddLocation(gov.nist.secauto.metaschema.model.common.metapath.item.IRequiredValueModelNodeItem item)IEntityItemaddParameter(gov.nist.secauto.metaschema.model.common.metapath.item.IRequiredValueModelNodeItem item)IEntityItemaddPart(gov.nist.secauto.metaschema.model.common.metapath.item.IRequiredValueModelNodeItem item)IEntityItemaddParty(gov.nist.secauto.metaschema.model.common.metapath.item.IRequiredValueModelNodeItem item)IEntityItemaddResource(gov.nist.secauto.metaschema.model.common.metapath.item.IRequiredValueModelNodeItem item)IEntityItemaddRole(gov.nist.secauto.metaschema.model.common.metapath.item.IRequiredValueModelNodeItem item)voidappend(IIndexer other)Map<IEntityItem.ItemType,Map<String,IEntityItem>>getEntities()Get a copy of the entity map.Collection<IEntityItem>getEntitiesByItemType(IEntityItem.ItemType itemType)IEntityItemgetEntity(IEntityItem.ItemType itemType, String identifier, boolean normalize)Lookup an item of the givenitemTypehaving the givenidentifier.IIndexer.SelectionStatusgetSelectionStatus(gov.nist.secauto.metaschema.model.common.metapath.item.INodeItem item)Map<gov.nist.secauto.metaschema.model.common.metapath.item.INodeItem,IIndexer.SelectionStatus>getSelectionStatusMap()booleanisSelected(IEntityItem entity)protected gov.nist.secauto.oscal.lib.profile.resolver.support.AbstractEntityItem.BuildernewBuilder(gov.nist.secauto.metaschema.model.common.metapath.item.IRequiredValueModelNodeItem item, IEntityItem.ItemType itemType, String identifier)Create a new builder with the provided info.protected gov.nist.secauto.oscal.lib.profile.resolver.support.AbstractEntityItem.BuildernewBuilder(gov.nist.secauto.metaschema.model.common.metapath.item.IRequiredValueModelNodeItem item, IEntityItem.ItemType itemType, UUID identifier)StringnormalizeIdentifier(String identifier)Lower case UUID-based identifiers and leave others unmodified.booleanremoveItem(IEntityItem entity)voidresetSelectionStatus()voidsetSelectionStatus(gov.nist.secauto.metaschema.model.common.metapath.item.INodeItem item, IIndexer.SelectionStatus selectionStatus)
-
-
-
Constructor Detail
-
BasicIndexer
public BasicIndexer()
-
BasicIndexer
public BasicIndexer(IIndexer other)
-
-
Method Detail
-
setSelectionStatus
public void setSelectionStatus(@NonNull gov.nist.secauto.metaschema.model.common.metapath.item.INodeItem item, @NonNull IIndexer.SelectionStatus selectionStatus)
- Specified by:
setSelectionStatusin interfaceIIndexer
-
getSelectionStatusMap
public Map<gov.nist.secauto.metaschema.model.common.metapath.item.INodeItem,IIndexer.SelectionStatus> getSelectionStatusMap()
- Specified by:
getSelectionStatusMapin interfaceIIndexer
-
getSelectionStatus
public IIndexer.SelectionStatus getSelectionStatus(@NonNull gov.nist.secauto.metaschema.model.common.metapath.item.INodeItem item)
- Specified by:
getSelectionStatusin interfaceIIndexer
-
resetSelectionStatus
public void resetSelectionStatus()
- Specified by:
resetSelectionStatusin interfaceIIndexer
-
isSelected
public boolean isSelected(@NonNull IEntityItem entity)
- Specified by:
isSelectedin interfaceIIndexer
-
getEntities
public Map<IEntityItem.ItemType,Map<String,IEntityItem>> getEntities()
Description copied from interface:IIndexerGet a copy of the entity map.- Specified by:
getEntitiesin interfaceIIndexer- Returns:
- the copy
-
getEntitiesByItemType
@NonNull public Collection<IEntityItem> getEntitiesByItemType(@NonNull IEntityItem.ItemType itemType)
- Specified by:
getEntitiesByItemTypein interfaceIIndexer
-
getEntity
public IEntityItem getEntity(@NonNull IEntityItem.ItemType itemType, @NonNull String identifier, boolean normalize)
Description copied from interface:IIndexerLookup an item of the givenitemTypehaving the givenidentifier.Will normalize the case of a UUID-based the identifier when requested.
-
addItem
protected IEntityItem addItem(@NonNull IEntityItem item)
-
addItem
@NonNull protected IEntityItem addItem(@NonNull gov.nist.secauto.oscal.lib.profile.resolver.support.AbstractEntityItem.Builder builder)
-
removeItem
public boolean removeItem(@NonNull IEntityItem entity)
- Specified by:
removeItemin interfaceIIndexer
-
addRole
public IEntityItem addRole(gov.nist.secauto.metaschema.model.common.metapath.item.IRequiredValueModelNodeItem item)
-
addLocation
public IEntityItem addLocation(gov.nist.secauto.metaschema.model.common.metapath.item.IRequiredValueModelNodeItem item)
- Specified by:
addLocationin interfaceIIndexer
-
addParty
public IEntityItem addParty(gov.nist.secauto.metaschema.model.common.metapath.item.IRequiredValueModelNodeItem item)
-
addGroup
public IEntityItem addGroup(gov.nist.secauto.metaschema.model.common.metapath.item.IRequiredValueModelNodeItem item)
-
addControl
public IEntityItem addControl(gov.nist.secauto.metaschema.model.common.metapath.item.IRequiredValueModelNodeItem item)
- Specified by:
addControlin interfaceIIndexer
-
addParameter
public IEntityItem addParameter(gov.nist.secauto.metaschema.model.common.metapath.item.IRequiredValueModelNodeItem item)
- Specified by:
addParameterin interfaceIIndexer
-
addPart
public IEntityItem addPart(gov.nist.secauto.metaschema.model.common.metapath.item.IRequiredValueModelNodeItem item)
-
addResource
public IEntityItem addResource(gov.nist.secauto.metaschema.model.common.metapath.item.IRequiredValueModelNodeItem item)
- Specified by:
addResourcein interfaceIIndexer
-
newBuilder
@NonNull protected final gov.nist.secauto.oscal.lib.profile.resolver.support.AbstractEntityItem.Builder newBuilder(@NonNull gov.nist.secauto.metaschema.model.common.metapath.item.IRequiredValueModelNodeItem item, @NonNull IEntityItem.ItemType itemType, @NonNull UUID identifier)
-
newBuilder
@NonNull protected gov.nist.secauto.oscal.lib.profile.resolver.support.AbstractEntityItem.Builder newBuilder(@NonNull gov.nist.secauto.metaschema.model.common.metapath.item.IRequiredValueModelNodeItem item, @NonNull IEntityItem.ItemType itemType, @NonNull String identifier)
Create a new builder with the provided info.This method can be overloaded to support applying additional data to the returned builder.
When working with identifiers that are case insensitve, it is important to ensure that the identifiers are normalized to lower case.
- Parameters:
item- the Metapath node to associate with the entityitemType- the type of entityidentifier- the entity's identifier- Returns:
- the entity builder
-
normalizeIdentifier
@NonNull public String normalizeIdentifier(@NonNull String identifier)
Lower case UUID-based identifiers and leave others unmodified.- Parameters:
identifier- the identifier- Returns:
- the resulting normalized identifier
-
-