code: public static List<TypeName> getTypeArguments(TypeElement element) {
  		final List<TypeName> result = new ArrayList<>();
  
  		if (element.getKind() == ElementKind.CLASS) {
  			if (element.getSuperclass() instanceof DeclaredType) {
  				result.addAll(convert(((DeclaredType) element.getSuperclass()).getTypeArguments()));
  			}
  		} else if (element.getKind() == ElementKind.INTERFACE) {
  
  			List<? extends TypeMirror> interfaces = element.getInterfaces();
  
  			for (TypeMirror item : interfaces) {
  				item.accept(new SimpleTypeVisitor7<Void, Void>() {
  
  					@Override
  					public Void visitDeclared(DeclaredType t, Void p) {
  						result.addAll(convert(t.getTypeArguments()));
  						return null;
  					}
  
  				}, null);
  
  			}
  		}
  
  		return result;
  	}
docs: <p>
  Retrieve parametrized type of element (from its parent).
  </p>
  
  @param element
  the element
  @return list of typemirror or empty list