fixes for custom adapters

This commit is contained in:
Renaud Pawlak 2021-01-04 18:12:20 +01:00
parent d88a80c3cc
commit c92267bcd6
4 changed files with 27 additions and 0 deletions

View File

@ -53,6 +53,7 @@ import org.jsweet.transpiler.model.CaseElement;
import org.jsweet.transpiler.model.TypeCastElement; import org.jsweet.transpiler.model.TypeCastElement;
import org.jsweet.transpiler.model.CompilationUnitElement; import org.jsweet.transpiler.model.CompilationUnitElement;
import org.jsweet.transpiler.model.ExtendedElement; import org.jsweet.transpiler.model.ExtendedElement;
import org.jsweet.transpiler.model.ExtendedElementFactory;
import org.jsweet.transpiler.model.ForeachLoopElement; import org.jsweet.transpiler.model.ForeachLoopElement;
import org.jsweet.transpiler.model.IdentifierElement; import org.jsweet.transpiler.model.IdentifierElement;
import org.jsweet.transpiler.model.ImportElement; import org.jsweet.transpiler.model.ImportElement;
@ -580,6 +581,13 @@ public class PrinterAdapter {
return printer.getParentElement(); return printer.getParentElement();
} }
/**
* Gets currently scanned element.
*/
public final ExtendedElement getCurrentElement() {
return ExtendedElementFactory.INSTANCE.create(printer.getCurrent());
}
/** /**
* Gets the parent element in the printer's scanning stack. * Gets the parent element in the printer's scanning stack.
*/ */

View File

@ -4,4 +4,6 @@ public interface VariableElement extends ExtendedElement, javax.lang.model.eleme
javax.lang.model.element.VariableElement getStandardElement(); javax.lang.model.element.VariableElement getStandardElement();
ExtendedElement getVariableTypeTree();
} }

View File

@ -70,6 +70,16 @@ public class ExtendedElementSupport<T extends JCTree> implements ExtendedElement
} }
} }
@SuppressWarnings("rawtypes")
@Override
public boolean equals(Object obj) {
if (!(obj instanceof ExtendedElementSupport)) {
return false;
} else {
return this.tree == ((ExtendedElementSupport)obj).tree;
}
}
@Override @Override
public int hashCode() { public int hashCode() {
return tree.hashCode(); return tree.hashCode();

View File

@ -12,6 +12,8 @@ import javax.lang.model.element.Modifier;
import javax.lang.model.element.Name; import javax.lang.model.element.Name;
import javax.lang.model.type.TypeMirror; import javax.lang.model.type.TypeMirror;
import org.jsweet.transpiler.model.ExtendedElement;
import org.jsweet.transpiler.model.ExtendedElementFactory;
import org.jsweet.transpiler.model.VariableElement; import org.jsweet.transpiler.model.VariableElement;
import com.sun.tools.javac.tree.JCTree.JCVariableDecl; import com.sun.tools.javac.tree.JCTree.JCVariableDecl;
@ -82,4 +84,9 @@ public class VariableElementSupport extends ExtendedElementSupport<JCVariableDec
return tree.sym.getConstantValue(); return tree.sym.getConstantValue();
} }
@Override
public ExtendedElement getVariableTypeTree() {
return ExtendedElementFactory.INSTANCE.create(tree.vartype);
}
} }