wrap-java: Circular references with javaparser-core-3.28.0.jar

Abierto
#541 3 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
25/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
java, swift
Área
devtools

Línea de trabajo

Reproduce wrap-java con javaparser-core-3.28.0.jar e inspecciona el wrapper de Swift Node generado junto con los diagnósticos de referencias circulares reportados. Traza cómo el generador de wrappers gestiona estas referencias; se considera terminado cuando esta entrada se genera sin errores de referencias circulares.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Here's one of the cycles being complained about:

// Auto-generated by Java-to-Swift wrapper generator.
import CSwiftJavaJNI
import SwiftJava

@JavaClass("com.github.javaparser.ast.Node", implements: HasParentNode<Node>.self, Visitable.self, NodeWithRange<Node>.self, NodeWithTokenRange<Node>.self)
open class Node: JavaObject {
  /**
   * Java method `getMetaModel`.
   * 
   * ### Java method signature
   * ```java
   * public com.github.javaparser.metamodel.NodeMetaModel com.github.javaparser.ast.Node.getMetaModel()
   * ```
   */
@JavaMethod
  open func getMetaModel() -> NodeMetaModel!

  /**
   * Java method `setParentNode`.
   * 
   * ### Java method signature
   * ```java
   * public com.github.javaparser.ast.Node com.github.javaparser.ast.Node.setParentNode(com.github.javaparser.ast.Node)
   * ```
   */
@JavaMethod
  open func setParentNode(_ newParentNode: Node?) -> Node!

  /**
   * Java method `getPrinter`.
   * 
   * ### Java method signature
   * ```java
   * protected com.github.javaparser.printer.Printer com.github.javaparser.ast.Node.getPrinter()
   * ```
   */
@JavaMethod
  open func getPrinter() -> Printer!

  /**
   * Java method `getPrinter`.
   * 
   * ### Java method signature
   * ```java
   * protected com.github.javaparser.printer.Printer com.github.javaparser.ast.Node.getPrinter(com.github.javaparser.printer.configuration.PrinterConfiguration)
   * ```
   */
@JavaMethod
  open func getPrinter(_ configuration: PrinterConfiguration?) -> Printer!

  /**
   * Java method `setTokenRange`.
   * 
   * ### Java method signature
   * ```java
   * public com.github.javaparser.ast.Node com.github.javaparser.ast.Node.setTokenRange(com.github.javaparser.TokenRange)
   * ```
   */
@JavaMethod
  open func setTokenRange(_ tokenRange: TokenRange?) -> Node!

  /**
   * Java method `setRange`.
   * 
   * ### Java method signature
   * ```java
   * public com.github.javaparser.ast.Node com.github.javaparser.ast.Node.setRange(com.github.javaparser.Range)
   * ```
   */
@JavaMethod
  open func setRange(_ range: Range?) -> Node!

  /**
   * Java method `setLineComment`.
   * 
   * ### Java method signature
   * ```java
   * public final com.github.javaparser.ast.Node com.github.javaparser.ast.Node.setLineComment(java.lang.String)
   * ```
   */
@JavaMethod
  open func setLineComment(_ comment: String) -> Node!

  /**
   * Java method `setData`.
   * 
   * ### Java method signature
   * ```java
   * public <M> void com.github.javaparser.ast.Node.setData(com.github.javaparser.ast.DataKey<M>,M)
   * ```
   */
@JavaMethod
  open func setData<M: AnyJavaObject>(_ key: DataKey<M>?, _ object: M?)

  /**
   * Java method `containsData`.
   * 
   * ### Java method signature
   * ```java
   * public boolean com.github.javaparser.ast.Node.containsData(com.github.javaparser.ast.DataKey<?>)
   * ```
   */
@JavaMethod
  open func containsData(_ key: DataKey<JavaObject>?) -> Bool

  /**
   * Java method `removeData`.
   * 
   * ### Java method signature
   * ```java
   * public void com.github.javaparser.ast.Node.removeData(com.github.javaparser.ast.DataKey<?>)
   * ```
   */
@JavaMethod
  open func removeData(_ key: DataKey<JavaObject>?)

