All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.jangaroo.jooc.backend.ModuleResolverBase Maven / Gradle / Ivy

There is a newer version: 4.1.17
Show newest version
package net.jangaroo.jooc.backend;

import net.jangaroo.jooc.CompilationUnitResolver;
import net.jangaroo.jooc.Jooc;
import net.jangaroo.jooc.ast.Annotation;

import java.util.Map;
import java.util.Objects;

public abstract class ModuleResolverBase {

  protected final CompilationUnitResolver compilationUnitModelResolver;

  public ModuleResolverBase(CompilationUnitResolver compilationUnitModelResolver) {
    this.compilationUnitModelResolver = compilationUnitModelResolver;
  }

  protected String getNativeAnnotationRequireValue(Annotation nativeAnnotation) {
    return (String) getAnnotationParameterValue(nativeAnnotation, Jooc.NATIVE_ANNOTATION_REQUIRE_PROPERTY, "");
  }

  public static String getNativeAnnotationValue(Annotation nativeAnnotation) {
    return (String) getAnnotationParameterValue(nativeAnnotation, null, null);
  }

  protected static Object getAnnotationParameterValue(Annotation nativeAnnotation, String name,
                                                      Object defaultValue) {
    Map propertiesByName = nativeAnnotation.getPropertiesByName();
    for (Map.Entry entry : propertiesByName.entrySet()) {
      if (Objects.equals(entry.getKey(), name)) {
        String stringValue = (String) entry.getValue();
        return stringValue == null ? defaultValue : stringValue;
      }
    }
    return null;
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy