
org.javersion.object.mapping.JaversionMappingResolver Maven / Gradle / Ivy
package org.javersion.object.mapping;
import static com.google.common.base.Strings.isNullOrEmpty;
import static java.util.Arrays.asList;
import static java.util.stream.Collectors.toMap;
import java.util.Map;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import org.javersion.object.VersionCreator;
import org.javersion.object.VersionValue;
import org.javersion.object.Versionable;
import org.javersion.object.Versionable.Subclass;
import org.javersion.reflect.*;
public class JaversionMappingResolver implements MappingResolver {
@Nullable
@Override
public Result delegateValue(MethodDescriptor method) {
if (method.hasAnnotation(VersionValue.class)) {
return Result.of(method);
}
return Result.notFound();
}
@Nullable
@Override
public Result creator(T methodOrConstructor) {
if (methodOrConstructor.hasAnnotation(VersionCreator.class)) {
return Result.of(methodOrConstructor);
}
return Result.notFound();
}
@Nullable
@Override
public Result alias(TypeDescriptor type) {
Versionable versionable = type.getAnnotation(Versionable.class);
if (versionable != null && !isNullOrEmpty(versionable.alias())) {
return Result.of(versionable.alias());
}
return Result.notFound();
}
@Nullable
@Override
public Result
© 2015 - 2025 Weber Informatics LLC | Privacy Policy