  /**
   * Java method `removeForced`.
   * 
   * ### Java method signature
   * ```java
   * public void com.github.javaparser.ast.Node.removeForced()
   * ```
   */
@JavaMethod
  open func removeForced()

  /**
   * Java method `removeComment`.
   * 
   * ### Java method signature
   * ```java
   * public com.github.javaparser.ast.Node com.github.javaparser.ast.Node.removeComment()
   * ```
   */
@JavaMethod
  open func removeComment() -> Node!

  /**
   * Java method `findRootNode`.
   * 
   * ### Java method signature
   * ```java
   * public com.github.javaparser.ast.Node com.github.javaparser.ast.Node.findRootNode()
   * ```
   */
@JavaMethod
  open func findRootNode() -> Node!

  /**
   * Java method `isAncestorOf`.
   * 
   * ### Java method signature
   * ```java
   * public boolean com.github.javaparser.ast.Node.isAncestorOf(com.github.javaparser.ast.Node)
   * ```
   */
@JavaMethod
  open func isAncestorOf(_ descendant: Node?) -> Bool

  /**
   * Java method `hasScope`.
   * 
   * ### Java method signature
   * ```java
   * public boolean com.github.javaparser.ast.Node.hasScope()
   * ```
   */
@JavaMethod
  open func hasScope() -> Bool

  /**
   * Java method `isPhantom`.
   * 
   * ### Java method signature
   * ```java
   * public boolean com.github.javaparser.ast.Node.isPhantom()
   * ```
   */
@JavaMethod
  open func isPhantom() -> Bool

  /**
   * Java method `registerForSubtree`.
   * 
   * ### Java method signature
   * ```java
   * public void com.github.javaparser.ast.Node.registerForSubtree(com.github.javaparser.ast.observer.AstObserver)
   * ```
   */
@JavaMethod
  open func registerForSubtree(_ observer: AstObserver?)

  /**
   * Java method `customInitialization`.
   * 
   * ### Java method signature
   * ```java
   * protected void com.github.javaparser.ast.Node.customInitialization()
   * ```
   */
@JavaMethod
  open func customInitialization()

  /**
   * Java method `setAsParentNodeOf`.
   * 
   * ### Java method signature
   * ```java
   * protected void com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.NodeList<? extends com.github.javaparser.ast.Node>)
   * ```
   */
@JavaMethod
  open func setAsParentNodeOf(_ list: NodeList<Node>?)

  /**
   * Java method `setAsParentNodeOf`.
   * 
   * ### Java method signature
   * ```java
   * protected void com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
   * ```
   */
@JavaMethod
  open func setAsParentNodeOf(_ childNode: Node?)

  /**
   * Java method `createDefaultPrinter`.
   * 
   * ### Java method signature
   * ```java
   * protected com.github.javaparser.printer.Printer com.github.javaparser.ast.Node.createDefaultPrinter(com.github.javaparser.printer.configuration.PrinterConfiguration)
   * ```
   */
@JavaMethod
  open func createDefaultPrinter(_ configuration: PrinterConfiguration?) -> Printer!

  /**
   * Java method `createDefaultPrinter`.
   * 
   * ### Java method signature
   * ```java
   * protected com.github.javaparser.printer.Printer com.github.javaparser.ast.Node.createDefaultPrinter()
   * ```
   */
@JavaMethod
  open func createDefaultPrinter() -> Printer!

  /**
   * Java method `setBlockComment`.
   * 
   * ### Java method signature
   * ```java
   * public final com.github.javaparser.ast.Node com.github.javaparser.ast.Node.setBlockComment(java.lang.String)
   * ```
   */
@JavaMethod
  open func setBlockComment(_ comment: String) -> Node!

  /**
   * Java method `addOrphanComment`.
   * 
   * ### Java method signature
   * ```java
   * public void com.github.javaparser.ast.Node.addOrphanComment(com.github.javaparser.ast.comments.Comment)
   * ```
   */
@JavaMethod
  open func addOrphanComment(_ comment: Comment?)

  /**
   * Java method `removeOrphanComment`.
   * 
   * ### Java method signature
   * ```java
   * public boolean com.github.javaparser.ast.Node.removeOrphanComment(com.github.javaparser.ast.comments.Comment)
   * ```
   */
@JavaMethod
  open func removeOrphanComment(_ comment: Comment?) -> Bool

