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

xapi.dev.X_Gwtc Maven / Gradle / Ivy

package xapi.dev;

import java.lang.annotation.Annotation;
import java.lang.reflect.Method;

import xapi.dev.gwtc.api.GwtcService;
import xapi.gwtc.api.DefaultValue;
import xapi.gwtc.api.Gwtc;
import xapi.inject.X_Inject;
import xapi.log.X_Log;

public class X_Gwtc {

  public static void compile(String entryPoint, Gwtc ... settings) {
    final GwtcService service = X_Inject.instance(GwtcService.class);
    try {
      service.addClass(Thread.currentThread().getContextClassLoader().loadClass(entryPoint));
    } catch (ClassNotFoundException e) {
      X_Log.error(X_Gwtc.class, "Could not find class",entryPoint,"from",Thread.currentThread().getContextClassLoader(), e);
    }
  }
  
  public static GwtcService getServiceFor(Method method) {
    final GwtcService service = X_Inject.instance(GwtcService.class);
    if (method != null) {
      service.addMethod(method);
    }
    return service;
  }
  
  public static GwtcService getServiceFor(Class clazz) {
    final GwtcService service = X_Inject.instance(GwtcService.class);
    if (clazz != null) {
      service.addClass(clazz);
    }
    return service;
  }
  
  public static GwtcService getServiceFor(Package pkg, boolean recursive) {
    final GwtcService service = X_Inject.instance(GwtcService.class);
    if (pkg != null) {
      service.addPackage(pkg, recursive);
    }
    return service;
  }

  public static DefaultValue getDefaultValue(Class param, Annotation[] annos) {
    for (Annotation anno : annos) {
      if (anno.annotationType().equals(DefaultValue.class)) {
        return (DefaultValue) anno;
      }
    }
    if (param.isPrimitive()) {
      if (param == char.class) {
        return DefaultValue.Defaults.DEFAULT_CHAR;
      } else if (param == long.class) {
        return DefaultValue.Defaults.DEFAULT_LONG;
      } else if (param == float.class) {
        return DefaultValue.Defaults.DEFAULT_FLOAT;
      } else if (param == double.class) {
        return DefaultValue.Defaults.DEFAULT_DOUBLE;
      } else if (param == boolean.class) {
        return DefaultValue.Defaults.DEFAULT_BOOLEAN;
      } else {
        return DefaultValue.Defaults.DEFAULT_INT;
      }
    } else if (param == String.class) {
      return DefaultValue.Defaults.DEFAULT_STRING;
    } else if (param.isArray()){
      return DefaultValue.Defaults.DEFAULT_OBJECT;
    } else {
      DefaultValue value = param.getAnnotation(DefaultValue.class);
      if (value == null) {
        return DefaultValue.Defaults.DEFAULT_OBJECT;
      } else {
        return value;
      }
    }
  }
  
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy