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.CompilationUnitElement;
import org.jsweet.transpiler.model.ExtendedElement;
import org.jsweet.transpiler.model.ExtendedElementFactory;
import org.jsweet.transpiler.model.ForeachLoopElement;
import org.jsweet.transpiler.model.IdentifierElement;
import org.jsweet.transpiler.model.ImportElement;
@ -580,6 +581,13 @@ public class PrinterAdapter {
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.
*/

View File

@ -4,4 +4,6 @@ public interface VariableElement extends ExtendedElement, javax.lang.model.eleme
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
public int 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.type.TypeMirror;
import org.jsweet.transpiler.model.ExtendedElement;
import org.jsweet.transpiler.model.ExtendedElementFactory;
import org.jsweet.transpiler.model.VariableElement;
import com.sun.tools.javac.tree.JCTree.JCVariableDecl;
@ -82,4 +84,9 @@ public class VariableElementSupport extends ExtendedElementSupport<JCVariableDec
return tree.sym.getConstantValue();
}
@Override
public ExtendedElement getVariableTypeTree() {
return ExtendedElementFactory.INSTANCE.create(tree.vartype);
}
}