1 /* 
2  * Copyright 2005 Paul Hinds
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package org.tp23.antinstaller.runtime;
17
18import org.tp23.antinstaller.InstallException;
19
20
21
22/**
23 *
24 * <p>A Runner runs the user interaction screens, not ant.
25 * The base interface for TextRunner and SwingRunner </p>
26 * <p>Instances of this interface should have a constructor that takes
27 * an InstallerContext as an argument</p>
28 * Due to historic bad naming convention there exists an AntRunner which has
29 * no connection to this interface. 
30 * <p>Copyright: Copyright (c) 2004</p>
31 * <p>Company: tp23</p>
32 * @author Paul Hinds
33 * @version $Id: Runner.java,v 1.2 2006/03/24 18:27:28 teknopaul Exp $
34 */
35
36public interface Runner {
37
38    /**
39     * Renders the installer screens.  This method should block until
40     * the UI has finished
41     * @throws InstallException
42     * @return boolean false implies user aborted
43     */
44    public boolean runInstaller() throws InstallException;
45
46    /**
47     * Called after Ant has finished so the Runner can clean up or provide feedback
48     */
49    public void antFinished();
50
51    /**
52     * Called if the install failed for some reason and can not continue;
53     *
54     */
55    public void fatalError();
56}
57