Exemplo n.º 1
0
  protected void inherit(GwtcUnit data) {
    if (data.isFindAllParents()) {

    } else if (data.isFindParent()) {
      Object o = data.getParent();
    }
  }
Exemplo n.º 2
0
 protected void addGwtcClass(Gwtc gwtc, Class<?> clazz) {
   // Generate a new gwt.xml file and inherit it.
   GwtcUnit node = nodes.get(clazz);
   String inheritName =
       node.generateGwtXml(gwtc, clazz.getPackage().getName(), clazz.getSimpleName());
   inheritGwtXml(inheritName);
   addGwtcSettings(gwtc);
 }
Exemplo n.º 3
0
 protected void addGwtcPackage(Gwtc gwtc, Package pkg, boolean recursive) {
   String name = pkg.getName();
   int i = name.lastIndexOf('.');
   name = Character.toUpperCase(name.charAt(i + 1)) + name.substring(i + 2) + "_Package";
   GwtcUnit node = nodes.get(pkg);
   String inherit = node.generateGwtXml(gwtc, pkg.getName(), name);
   inheritGwtXml(inherit);
   addGwtcSettings(gwtc);
   maybeAddAncestors(gwtc, pkg);
   if (recursive) {
     needChildren.add(pkg);
   }
 }
Exemplo n.º 4
0
 public void addChild(GwtcUnit data) {
   children.add(data);
   assert data.parent == null || data.parent == this
       : "GwtcUnit "
           + data
           + " already has a parent; "
           + data.parent
           + "; cannot set "
           + this
           + " as new parent.";
   data.parent = this;
 }
Exemplo n.º 5
0
 private void scanPackage(Package pkg) {
   GwtcUnit data = nodes.get(pkg);
   if (data == null) {
     Object ancestor = findAncestor(pkg);
     if (ancestor != null) {
       addPackage((Package) ancestor);
     }
     return;
   } else if (data.gwtc == null) {
     return;
   }
   Gwtc gwtc = pkg.getAnnotation(Gwtc.class);
   addGwtcPackage(gwtc, pkg, false);
   X_Log.trace(getClass(), "Parent of ", pkg, "is", data.getParent());
   ClassLoader cl = Thread.currentThread().getContextClassLoader();
   for (ClassFile file : classpath.get().findClassesInPackage(pkg.getName())) {
     X_Log.trace(getClass(), "Checking class file ", file.getName());
     try {
       if (file.getEnclosedName().equals("package-info")) {
         X_Log.info(getClass(), "Loading package", file);
         Package p = GwtReflectJre.getPackage(file.getPackage(), cl);
         if (!finishedPackages.contains(p)) {
           gwtcService.addPackage(p, false);
         }
       } else {
         Class<?> clazz = cl.loadClass(file.getName());
         X_Log.trace(getClass(), "Loaded class", clazz);
         if (!finishedClasses.contains(clazz)) {
           X_Log.info(getClass(), "Adding class", clazz);
           gwtcService.addClass(clazz);
         }
       }
     } catch (Exception e) {
       X_Log.warn(getClass(), "Error encountered trying to load class ", file.getName(), e);
     }
   }
 }
Exemplo n.º 6
0
  private void scanClass(Class<?> clazz) {
    GwtcUnit data = nodes.get(clazz);
    if (data == null) {
      Object ancestor = findAncestor(clazz);
      return;
    }
    if (data.gwtc == null) {
      return;
    }
    gwtcService.addClass(clazz);
    Object parent;
    if (data.isFindParent()) {
      parent = findAncestor(data.source);
      if (parent != null) {
        GwtcUnit parentNode = nodes.get(parent);
        data.setParent(parentNode);
        if (data.isFindAllParents()) {
          while (parent != null) {
            Object ancestor = findAncestor(parent);
            if (ancestor == null) {
              break;
            } else {
              GwtcUnit ancestorNode = nodes.get(ancestor);
              parentNode.setParent(ancestorNode);
              parent = ancestor;
              parentNode = ancestorNode;
            }
          }
        }
      }
    }

    Gwtc gwtc = clazz.getAnnotation(Gwtc.class);
    Class<?> c;
    parent = c = clazz;
    if (gwtc == null) {
      while (c != Object.class) {
        gwtc = c.getAnnotation(Gwtc.class);
        if (gwtc != null) {
          parent = c;
          maybeAddAncestors(gwtc, c);
          break;
        }
        c = c.getSuperclass();
      }
      Package pkg;
      parent = pkg = clazz.getPackage();
      if (gwtc == null) {
        gwtc = pkg.getAnnotation(Gwtc.class);
        String parentName = pkg.getName();
        search:
        while (gwtc == null) {
          int ind = parentName.lastIndexOf('.');
          if (ind == -1) {
            break;
          }
          parentName = parentName.substring(0, ind);
          pkg = GwtReflect.getPackage(parentName);
          while (pkg == null) {
            ind = parentName.lastIndexOf('.');
            if (ind == -1) {
              X_Log.warn("No package found for ", clazz.getPackage(), "; aborting @Gwtc search");
              break search;
            }
            parentName = parentName.substring(0, ind);
            pkg = GwtReflect.getPackage(parentName);
          }
          gwtc = pkg.getAnnotation(Gwtc.class);
        }
        if (gwtc != null) {
          parent = pkg;
          maybeAddAncestors(gwtc, pkg);
        }
      } else {
        maybeAddAncestors(gwtc, pkg);
      }
    } else {
      maybeAddAncestors(gwtc, c);
      inherit(data);
    }
    if (parent != null) {
      X_Log.trace(getClass(), "Next annotated parent of ", c, "is", parent);
    }
  }