protected void inherit(GwtcUnit data) { if (data.isFindAllParents()) { } else if (data.isFindParent()) { Object o = data.getParent(); } }
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); }
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); } }
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; }
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); } } }
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); } }