01: // THIS SOFTWARE IS PROVIDED BY SOFTARIS PTY.LTD. AND OTHER METABOSS
02: // CONTRIBUTORS ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING,
03: // BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
04: // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SOFTARIS PTY.LTD.
05: // OR OTHER METABOSS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
06: // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
07: // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
08: // OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
09: // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
10: // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
11: // EVEN IF SOFTARIS PTY.LTD. OR OTHER METABOSS CONTRIBUTORS ARE ADVISED OF THE
12: // POSSIBILITY OF SUCH DAMAGE.
13: //
14: // Copyright 2000-2005 © Softaris Pty.Ltd. All Rights Reserved.
15: package com.metaboss.sdlctools.applications.anttasks.builder;
16:
17: import org.apache.tools.ant.BuildException;
18:
19: /** This object keeps definition of planned generator invocation. Matching generator invocations will
20: * only be done once, so this object has to implement equals() in the way where
21: * all same invocation plans prodice same result */
22: public abstract class ToolInvocationDefinition// extends MetaBossBuilderTaskElement
23: {
24: // The task, which is an owner of this element
25: private MetaBossBuilderTask mOwnerTask = null;
26: private String mToolInvocationName = null;
27: private boolean mFailOnError = true; // Actual tool invocations must try to not fail on error if it is possible and if this flag is set to false
28: private boolean mExecutingAllOcurrences = false; // Set this flag to true if this tool invocation must be executed every time it is defined
29:
30: /** The only available constructor */
31: public ToolInvocationDefinition(MetaBossBuilderTask pOwnerTask,
32: String pToolInvocationName) {
33: if (pOwnerTask == null)
34: throw new IllegalArgumentException(
35: "OwnerTask may not be null when constructiing ToolInvocationDefinition.");
36: mOwnerTask = pOwnerTask;
37: setToolInvocationName(pToolInvocationName);
38: }
39:
40: /** Returns the owner of this element */
41: public final MetaBossBuilderTask getOwnerTask() {
42: return mOwnerTask;
43: }
44:
45: /** Allows to set the name of this invocation after the object has been constructed */
46: public void setToolInvocationName(String pToolInvocationName) {
47: if (pToolInvocationName == null)
48: throw new IllegalArgumentException(
49: "ToolInvocationName may not be null.");
50: mToolInvocationName = pToolInvocationName;
51: }
52:
53: /** Returns the name of this invocation */
54: public String getToolInvocationName() {
55: return mToolInvocationName;
56: }
57:
58: /** Getter for the fail on error flag */
59: public boolean isFailOnError() {
60: return mFailOnError;
61: }
62:
63: /** Setter for the fail on error flag */
64: public void setFailOnError(boolean pFailOnError) {
65: mFailOnError = pFailOnError;
66: }
67:
68: /** Getter for the executing all ocurrences flag */
69: public boolean isExecutingAllOccurrences() {
70: return mExecutingAllOcurrences;
71: }
72:
73: /** Setter for the executing all ocurrences flag */
74: public void setExecutingAllOccurrences(
75: boolean pExecutingAllOccurrences) {
76: mExecutingAllOcurrences = pExecutingAllOccurrences;
77: }
78:
79: /** This method answers question whether this tool invocation could be combined with the given one.
80: * By default it is returning false meaning that this tool invocation definition can not be combined withthe given one */
81: public boolean canCombine(ToolInvocationDefinition pOtherDefinition)
82: throws BuildException {
83: return false;
84: }
85:
86: /** This method combines this tool invocation definition with the given one.
87: * It returns the tool invocation which replaces both this invocation and the given one */
88: public ToolInvocationDefinition combine(
89: ToolInvocationDefinition pOtherDefinition)
90: throws BuildException {
91: // By default two invocations can not be combined
92: throw new BuildException(
93: "Internal error. Attempt is made to combine tool invocations, which can not be combined.");
94: }
95:
96: /** This method will have to invoke the generator */
97: public abstract void invoke() throws BuildException;
98: }
|