public ClassNode getUnresolvedSuperClass(boolean useRedirect) {
   if (!useRedirect) return superClass;
   if (redirect != null) return redirect().getUnresolvedSuperClass(true);
   lazyClassInit();
   return superClass;
 }
 public ClassNode[] getUnresolvedInterfaces(boolean useRedirect) {
   if (!useRedirect) return interfaces;
   if (redirect != null) return redirect().getUnresolvedInterfaces(true);
   lazyClassInit();
   return interfaces;
 }
  /**
   * Finds a field matching the given name in this class.
   *
   * @param name the name of the field of interest
   * @return the method matching the given name and parameters or null
   */
  public FieldNode getDeclaredField(String name) {
    if (redirect != null) return redirect().getDeclaredField(name);

    lazyClassInit();
    return fieldIndex == null ? null : fieldIndex.get(name);
  }
 /**
  * This methods returns a list of all methods of the given name defined in the current class
  *
  * @return the method list
  * @see #getMethods(String)
  */
 public List<MethodNode> getDeclaredMethods(String name) {
   if (redirect != null) return redirect().getDeclaredMethods(name);
   lazyClassInit();
   return methods.getNotNull(name);
 }
 public List<ConstructorNode> getDeclaredConstructors() {
   if (redirect != null) return redirect().getDeclaredConstructors();
   lazyClassInit();
   if (constructors == null) constructors = new ArrayList<ConstructorNode>();
   return constructors;
 }
 /** @return the list of methods associated with this ClassNode */
 public List<MethodNode> getMethods() {
   if (redirect != null) return redirect().getMethods();
   lazyClassInit();
   return methodsList;
 }
 /** @return the array of interfaces which this ClassNode implements */
 public ClassNode[] getInterfaces() {
   if (redirect != null) return redirect().getInterfaces();
   lazyClassInit();
   return interfaces;
 }
 /** @return the list of FieldNode's associated with this ClassNode */
 public List<FieldNode> getFields() {
   if (redirect != null) return redirect().getFields();
   lazyClassInit();
   if (fields == null) fields = new LinkedList<FieldNode>();
   return fields;
 }
 public List<AnnotationNode> getAnnotations(ClassNode type) {
   if (redirect != null) return redirect.getAnnotations(type);
   lazyClassInit();
   return super.getAnnotations(type);
 }