/* Copyright (C) 2009 Mobile Sorcery AB This program is free software; you can redistribute it and/or modify it under the terms of the Eclipse Public License v1.0. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Eclipse Public License v1.0 for more details. You should have received a copy of the Eclipse Public License v1.0 along with this program. It is also available at http://www.eclipse.org/legal/epl-v10.html */ /** * */ package com.mobilesorcery.sdk.finalizer.ui; import java.io.StringReader; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.jobs.Job; import com.mobilesorcery.sdk.core.CoreMoSyncPlugin; import com.mobilesorcery.sdk.core.MoSyncProject; import com.mobilesorcery.sdk.finalizer.core.FinalizerParser; public final class FinalizeJob extends Job { private String finalizerScript; private MoSyncProject project; private String cfgId; public FinalizeJob(MoSyncProject project, String finalizerScript) { this(project, finalizerScript, null); } public FinalizeJob(MoSyncProject project, String finalizerScript, String cfgId) { super(Messages.FinalizeJob_Finalize); this.project = project; this.finalizerScript = finalizerScript; this.cfgId = cfgId; } protected IStatus run(final IProgressMonitor monitor) { if (project == null) { return new Status(IStatus.ERROR, CoreMoSyncPlugin.PLUGIN_ID, Messages.FinalizeJob_NoProjectSelected); } StringReader script = new StringReader(finalizerScript); final FinalizerParser parser = new FinalizerParser(project .getWrappedProject(), cfgId); try { parser.execute(script, monitor); return Status.OK_STATUS; } catch (Exception e) { return new Status(IStatus.ERROR, CoreMoSyncPlugin.PLUGIN_ID, e .getMessage(), e); } } }