Bug 88563 [code manipulation] Offer implicit functions as override/implement options
A class that implements Cloneable may need to implement clone(). A class that implements Serializable may need to implement readObject/writeObject. These special methods could usefully be offered as Source->Override/Implement Methods options.
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/dialogs/OverrideMethodDialog.java
final IJavaElement parent= type.getParent();
			if (parent instanceof IField && Flags.isEnum(((IMember) parent).getFlags())) {
				final EnumConstantDeclaration constant= (EnumConstantDeclaration) NodeFinder.perform(fUnit, ((ISourceReference) parent).getSourceRange());
				if (constant != null) {
					final AnonymousClassDeclaration declaration= constant.getAnonymousClassDeclaration();
					if (declaration != null)
						binding= declaration.resolveBinding();
				}
			} else {
				final ClassInstanceCreation creation= (ClassInstanceCreation) ASTNodes.getParent(NodeFinder.perform(fUnit, type.getNameRange()), ClassInstanceCreation.class);
				if (creation != null)
					binding= creation.resolveTypeBinding();
			}
		} else {
			final AbstractTypeDeclaration declaration= (AbstractTypeDeclaration) ASTNodes.getParent(NodeFinder.perform(fUnit, type.getNameRange()), AbstractTypeDeclaration.class);
			if (declaration != null)
				binding= declaration.resolveBinding();
		}
		List toImplement= new ArrayList();
		IMethodBinding[] overridable= null;
		if (binding != null) {
			final IPackageBinding pack= binding.getPackage();
			final IMethodBinding[] methods= StubUtility2.getOverridableMethods(fUnit.getAST(), binding, false);
			List list= new ArrayList(methods.length);
			for (int index= 0; index < methods.length; index++) {
				final IMethodBinding cur= methods[index];
				if (Bindings.isVisibleInHierarchy(cur, pack))
					list.add(cur);
			}
			overridable= (IMethodBinding[]) list.toArray(new IMethodBinding[list.size()]);