Example #1
0
  private void compile(
      @NotNull ClassDescriptorSourceUnit sourceFile, @NotNull JProxyCompilerContext context) {
    if (sourceFile.getClassBytes() != null) {
      return; // Ya ha sido compilado seguramente por dependencia de un archivo compilado
              // inmediatamente antes,
    }
    // recuerda que el atributo classBytes se pone a null antes de compilar los archivos
    // cambiados/nuevos

    compiler.compileSourceFile(sourceFile, context, customClassLoader, sourceRegistry);
  }
Example #2
0
  private void saveClasses(@NotNull ClassDescriptorSourceUnit sourceFile) {
    // Salvamos la clase principal
    {
      File classFilePath =
          ClassDescriptor.getAbsoluteClassFilePathFromClassNameAndClassPath(
              sourceFile.getClassName(), folderClasses);
      JProxyUtil.saveFile(classFilePath, sourceFile.getClassBytes());
    }

    // Salvamos las innerclasses si hay, no hay problema de clases inner no detectadas pues lo están
    // todas pues
    // sólo se salva tras una compilación
    LinkedList<ClassDescriptorInner> innerClassDescList = sourceFile.getInnerClassDescriptors();
    if (innerClassDescList != null && !innerClassDescList.isEmpty()) {
      for (ClassDescriptorInner innerClassDesc : innerClassDescList) {
        File classFilePath =
            ClassDescriptor.getAbsoluteClassFilePathFromClassNameAndClassPath(
                innerClassDesc.getClassName(), folderClasses);
        JProxyUtil.saveFile(classFilePath, innerClassDesc.getClassBytes());
      }
    }
  }