@Nonnull
	public ContextMenuProvider getClassMemberContextMenuProvider(@Nonnull ContextSource source,
																 @Nonnull Workspace workspace,
																 @Nonnull WorkspaceResource resource,
																 @Nonnull ClassBundle<? extends ClassInfo> bundle,
																 @Nonnull ClassInfo declaringClass,
																 @Nonnull ClassMember member) {
		if (member.isField()) {
			FieldMember field = (FieldMember) member;
			ContextMenuProvider provider = fieldContextMenuDefault.getFieldContextMenuProvider(source, workspace, resource, bundle, declaringClass, field);
			provider = adapt(provider, fieldContextMenuAdapters, (adapter, menu) -> adapter.adaptFieldContextMenu(menu, source, workspace, resource, bundle, declaringClass, field));
			return provider;
		} else if (member.isMethod()) {
			MethodMember method = (MethodMember) member;
			ContextMenuProvider provider = methodContextMenuDefault.getMethodContextMenuProvider(source, workspace, resource, bundle, declaringClass, method);
			provider = adapt(provider, methodContextMenuAdapters, (adapter, menu) -> adapter.adaptMethodContextMenu(menu, source, workspace, resource, bundle, declaringClass, method));
			return provider;
		} else {
			throw new IllegalStateException("Unsupported member: " + member.getClass().getName());
		}
	}
Delegates to {@link FieldContextMenuProviderFactory} and {@link MethodContextMenuProviderFactory}.

@param source
		Context request origin.
@param workspace
		Containing workspace.
@param resource
		Containing resource.
@param bundle
		Containing bundle.
@param declaringClass
		Containing class.
@param member
		The member to create a menu for.

@return Menu provider for the class member.
recaf-ui/src/main/java/software/coley/recaf/services/cell/context/ContextMenuProviderService.java