[227206] Finish the changes by removing the internal type from the public methods
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/Friend.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/Friend.java
index ada72d3..022d158 100644
--- a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/Friend.java
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/Friend.java
@@ -12,6 +12,10 @@
 
 import java.util.Map;
 
+import org.eclipse.core.resources.IResource;
+import org.eclipse.wst.validation.internal.ContentTypeWrapper;
+import org.eclipse.wst.validation.internal.ValType;
+
 /**
  * This class is only to be called by the validation framework and it's test cases.
  * This class is NOT part of the API.
@@ -31,5 +35,17 @@
 	public static boolean isLoaded(Validator validator){
 		return validator.isLoaded();
 	}
+	
+	public static boolean shouldValidate(Validator validator, IResource resource, boolean isManual, boolean isBuild, 
+			ContentTypeWrapper contentTypeWrapper){
+		return validator.shouldValidate(resource, isManual, isBuild, contentTypeWrapper);
+	}
+	
+	public static boolean shouldValidate(Validator validator, IResource resource, ValType valType, 
+		ContentTypeWrapper contentTypeWrapper){
+		
+		return validator.shouldValidate(resource, valType, contentTypeWrapper);
+		
+	}
 
 }
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/Validator.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/Validator.java
index b7a9bee..b9b641f 100644
--- a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/Validator.java
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/Validator.java
@@ -194,21 +194,46 @@
 		}
 	}
 	
+	/**
+	 * Answer true if this validator, based on it's filters, should validate
+	 * this resource. This method does not check to see if global validation or
+	 * project validation has been suspended or not.
+	 * 
+	 * @param resource
+	 *            The resource to be checked.
+	 * @param isManual
+	 *            If true then this validator must also be enabled for manual
+	 *            validation.
+	 * @param isBuild
+	 *            If true then this validator must also be enabled for builder
+	 *            based validation.
+	 * 
+	 * @return true if the resource should be validated.
+	 */
 	public boolean shouldValidate(IResource resource, boolean isManual, boolean isBuild){
 		return shouldValidate(resource, isManual, isBuild, new ContentTypeWrapper());
 	}
 	
 	/**
-	 * Answer true if this validator, based on it's filters, should validate this resource. This method
-	 * does not check to see if global validation or project validation has been suspended or not.
+	 * Answer true if this validator, based on it's filters, should validate
+	 * this resource. This method does not check to see if global validation or
+	 * project validation has been suspended or not.
 	 * 
-	 * @param resource the resource to be checked
-	 * @param isManual if true then this validator must also be enabled for manual validation.
-	 * @param isBuild if true then this validator must also be enabled for builder based validation.
-	 * 
+	 * @param resource
+	 *            The resource to be checked.
+	 * @param isManual
+	 *            If true then this validator must also be enabled for manual
+	 *            validation.
+	 * @param isBuild
+	 *            If true then this validator must also be enabled for builder
+	 *            based validation.
+	 * @param contentTypeWrapper 
+	 *            For repeated calls on the same resource, it is more efficient
+	 *            to remember the content type.
 	 * @return true if the resource should be validated.
+	 * @see Friend#shouldValidate(Validator, IResource, boolean, boolean, ContentTypeWrapper)
 	 */
