[156262] Artifact Edit changes
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 028e480..709cf5b 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
@@ -12,6 +12,7 @@
import java.util.EventObject;
import java.util.List;
+import java.util.Map;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IAdaptable;
@@ -300,13 +301,29 @@
* Creates an instance facade for the given {@see WorkbenchComponent}.
* </p>
*
- * @param aNature
- * A non-null {@see ModuleCoreNature} for an accessible project
- * @param aModule
- * A non-null {@see WorkbenchComponent} pointing to a module from the given
- * {@see ModuleCoreNature}
+ * @param aProject
+ * @param toAccessAsReadOnly
+ * @param forCreate
+ * @param projectType
+ * @throws IllegalArgumentException
*/
protected ArtifactEdit(IProject aProject, boolean toAccessAsReadOnly, boolean forCreate, String projectType) throws IllegalArgumentException {
+
+ this(aProject,toAccessAsReadOnly,forCreate,projectType,null);
+ }
+ /**
+ * <p>
+ * Creates an instance facade for the given {@see WorkbenchComponent}.
+ * </p>
+ *
+ * @param aProject
+ * @param toAccessAsReadOnly
+ * @param forCreate
+ * @param projectType - Used to pass specific editModel edit (Used to lookup factory)
+ * @param editModelParams - Properties that can be used to create cacheKey on editModelFactory
+ * @throws IllegalArgumentException
+ */
+ protected ArtifactEdit(IProject aProject, boolean toAccessAsReadOnly, boolean forCreate, String projectType, Map editModelParams) throws IllegalArgumentException {
if (aProject == null || !aProject.isAccessible())
throw new IllegalArgumentException("Invalid project: " + aProject);
@@ -324,9 +341,9 @@
URI componentURI = ModuleURIUtil.fullyQualifyURI(aProject);
if (toAccessAsReadOnly)
- artifactEditModel = nature.getArtifactEditModelForRead(componentURI, this, projectType);
+ artifactEditModel = nature.getArtifactEditModelForRead(componentURI, this, projectType, editModelParams);
else
- artifactEditModel = nature.getArtifactEditModelForWrite(componentURI, this, projectType);
+ artifactEditModel = nature.getArtifactEditModelForWrite(componentURI, this, projectType, editModelParams);
isReadOnly = toAccessAsReadOnly;
isArtifactEditModelSelfManaged = true;
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/ModuleCoreNature.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/ModuleCoreNature.java
index 7a78170..d506bc5 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/ModuleCoreNature.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/ModuleCoreNature.java
@@ -323,8 +323,17 @@
return getArtifactEditModelForRead(aModuleURI, anAccessorKey, null);
}
- public ArtifactEditModel getArtifactEditModelForRead(URI aModuleURI, Object anAccessorKey, String projectType) {
- Map params = new HashMap();
+ /**
+ * @param aModuleURI - used to lookup project
+ * @param anAccessorKey - used to set client accessor
+ * @param projectType - used to determine editmodel factory
+ * @param params - passed for specialized processing in factory
+ * @return ArtifactEditModel instance
+ */
+ public ArtifactEditModel getArtifactEditModelForRead(URI aModuleURI, Object anAccessorKey, String projectType, Map params) {
+
+ if (params == null)
+ params = new HashMap();
params.put(ArtifactEditModelFactory.PARAM_MODULE_URI, aModuleURI);
if (projectType !=null)
return (ArtifactEditModel) getEditModelForRead(projectType, anAccessorKey, params);
@@ -352,6 +361,11 @@
}
return null;
}
+
+ public ArtifactEditModel getArtifactEditModelForRead(URI aModuleURI, Object anAccessorKey, String projectType) {
+ Map params = new HashMap();
+ return getArtifactEditModelForRead(aModuleURI, anAccessorKey, projectType, params);
+ }
/**
* <p>
@@ -409,8 +423,17 @@
public ArtifactEditModel getArtifactEditModelForWrite(URI aModuleURI, Object anAccessorKey) {
return getArtifactEditModelForWrite(aModuleURI, anAccessorKey, null);
}
- public ArtifactEditModel getArtifactEditModelForWrite(URI aModuleURI, Object anAccessorKey, String projectType) {
- Map params = new HashMap();
+ /**
+ * @param aModuleURI - used to lookup project
+ * @param anAccessorKey - used to set client accessor
+ * @param projectType - used to determine editmodel factory
+ * @param params - passed for specialized processing in factory
+ * @return ArtifactEditModel instance
+ */
+ public ArtifactEditModel getArtifactEditModelForWrite(URI aModuleURI, Object anAccessorKey, String projectType, Map params) {
+
+ if (params == null)
+ params = new HashMap();
params.put(ArtifactEditModelFactory.PARAM_MODULE_URI, aModuleURI);
if (projectType != null)
return (ArtifactEditModel) getEditModelForWrite(projectType, anAccessorKey, params);
@@ -438,6 +461,10 @@
}
return null;
}
+ public ArtifactEditModel getArtifactEditModelForWrite(URI aModuleURI, Object anAccessorKey, String projectType) {
+ Map params = new HashMap();
+ return getArtifactEditModelForWrite(aModuleURI, anAccessorKey, projectType, params);
+ }
public String getNatureID() {
return MODULE_NATURE_ID;