| /** |
| * <copyright> |
| * |
| * Copyright (c) 2004-2006 IBM Corporation and others. |
| * This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v2.0 |
| * which accompanies this distribution, and is available at |
| * https://www.eclipse.org/legal/epl-v2.0 |
| * |
| * SPDX-License-Identifier: EPL-2.0 |
| * |
| * Contributors: |
| * IBM - Initial API and implementation |
| * |
| * </copyright> |
| * |
| * $Id: EMFTask.java,v 1.5 2006/12/19 01:45:08 marcelop Exp $ |
| */ |
| package org.eclipse.egf.ant.taskdefs; |
| |
| import org.apache.tools.ant.BuildException; |
| import org.apache.tools.ant.Task; |
| import org.eclipse.ant.core.AntCorePlugin; |
| import org.eclipse.core.runtime.IProgressMonitor; |
| import org.eclipse.emf.codegen.util.CodeGenUtil; |
| |
| /** |
| * Base class for the tasks that are defined in this plugin. Provides common behavior |
| * and facilities. |
| * |
| * @since 2.1.0 |
| */ |
| public abstract class EGFTask extends Task { |
| |
| /** |
| * Throws a <tt>BuildException</tt> if <tt>expression</tt> is false. |
| * |
| * @param message |
| * @param expression |
| * @throws BuildException |
| */ |
| public static void assertTrue(String message, boolean expression) throws BuildException { |
| if (expression == false) { |
| throw new BuildException(message); |
| } |
| } |
| |
| protected IProgressMonitor getProgressMonitor() { |
| try { |
| if (getProject() != null) { |
| IProgressMonitor progressMonitor = (IProgressMonitor) getProject().getReferences().get(AntCorePlugin.ECLIPSE_PROGRESS_MONITOR); |
| if (progressMonitor != null) { |
| return progressMonitor; |
| } |
| } |
| } catch (Exception e) { |
| // Ignore |
| } |
| return new CodeGenUtil.EclipseUtil.StreamProgressMonitor(System.out); |
| } |
| |
| @Override |
| public final void execute() throws BuildException { |
| checkAttributes(); |
| try { |
| doExecute(); |
| } catch (Exception e) { |
| if (e instanceof BuildException) { |
| throw (BuildException) e; |
| } |
| throw new BuildException(e); |
| } |
| } |
| |
| /** |
| * All the attribute checks should be performed in this method. |
| * |
| * @throws BuildException |
| */ |
| protected void checkAttributes() throws BuildException { |
| // Subclasses may override this method |
| } |
| |
| /** |
| * Performs the task specific code. |
| * |
| * @throws Exception |
| */ |
| protected abstract void doExecute() throws Exception; |
| |
| } |