-	public boolean shouldValidate(IResource resource, boolean isManual, boolean isBuild, 
+	boolean shouldValidate(IResource resource, boolean isManual, boolean isBuild, 
 		ContentTypeWrapper contentTypeWrapper){
 		
 		if (isManual && !_manualValidation)return false;
@@ -217,20 +242,40 @@
 		return shouldValidate(resource, contentTypeWrapper);
 	}
 	
+	/**
+	 * Answer true if this validator, based on it's filters, should validate
+	 * this resource. This method does not check to see if global validation or
+	 * project validation has been suspended or not.
+	 * 
+	 * @param resource
+	 *            The resource to be checked.
+	 * @param valType
+	 *            The context to use when performing the check.
+	 * 
+	 * @return true if the resource should be validated.
+	 */
 	public boolean shouldValidate(IResource resource, ValType valType){
 		return shouldValidate(resource, valType, new ContentTypeWrapper());
 	}
 	
 	/**
-	 * Answer true if this validator, based on it's filters, should validate this resource. This method
-	 * does not check to see if global validation or project validation has been suspended or not.
+	 * Answer true if this validator, based on it's filters, should validate
+	 * this resource. This method does not check to see if global validation or
+	 * project validation has been suspended or not.
 	 * 
-	 * @param resource the resource to be checked
-	 * @param valType The content to use when perform the check.
+	 * @param resource
+	 *            The resource to be checked.
+	 * @param valType
+	 *            The context to use when performing the check.
+	 * @param contentTypeWrapper
+	 *            For repeated calls on the same resource, it is more efficient
+	 *            to remember the content type.
 	 * 
 	 * @return true if the resource should be validated.
+	 * 
+	 * @see Friend#shouldValidate(Validator, IResource, ValType, ContentTypeWrapper)
 	 */
-	public boolean shouldValidate(IResource resource, ValType valType, ContentTypeWrapper contentTypeWrapper){
+	boolean shouldValidate(IResource resource, ValType valType, ContentTypeWrapper contentTypeWrapper){
 		if (Tracing.matchesExtraDetail(getId())){
 			Tracing.log("Validator-01: checking if " + getId() + " should validate " + resource); //$NON-NLS-1$ //$NON-NLS-2$
 		}
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValBuilderJob.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValBuilderJob.java
index 4e669f2..49759e4 100644
--- a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValBuilderJob.java
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValBuilderJob.java
@@ -22,6 +22,7 @@
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.wst.validation.DependentResource;
+import org.eclipse.wst.validation.Friend;
 import org.eclipse.wst.validation.IDependencyIndex;
 import org.eclipse.wst.validation.ValidationFramework;
 import org.eclipse.wst.validation.ValidationState;
@@ -144,7 +145,7 @@
 		if (index.isDependedOn(resource)){
 			MarkerManager mm = MarkerManager.getDefault();
 			for (DependentResource dr : index.get(resource)){
-				if (dr.getValidator().shouldValidate(dr.getResource(), ValType.Build, new ContentTypeWrapper())){
+				if (Friend.shouldValidate(dr.getValidator(), dr.getResource(), ValType.Build, new ContentTypeWrapper())){
 					mm.clearMarker(dr.getResource(), dr.getValidator()); 
 					_operation.getState().put(ValidationState.TriggerResource, resource);
 					ValManager.getDefault().validate(dr.getValidator(), _operation, dr.getResource(), 
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValManager.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValManager.java
index a76c202..e9a4433 100644
--- a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValManager.java
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValManager.java
@@ -34,6 +34,7 @@
 import org.eclipse.wst.common.project.facet.core.FacetedProjectFramework;
 import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectEvent;
 import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener;
+import org.eclipse.wst.validation.Friend;
 import org.eclipse.wst.validation.IPerformanceMonitor;
 import org.eclipse.wst.validation.PerformanceCounters;
 import org.eclipse.wst.validation.ValidationFramework;
@@ -292,7 +293,7 @@
 		else {
 			ContentTypeWrapper ctw = new ContentTypeWrapper();
 			for (Validator val : ValManager.getDefault().getValidators(resource.getProject())){
-				if (val.shouldValidate(resource, isManual, isBuild, ctw))return true;
+				if (Friend.shouldValidate(val, resource, isManual, isBuild, ctw))return true;
 			}			
 		}
 		return false;
@@ -629,7 +630,7 @@
 		for (Validator val : getValidators(project)){
 			if (monitor.isCanceled())return;
 			if (!_projectManager.shouldValidate(val, project, valType))continue;
-			if (val.shouldValidate(resource, valType, ctw)){
+			if (Friend.shouldValidate(val, resource, valType, ctw)){
 				vp.getConfigSet().set(_idManager.getIndex(val.getId()));
 				// we do the suspend check after figuring out if it needs to be validated, because we save
 				// this information for the session.