  /**
   * Java method `getSymbolResolver`.
   * 
   * ### Java method signature
   * ```java
   * public com.github.javaparser.resolution.SymbolResolver com.github.javaparser.ast.Node.getSymbolResolver()
   * ```
   */
@JavaMethod
  open func getSymbolResolver() -> SymbolResolver!

  /**
   * Java method `getParentNodeForChildren`.
   * 
   * ### Java method signature
   * ```java
   * public com.github.javaparser.ast.Node com.github.javaparser.ast.Node.getParentNodeForChildren()
   * ```
   */
@JavaMethod
  open func getParentNodeForChildren() -> Node!

  /**
   * Java method `getDefaultPrinterConfiguration`.
   * 
   * ### Java method signature
   * ```java
   * protected com.github.javaparser.printer.configuration.PrinterConfiguration com.github.javaparser.ast.Node.getDefaultPrinterConfiguration()
   * ```
   */
@JavaMethod
  open func getDefaultPrinterConfiguration() -> PrinterConfiguration!

  /**
   * Java method `remove`.
   * 
   * ### Java method signature
   * ```java
   * public boolean com.github.javaparser.ast.Node.remove()
   * ```
   */
@JavaMethod
  open func remove() -> Bool

  /**
   * Java method `remove`.
   * 
   * ### Java method signature
   * ```java
   * public boolean com.github.javaparser.ast.Node.remove(com.github.javaparser.ast.Node)
   * ```
   */
@JavaMethod
  open func remove(_ node: Node?) -> Bool

  /**
   * Java method `equals`.
   * 
   * ### Java method signature
   * ```java
   * public boolean com.github.javaparser.ast.Node.equals(java.lang.Object)
   * ```
   */
@JavaMethod
  open override func equals(_ obj: JavaObject?) -> Bool

  /**
   * Java method `toString`.
   * 
   * ### Java method signature
   * ```java
   * public final java.lang.String com.github.javaparser.ast.Node.toString()
   * ```
   */
@JavaMethod
  open override func toString() -> String

  /**
   * Java method `toString`.
   * 
   * ### Java method signature
   * ```java
   * public final java.lang.String com.github.javaparser.ast.Node.toString(com.github.javaparser.printer.configuration.PrinterConfiguration)
   * ```
   */
@JavaMethod
  open func toString(_ configuration: PrinterConfiguration?) -> String

  /**
   * Java method `hashCode`.
   * 
   * ### Java method signature
   * ```java
   * public final int com.github.javaparser.ast.Node.hashCode()
   * ```
   */
@JavaMethod
  open override func hashCode() -> Int32

  /**
   * Java method `clone`.
   * 
   * ### Java method signature
   * ```java
   * public com.github.javaparser.ast.Node com.github.javaparser.ast.Node.clone()
   * ```
   */
@JavaMethod
  open override func clone() -> Node!

  /**
   * Java method `replace`.
   * 
   * ### Java method signature
   * ```java
   * public boolean com.github.javaparser.ast.Node.replace(com.github.javaparser.ast.Node)
   * ```
   */
@JavaMethod
  open func replace(_ node: Node?) -> Bool

  /**
   * Java method `replace`.
   * 
   * ### Java method signature
   * ```java
   * public boolean com.github.javaparser.ast.Node.replace(com.github.javaparser.ast.Node,com.github.javaparser.ast.Node)
   * ```
   */
@JavaMethod
  open func replace(_ node: Node?, _ replacementNode: Node?) -> Bool

  /**
   * Java method `isRegistered`.
   * 
   * ### Java method signature
   * ```java
   * public boolean com.github.javaparser.ast.Node.isRegistered(com.github.javaparser.ast.observer.AstObserver)
   * ```
   */
@JavaMethod
  open func isRegistered(_ observer: AstObserver?) -> Bool

  /**
   * Java method `register`.
   * 
   * ### Java method signature
   * ```java
   * public void com.github.javaparser.ast.Node.register(com.github.javaparser.ast.observer.AstObserver)
   * ```
   */
@JavaMethod
  open func register(_ observer: AstObserver?)

