* This field maintains a resolution cache, so once we have returned a result, we will keep on returning the same
* result without performing any lookups.
*/
// BooleanField value
private byte configuration;
/**
* This field maintains a resolution cache for ignore config, so once we have returned a result, we will
* keep on returning the same result without performing any lookups.
*/
// BooleanField value
private byte ignoreConfig;
/**
* This field maintains a resolution cache for ignore if-feature, so once we have returned a result, we will
* keep on returning the same result without performing any lookups.
*/
// BooleanField value
private byte ignoreIfFeature;
private volatile SchemaPath schemaPath;
SubstatementContext(final StatementContextBase, ?, ?> parent, final StatementDefinitionContext def,
final StatementSourceReference ref, final String rawArgument) {
super(def, ref, rawArgument);
this.parent = Preconditions.checkNotNull(parent, "Parent must not be null");
this.argument = def.parseArgumentValue(this, rawStatementArgument());
}
SubstatementContext(final StatementContextBase original, final StatementContextBase, ?, ?> parent,
final CopyType copyType, final QNameModule targetModule) {
super(original, copyType);
this.parent = Preconditions.checkNotNull(parent);
this.argument = targetModule == null ? original.getStatementArgument()
: original.definition().adaptArgumentValue(original, targetModule);
}
@Override
public StatementContextBase, ?, ?> getParentContext() {
return parent;
}
@Override
public StorageNodeType getStorageNodeType() {
return StorageNodeType.STATEMENT_LOCAL;
}
@Override
public NamespaceStorageNode getParentNamespaceStorage() {
return parent;
}
@Override
public Registry getBehaviourRegistry() {
return parent.getBehaviourRegistry();
}
@Nonnull
@Override
public RootStatementContext, ?, ?> getRoot() {
return parent.getRoot();
}
@Override
public A getStatementArgument() {
return argument;
}
private boolean isSupportedAsShorthandCase() {
final Collection> supportedCaseShorthands = getFromNamespace(ValidationBundlesNamespace.class,
ValidationBundleType.SUPPORTED_CASE_SHORTHANDS);
return supportedCaseShorthands == null || supportedCaseShorthands.contains(getPublicDefinition());
}
private SchemaPath createSchemaPath() {
final Optional