diff options
Diffstat (limited to 'javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithImplements.java')
-rw-r--r-- | javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithImplements.java | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithImplements.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithImplements.java new file mode 100644 index 000000000..3f5192587 --- /dev/null +++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/nodeTypes/NodeWithImplements.java @@ -0,0 +1,37 @@ +package com.github.javaparser.ast.nodeTypes; + +import java.util.List; + +import com.github.javaparser.ast.Node; +import com.github.javaparser.ast.type.ClassOrInterfaceType; + +public interface NodeWithImplements<T> { + public List<ClassOrInterfaceType> getImplements(); + + public T setImplements(List<ClassOrInterfaceType> implementsList); + + /** + * Add an implements to this + * + * @param name the name of the type to extends from + * @return this + */ + @SuppressWarnings("unchecked") + public default T addImplements(String name) { + ClassOrInterfaceType classOrInterfaceType = new ClassOrInterfaceType(name); + getImplements().add(classOrInterfaceType); + classOrInterfaceType.setParentNode((Node) this); + return (T) this; + } + + /** + * Add an implements to this and automatically add the import + * + * @param clazz the type to implements from + * @return this + */ + public default T addImplements(Class<?> clazz) { + ((Node) this).tryAddImportToParentCompilationUnit(clazz); + return addImplements(clazz.getSimpleName()); + } +} |