--- /dev/null
+package org.simantics.project.management.install;\r
+\r
+import org.eclipse.core.runtime.IPath;\r
+import org.eclipse.core.runtime.IProgressMonitor;\r
+import org.eclipse.core.runtime.IStatus;\r
+import org.eclipse.equinox.internal.provisional.p2.installer.IInstallOperation;\r
+import org.eclipse.equinox.internal.provisional.p2.installer.InstallAdvisor;\r
+import org.eclipse.equinox.internal.provisional.p2.installer.InstallDescription;\r
+\r
+/**\r
+ * \r
+ * @author Marko Luukkainen <marko.luukkainen@vtt.fi>\r
+ *\r
+ */\r
+public class DefaultInstallAdvisor extends InstallAdvisor{\r
+ \r
+ private IProgressMonitor monitor = null;\r
+ \r
+ public DefaultInstallAdvisor() {\r
+ }\r
+ \r
+ public IProgressMonitor getMonitor() {\r
+ return monitor;\r
+ }\r
+ \r
+ public void setMonitor(IProgressMonitor monitor) {\r
+ this.monitor = monitor;\r
+ }\r
+ \r
+ @Override\r
+ public IStatus performInstall(IInstallOperation operation) {\r
+ return operation.install(getMonitor());\r
+ }\r
+ \r
+ @Override\r
+ public InstallDescription prepareInstallDescription(\r
+ InstallDescription description) {\r
+ if (description.getInstallLocation() == null)\r
+ throw new IllegalArgumentException("Install location is missing!");\r
+ IPath location = description.getInstallLocation();\r
+ description.setAgentLocation(location.append("p2")); //$NON-NLS-1$\r
+ \r
+ return description;\r
+ }\r
+ \r
+ @Override\r
+ public boolean promptForLaunch(InstallDescription description) {\r
+ return false;\r
+ }\r
+ \r
+ @Override\r
+ public void setResult(IStatus status) {\r
+ if (monitor != null) {\r
+ monitor.done();\r
+ }\r
+ }\r
+ \r
+ @Override\r
+ public void start() {\r
+ \r
+ }\r
+ \r
+ @Override\r
+ public void stop() {\r
+ \r
+ }\r
+\r
+ \r
+\r
+}\r