Skip to content

Commit

Permalink
Renamed AxiomIdentifierResolver to AxiomNameResolver
Browse files Browse the repository at this point in the history
Signed-off-by: Tony Tkacik <tonydamage@gmail.com>
  • Loading branch information
tonydamage committed Jun 9, 2020
1 parent 4f3042b commit f3a0fff
Show file tree
Hide file tree
Showing 13 changed files with 57 additions and 57 deletions.
Expand Up @@ -12,7 +12,7 @@
import com.evolveum.axiom.api.AxiomName;
import com.evolveum.axiom.api.schema.AxiomItemDefinition;
import com.evolveum.axiom.concepts.SourceLocation;
import com.evolveum.axiom.lang.spi.AxiomIdentifierResolver;
import com.evolveum.axiom.lang.spi.AxiomNameResolver;
import com.evolveum.axiom.lang.spi.AxiomSyntaxException;
import com.google.common.base.Preconditions;
import com.google.common.base.Strings;
Expand Down Expand Up @@ -88,9 +88,9 @@ public void endItem(SourceLocation loc) {
private interface Builder {
AxiomName name();

AxiomIdentifierResolver itemResolver();
AxiomNameResolver itemResolver();

AxiomIdentifierResolver valueResolver();
AxiomNameResolver valueResolver();
}

public interface ItemBuilder extends Builder {
Expand All @@ -106,7 +106,7 @@ public interface ValueBuilder extends Builder {
ItemBuilder startInfra(AxiomName identifier, SourceLocation loc);
void endValue(SourceLocation loc);

default AxiomIdentifierResolver axiomAsConditionalDefault() {
default AxiomNameResolver axiomAsConditionalDefault() {
return (prefix, name) -> {
if(Strings.isNullOrEmpty(prefix)) {
AxiomName axiomNs = AxiomName.axiom(name);
Expand All @@ -120,12 +120,12 @@ default AxiomIdentifierResolver axiomAsConditionalDefault() {
}

@Override
public AxiomIdentifierResolver itemResolver() {
public AxiomNameResolver itemResolver() {
return current().itemResolver();
}

@Override
public AxiomIdentifierResolver valueResolver() {
public AxiomNameResolver valueResolver() {
return current().valueResolver();
}

Expand Down
Expand Up @@ -2,7 +2,7 @@

import com.evolveum.axiom.api.AxiomName;
import com.evolveum.axiom.concepts.SourceLocation;
import com.evolveum.axiom.lang.spi.AxiomIdentifierResolver;
import com.evolveum.axiom.lang.spi.AxiomNameResolver;

public interface AxiomItemStream {

Expand All @@ -20,8 +20,8 @@ interface Target {

interface TargetWithResolver extends Target {

AxiomIdentifierResolver itemResolver();
AxiomIdentifierResolver valueResolver();
AxiomNameResolver itemResolver();
AxiomNameResolver valueResolver();

}

Expand Down
Expand Up @@ -13,22 +13,22 @@
import com.evolveum.axiom.api.schema.AxiomTypeDefinition;
import com.evolveum.axiom.concepts.SourceLocation;
import com.evolveum.axiom.lang.api.AxiomBuiltIn;
import com.evolveum.axiom.lang.spi.AxiomIdentifierResolver;
import com.evolveum.axiom.lang.spi.AxiomNameResolver;
import com.evolveum.axiom.lang.spi.AxiomSemanticException;
import com.google.common.base.Preconditions;

public class AxiomItemTarget extends AxiomBuilderStreamTarget implements Supplier<AxiomItem<?>>, AxiomItemStream.TargetWithResolver {

private final AxiomSchemaContext context;
private final AxiomIdentifierResolver resolver;
private final AxiomNameResolver resolver;
private AxiomTypeDefinition infraType = AxiomBuiltIn.Type.AXIOM_VALUE;
private Item<?> result;

public AxiomItemTarget(AxiomSchemaContext context) {
this(context, AxiomIdentifierResolver.nullResolver());
this(context, AxiomNameResolver.nullResolver());
}

public AxiomItemTarget(AxiomSchemaContext context, AxiomIdentifierResolver rootResolver) {
public AxiomItemTarget(AxiomSchemaContext context, AxiomNameResolver rootResolver) {
offer(new Root());
this.context = context;
this.resolver = Preconditions.checkNotNull(rootResolver, "rootResolver");
Expand All @@ -47,12 +47,12 @@ public AxiomName name() {
}

@Override
public AxiomIdentifierResolver itemResolver() {
public AxiomNameResolver itemResolver() {
return axiomAsConditionalDefault().or(resolver);
}

@Override
public AxiomIdentifierResolver valueResolver() {
public AxiomNameResolver valueResolver() {
return resolver;
}

Expand Down Expand Up @@ -99,12 +99,12 @@ public AxiomName name() {
}

@Override
public AxiomIdentifierResolver itemResolver() {
public AxiomNameResolver itemResolver() {
return resolver;
}

@Override
public AxiomIdentifierResolver valueResolver() {
public AxiomNameResolver valueResolver() {
return resolver;
}

Expand Down Expand Up @@ -146,12 +146,12 @@ public AxiomName name() {
}

@Override
public AxiomIdentifierResolver itemResolver() {
public AxiomNameResolver itemResolver() {
return resolver;
}

@Override
public AxiomIdentifierResolver valueResolver() {
public AxiomNameResolver valueResolver() {
return resolver;
}

Expand Down Expand Up @@ -232,12 +232,12 @@ public AxiomName name() {
}

@Override
public AxiomIdentifierResolver itemResolver() {
return AxiomIdentifierResolver.defaultNamespaceFromType(builder.type());
public AxiomNameResolver itemResolver() {
return AxiomNameResolver.defaultNamespaceFromType(builder.type());
}

@Override
public AxiomIdentifierResolver valueResolver() {
public AxiomNameResolver valueResolver() {
return resolver;
}

Expand Down
Expand Up @@ -19,7 +19,7 @@
import com.evolveum.axiom.api.stream.AxiomItemStream;
import com.evolveum.axiom.api.stream.AxiomItemStream.TargetWithResolver;
import com.evolveum.axiom.lang.antlr.AxiomParser.ItemContext;
import com.evolveum.axiom.lang.spi.AxiomIdentifierResolver;
import com.evolveum.axiom.lang.spi.AxiomNameResolver;
import com.evolveum.axiom.lang.spi.AxiomSyntaxException;

public class AxiomAntlrStatementSource {
Expand Down Expand Up @@ -66,16 +66,16 @@ public final void stream(AxiomItemStream.TargetWithResolver target) {
}

public void stream(AxiomItemStream.TargetWithResolver target, Optional<Set<AxiomName>> emitOnly) {
stream(target, emitOnly, AxiomIdentifierResolver.nullResolver());
stream(target, emitOnly, AxiomNameResolver.nullResolver());
}

public final void stream(TargetWithResolver target, Optional<Set<AxiomName>> emitOnly,
AxiomIdentifierResolver resolver) {
AxiomNameResolver resolver) {
AxiomAntlrVisitor2<?> visitor = new AxiomAntlrVisitor2<>(sourceName, target, emitOnly.orElse(null), resolver);
visitor.visit(root);
}

public final void stream(AxiomIdentifierResolver statements, AxiomIdentifierResolver arguments, AxiomItemStream.Target listener,
public final void stream(AxiomNameResolver statements, AxiomNameResolver arguments, AxiomItemStream.Target listener,
Optional<Set<AxiomName>> emitOnly) {
AxiomAntlrVisitor<?> visitor = new AxiomAntlrVisitor<>(sourceName, statements, arguments, listener, emitOnly.orElse(null));
visitor.visit(root);
Expand Down
Expand Up @@ -11,16 +11,16 @@
import com.evolveum.axiom.api.AxiomName;
import com.evolveum.axiom.api.stream.AxiomItemStream;
import com.evolveum.axiom.api.stream.AxiomItemStream.Target;
import com.evolveum.axiom.lang.spi.AxiomIdentifierResolver;
import com.evolveum.axiom.lang.spi.AxiomNameResolver;

@Deprecated
public class AxiomAntlrVisitor<T> extends AbstractAxiomAntlrVisitor<T> {

private final AxiomIdentifierResolver statements;
private final AxiomIdentifierResolver arguments;
private final AxiomNameResolver statements;
private final AxiomNameResolver arguments;
private final AxiomItemStream.Target delegate;

public AxiomAntlrVisitor(String name, AxiomIdentifierResolver statements, AxiomIdentifierResolver arguments, AxiomItemStream.Target delegate,
public AxiomAntlrVisitor(String name, AxiomNameResolver statements, AxiomNameResolver arguments, AxiomItemStream.Target delegate,
Set<AxiomName> limit) {
super(name, limit);
this.statements = statements;
Expand Down
Expand Up @@ -11,15 +11,15 @@
import com.evolveum.axiom.api.AxiomName;
import com.evolveum.axiom.api.stream.AxiomItemStream;
import com.evolveum.axiom.api.stream.AxiomItemStream.Target;
import com.evolveum.axiom.lang.spi.AxiomIdentifierResolver;
import com.evolveum.axiom.lang.spi.AxiomNameResolver;

public class AxiomAntlrVisitor2<T> extends AbstractAxiomAntlrVisitor<T> {

private final AxiomItemStream.TargetWithResolver delegate;
private final AxiomIdentifierResolver sourceLocal;
private final AxiomNameResolver sourceLocal;

public AxiomAntlrVisitor2(String name, AxiomItemStream.TargetWithResolver delegate,
Set<AxiomName> limit, AxiomIdentifierResolver resolver) {
Set<AxiomName> limit, AxiomNameResolver resolver) {
super(name, limit);
this.delegate = delegate;
this.sourceLocal = resolver;
Expand Down
Expand Up @@ -21,10 +21,10 @@
import com.evolveum.axiom.api.AxiomName;
import com.evolveum.axiom.api.stream.AxiomItemStream.TargetWithResolver;
import com.evolveum.axiom.lang.antlr.AxiomParser.ItemContext;
import com.evolveum.axiom.lang.spi.AxiomIdentifierResolver;
import com.evolveum.axiom.lang.spi.AxiomNameResolver;
import com.evolveum.axiom.lang.spi.AxiomSyntaxException;

public class AxiomModelStatementSource extends AxiomAntlrStatementSource implements AxiomIdentifierResolver {
public class AxiomModelStatementSource extends AxiomAntlrStatementSource implements AxiomNameResolver {

private static final String IMPORT = "import";
private static final String NAMESPACE = "namespace";
Expand Down
Expand Up @@ -13,7 +13,7 @@
import com.evolveum.axiom.api.schema.AxiomTypeDefinition;
import com.evolveum.axiom.concepts.SourceLocation;
import com.evolveum.axiom.api.stream.AxiomBuilderStreamTarget.ItemBuilder;
import com.evolveum.axiom.lang.spi.AxiomIdentifierResolver;
import com.evolveum.axiom.lang.spi.AxiomNameResolver;
import com.evolveum.axiom.reactor.Dependency;
import com.google.common.base.Preconditions;
import com.google.common.collect.Collections2;
Expand Down Expand Up @@ -103,12 +103,12 @@ public V onlyValue() {
}

@Override
public AxiomIdentifierResolver itemResolver() {
public AxiomNameResolver itemResolver() {
return rootImpl().itemResolver();
}

@Override
public AxiomIdentifierResolver valueResolver() {
public AxiomNameResolver valueResolver() {
return rootImpl().valueResolver();
}

Expand Down
Expand Up @@ -26,7 +26,7 @@
import com.evolveum.axiom.lang.api.AxiomBuiltIn;
import com.evolveum.axiom.lang.api.IdentifierSpaceKey;
import com.evolveum.axiom.lang.spi.AxiomIdentifierDefinitionImpl;
import com.evolveum.axiom.lang.spi.AxiomIdentifierResolver;
import com.evolveum.axiom.lang.spi.AxiomNameResolver;
import com.evolveum.axiom.lang.spi.AxiomItemDefinitionImpl;
import com.evolveum.axiom.lang.spi.AxiomSemanticException;
import com.evolveum.axiom.lang.spi.AxiomTypeDefinitionImpl;
Expand All @@ -38,7 +38,7 @@

public class ModelReactorContext extends
RuleReactorContext<AxiomSemanticException, ValueContext<?>, ValueActionImpl<?>, RuleContextImpl>
implements AxiomIdentifierResolver {
implements AxiomNameResolver {

private static final AxiomName ROOT = AxiomName.from("root", "root");

Expand Down
Expand Up @@ -12,7 +12,7 @@
import com.evolveum.axiom.concepts.SourceLocation;
import com.evolveum.axiom.lang.antlr.AxiomModelStatementSource;
import com.evolveum.axiom.lang.api.IdentifierSpaceKey;
import com.evolveum.axiom.lang.spi.AxiomIdentifierResolver;
import com.evolveum.axiom.lang.spi.AxiomNameResolver;
import com.evolveum.axiom.api.stream.AxiomBuilderStreamTarget.ValueBuilder;
import com.evolveum.axiom.reactor.Dependency;
import com.google.common.base.Preconditions;
Expand Down Expand Up @@ -97,16 +97,16 @@ public void exportIdentifierSpace(IdentifierSpaceKey namespaceId) {
}

@Override
public AxiomIdentifierResolver itemResolver() {
public AxiomNameResolver itemResolver() {
return axiomAsConditionalDefault().or((prefix, localName) -> {
String namespace = imports.get(prefix);
return AxiomName.from(namespace, localName);
});
}

@Override
public AxiomIdentifierResolver valueResolver() {
return AxiomIdentifierResolver.BUILTIN_TYPES.or((prefix, localName) -> {
public AxiomNameResolver valueResolver() {
return AxiomNameResolver.BUILTIN_TYPES.or((prefix, localName) -> {
String namespace = imports.get(prefix);
return AxiomName.from(namespace, localName);
});
Expand Down
Expand Up @@ -24,7 +24,7 @@
import com.evolveum.axiom.api.schema.AxiomTypeDefinition;
import com.evolveum.axiom.api.schema.AxiomIdentifierDefinition.Scope;
import com.evolveum.axiom.concepts.SourceLocation;
import com.evolveum.axiom.lang.spi.AxiomIdentifierResolver;
import com.evolveum.axiom.lang.spi.AxiomNameResolver;
import com.evolveum.axiom.lang.spi.AxiomSemanticException;

public class ValueContext<V> extends AbstractContext<ItemContext<V>> implements AxiomValueContext<V>, ValueBuilder, Dependency<AxiomValue<V>> {
Expand Down Expand Up @@ -376,7 +376,7 @@ public AxiomSemanticException error(String message, Object... arguments) {
}

@Override
public AxiomIdentifierResolver itemResolver() {
public AxiomNameResolver itemResolver() {
return (prefix, localName) -> {
if(Strings.isNullOrEmpty(prefix)) {
AxiomName localNs = AxiomName.local(localName);
Expand All @@ -402,7 +402,7 @@ public AxiomValue<?> lazyValue() {
}

@Override
public AxiomIdentifierResolver valueResolver() {
public AxiomNameResolver valueResolver() {
return rootImpl().valueResolver();
}

Expand Down
Expand Up @@ -20,30 +20,30 @@

import org.jetbrains.annotations.Nullable;

public interface AxiomIdentifierResolver {
public interface AxiomNameResolver {

final AxiomIdentifierResolver AXIOM_DEFAULT_NAMESPACE = defaultNamespace(AxiomName.AXIOM_NAMESPACE);
final AxiomNameResolver AXIOM_DEFAULT_NAMESPACE = defaultNamespace(AxiomName.AXIOM_NAMESPACE);
final Set<String> BUILTINS = ImmutableSet.of("string","boolean","uri", "int", "binary", "dateTime");
final AxiomIdentifierResolver BUILTIN_TYPES = (prefix, localName) -> {
final AxiomNameResolver BUILTIN_TYPES = (prefix, localName) -> {
if((prefix == null || prefix.isEmpty()) && BUILTINS.contains(localName)) {
return AxiomName.axiom(localName);
}
return null;
};

final AxiomIdentifierResolver NULL_RESOLVER = (p, n) -> null;
final AxiomNameResolver NULL_RESOLVER = (p, n) -> null;

AxiomName resolveIdentifier(@Nullable String prefix, @NotNull String localName);

static AxiomIdentifierResolver defaultNamespace(String namespace) {
static AxiomNameResolver defaultNamespace(String namespace) {
return (prefix, localName) -> Strings.isNullOrEmpty(prefix) ? AxiomName.from(namespace, localName) : null;
}

static AxiomIdentifierResolver nullResolver() {
static AxiomNameResolver nullResolver() {
return NULL_RESOLVER;
}

default AxiomIdentifierResolver or(AxiomIdentifierResolver next) {
default AxiomNameResolver or(AxiomNameResolver next) {
return (prefix, localName) -> {
AxiomName maybe = this.resolveIdentifier(prefix, localName);
if (maybe != null) {
Expand All @@ -53,7 +53,7 @@ default AxiomIdentifierResolver or(AxiomIdentifierResolver next) {
};
}

static AxiomIdentifierResolver defaultNamespaceFromType(AxiomTypeDefinition type) {
static AxiomNameResolver defaultNamespaceFromType(AxiomTypeDefinition type) {
return (prefix, localName) -> {
if(Strings.isNullOrEmpty(prefix)) {
AxiomName localNs = AxiomName.local(localName);
Expand Down
Expand Up @@ -27,7 +27,7 @@
import com.evolveum.axiom.api.stream.AxiomItemTarget;
import com.evolveum.axiom.lang.antlr.AxiomAntlrStatementSource;
import com.evolveum.axiom.lang.impl.ModelReactorContext;
import com.evolveum.axiom.lang.spi.AxiomIdentifierResolver;
import com.evolveum.axiom.lang.spi.AxiomNameResolver;
import com.evolveum.axiom.lang.spi.AxiomSyntaxException;

public class TestTypeDerivation extends AbstractReactorTest {
Expand Down Expand Up @@ -65,7 +65,7 @@ public void axiomTestInheritance() throws IOException, AxiomSyntaxException {
public void axiomData() throws AxiomSyntaxException, FileNotFoundException, IOException {
AxiomSchemaContext context = loadModel();
AxiomAntlrStatementSource stream = dataSource(JOHN_DOE_FILE);
AxiomItemTarget target = new AxiomItemTarget(context, AxiomIdentifierResolver.defaultNamespace(DERIVED_PERSON.namespace()));
AxiomItemTarget target = new AxiomItemTarget(context, AxiomNameResolver.defaultNamespace(DERIVED_PERSON.namespace()));
stream.stream(target);
AxiomItem<?> root = target.get();
assertEquals(root.name(), DERIVED_PERSON.localName("person"));
Expand Down

0 comments on commit f3a0fff

Please sign in to comment.