Initial implementation for Bug 310923 -  [assist] Quick assist for adding/removing signatures in method bindings
(see comment 1, comment 2).
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/AbstractMethodMappingDeclaration.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/AbstractMethodMappingDeclaration.java
index f557d49..b34c00e 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/AbstractMethodMappingDeclaration.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/AbstractMethodMappingDeclaration.java
@@ -60,7 +60,7 @@
 		new ASTNode.NodeList(internalParameterMappingsProperty());
 
 	/** Return the structural property descriptor for the roleMappingElement property of this node. */
-	abstract ChildPropertyDescriptor internalGetRoleElementProperty();
+	public abstract ChildPropertyDescriptor getRoleElementProperty();
 
 	/** Return the structural property descriptor for the bindingOperator property of this node. */ 
 	abstract ChildPropertyDescriptor internalGetBindingOperatorProperty();
@@ -86,7 +86,7 @@
 	
 	ASTNode internalGetSetChildProperty(ChildPropertyDescriptor property, boolean get, ASTNode child)
 	{
-   	    if (property == internalGetRoleElementProperty())
+   	    if (property == getRoleElementProperty())
 		{
 			if (get) {
 				return getRoleMappingElement();
@@ -121,7 +121,7 @@
 				if (this.roleMappingElement == null) {
 					preLazyInit();
 					this.roleMappingElement = new MethodSpec(this.ast);
-					postLazyInit(this.roleMappingElement, internalGetRoleElementProperty());
+					postLazyInit(this.roleMappingElement, getRoleElementProperty());
 				}
 			}
 		}		
@@ -146,12 +146,11 @@
 			throw new IllegalArgumentException();
 		}
 		ASTNode oldChild = roleMappingElement;
-		preReplaceChild(oldChild, roleMappingElement, internalGetRoleElementProperty());
+		preReplaceChild(oldChild, roleMappingElement, getRoleElementProperty());
 		this.roleMappingElement = roleMappingElement;
-		postReplaceChild(oldChild, roleMappingElement, internalGetRoleElementProperty());
+		postReplaceChild(oldChild, roleMappingElement, getRoleElementProperty());
     }
 
-	
 	public void setBindingOperator(MethodBindingOperator bindingOp) {
 		ChildPropertyDescriptor propertyDescriptor = internalGetBindingOperatorProperty();
 		MethodBindingOperator oldOperator = this.bindingOperator;
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/CallinMappingDeclaration.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/CallinMappingDeclaration.java
index 67244ef..9ae92ff 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/CallinMappingDeclaration.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/CallinMappingDeclaration.java
@@ -219,7 +219,7 @@
 		return MODIFIERS2_PROPERTY;
 	}
 
-	ChildPropertyDescriptor internalGetRoleElementProperty() {
+	public ChildPropertyDescriptor getRoleElementProperty() {
 		return ROLE_MAPPING_ELEMENT_PROPERTY;
 	}
 
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/CalloutMappingDeclaration.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/CalloutMappingDeclaration.java
index 7f41dde..09212ac 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/CalloutMappingDeclaration.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/CalloutMappingDeclaration.java
@@ -209,7 +209,7 @@
 		return JAVADOC_PROPERTY;
     }
 
-	ChildPropertyDescriptor internalGetRoleElementProperty() {
+	public ChildPropertyDescriptor getRoleElementProperty() {
 		return ROLE_MAPPING_ELEMENT_PROPERTY;
 	}
 	
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/MethodBindingOperator.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/MethodBindingOperator.java
index 1520538..71afb89 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/MethodBindingOperator.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/MethodBindingOperator.java
@@ -198,6 +198,13 @@
 	{
 		return bindingModifier;
 	}
+	
+	/** Returns whether this method mapping is a callout to field (get or set). */
+	public boolean isCalloutToField() {
+		int modifier = this.getBindingModifier();
+		return    Modifier.isGet(modifier)
+			   || Modifier.isSet(modifier);
+	}
 
 	void accept0(ASTVisitor visitor) {
 		boolean visitChildren = visitor.visit(this);