[175139] IModel api additions
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/ArtifactEdit.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/ArtifactEdit.java
index 0d287de..621c26e 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/ArtifactEdit.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/ArtifactEdit.java
@@ -13,6 +13,8 @@
import java.util.EventObject;
import java.util.List;
import java.util.Map;
+import java.util.logging.Level;
+import java.util.logging.Logger;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IAdaptable;
@@ -311,6 +313,25 @@
this(aProject,toAccessAsReadOnly,forCreate,projectType,null);
}
+
+ protected void verifyOperationSupported() {
+ if(!validArtifactEdit){
+ throw new RuntimeException("Invalid Artifact Edit access (model version not supported)");
+ }
+ }
+
+ private boolean validArtifactEdit = true;
+
+ public boolean isValid() {
+ return validArtifactEdit;
+ }
+
+ protected void markInvalid(){
+ Logger.global.log(Level.WARNING, "Invalid Artifact Edit access (model version not supported)");
+ validArtifactEdit = false;
+ }
+
+
/**
* <p>
* Creates an instance facade for the given {@see WorkbenchComponent}.
@@ -332,8 +353,9 @@
if (nature == null)
throw new IllegalArgumentException("Project does not have ModuleCoreNature: " + aProject);
- if (!validProjectVersion(aProject))
- throw new IllegalArgumentException("ArtifactEdit API not valid for JEE version project: " + aProject);
+ if (!validProjectVersion(aProject)){
+ markInvalid();
+ }
IVirtualComponent component = ComponentCore.createComponent(aProject);
if (component == null)
throw new IllegalArgumentException("Invalid component handle: " + aProject);
@@ -393,7 +415,7 @@
/**
* Validate edit for resource state
*/
- protected IStatus validateEdit() {
+ public IStatus validateEdit() {
IValidateEditContext validator = (IValidateEditContext) UIContextDetermination.createInstance(IValidateEditContext.CLASS_KEY);
return validator.validateState(getArtifactEditModel());
}