  /**
   * Java method `unregister`.
   * 
   * ### Java method signature
   * ```java
   * public void com.github.javaparser.ast.Node.unregister(com.github.javaparser.ast.observer.AstObserver)
   * ```
   */
@JavaMethod
  open func unregister(_ observer: AstObserver?)

  /**
   * Java method `setComment`.
   * 
   * ### Java method signature
   * ```java
   * public com.github.javaparser.ast.Node com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
   * ```
   */
@JavaMethod
  open func setComment(_ comment: Comment?) -> Node!

  /**
   * Java method `getData`.
   * 
   * ### Java method signature
   * ```java
   * public <M> M com.github.javaparser.ast.Node.getData(com.github.javaparser.ast.DataKey<M>)
   * ```
   */
@JavaMethod(typeErasedResult: "M!")
  open func getData<M: AnyJavaObject>(_ key: DataKey<M>?) -> M!
}
extension JavaClass<Node> {
  @JavaStaticField(isFinal: true)
  public var ABSOLUTE_BEGIN_LINE: Int32

  @JavaStaticField(isFinal: true)
  public var ABSOLUTE_END_LINE: Int32

  @JavaStaticField(isFinal: true)
  public var SYMBOL_RESOLVER_KEY: DataKey<SymbolResolver>!

  @JavaStaticField(isFinal: true)
  public var PRINTER_KEY: DataKey<Printer>!
}
// Auto-generated by Java-to-Swift wrapper generator.
import CSwiftJavaJNI
import SwiftJava

@JavaInterface("com.github.javaparser.HasParentNode", extends: Observable.self)
public struct HasParentNode<T: AnyJavaObject> {
  /**
   * Java method `setParentNode`.
   * 
   * ### Java method signature
   * ```java
   * public abstract T com.github.javaparser.HasParentNode.setParentNode(com.github.javaparser.ast.Node)
   * ```
   */
@JavaMethod(typeErasedResult: "T!")
  public func setParentNode(_ parentNode: Node?) -> T!

  /**
   * Java method `hasParentNode`.
   * 
   * ### Java method signature
   * ```java
   * public default boolean com.github.javaparser.HasParentNode.hasParentNode()
   * ```
   */
@JavaMethod
  public func hasParentNode() -> Bool

  /**
   * Java method `isDescendantOf`.
   * 
   * ### Java method signature
   * ```java
   * public default boolean com.github.javaparser.HasParentNode.isDescendantOf(com.github.javaparser.ast.Node)
   * ```
   */
@JavaMethod
  public func isDescendantOf(_ ancestor: Node?) -> Bool

  /**
   * Java method `getParentNodeForChildren`.
   * 
   * ### Java method signature
   * ```java
   * public abstract com.github.javaparser.ast.Node com.github.javaparser.HasParentNode.getParentNodeForChildren()
   * ```
   */
@JavaMethod
  public func getParentNodeForChildren() -> Node!

  /**
   * Java method `isRegistered`.
   * 
   * ### Java method signature
   * ```java
   * public abstract boolean com.github.javaparser.ast.observer.Observable.isRegistered(com.github.javaparser.ast.observer.AstObserver)
   * ```
   */
@JavaMethod
  public func isRegistered(_ observer: AstObserver?) -> Bool

  /**
   * Java method `register`.
   * 
   * ### Java method signature
   * ```java
   * public abstract void com.github.javaparser.ast.observer.Observable.register(com.github.javaparser.ast.observer.AstObserver)
   * ```
   */
@JavaMethod
  public func register(_ observer: AstObserver?)

  /**
   * Java method `unregister`.
   * 
   * ### Java method signature
   * ```java
   * public abstract void com.github.javaparser.ast.observer.Observable.unregister(com.github.javaparser.ast.observer.AstObserver)
   * ```
   */
@JavaMethod
  public func unregister(_ observer: AstObserver?)
}
Lenguaje dominante
Swift
Estrellas
1.3k
Forks
127
Merge medio
2 d 14 h
PR fusionados (30 d)
5

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de swiftlang/swift-java

Todos los issues de swiftlang/swift-java

Issues similares

Más issues de Swift

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.