diff options
Diffstat (limited to 'anttasks/src/com/android/ant/IfElseTask.java')
-rw-r--r-- | anttasks/src/com/android/ant/IfElseTask.java | 128 |
1 files changed, 0 insertions, 128 deletions
diff --git a/anttasks/src/com/android/ant/IfElseTask.java b/anttasks/src/com/android/ant/IfElseTask.java deleted file mode 100644 index f34e486..0000000 --- a/anttasks/src/com/android/ant/IfElseTask.java +++ /dev/null @@ -1,128 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.ant; - -import org.apache.tools.ant.BuildException; -import org.apache.tools.ant.Task; -import org.apache.tools.ant.taskdefs.Sequential; -import org.apache.tools.ant.taskdefs.condition.And; - -/** - * If (condition) then: {@link Sequential} else: {@link Sequential}. - * - * In XML: - * <if condition="${prop with a boolean value}"> - * <then> - * </then> - * <else> - * </else> - * </if> - * - * or - * - * <if> - * <condition> - * ... - * </condition> - * <then> - * </then> - * <else> - * </else> - * </if> - * - * both <then> and <else> behave like <sequential>. - * <condition> behaves like an <and> condition. - * - * The presence of both <then> and <else> is not required, but one of them must be present. - * <if condition="${some.condition}"> - * <else> - * </else> - * </if> - * is perfectly valid. - * - */ -public class IfElseTask extends Task { - - private boolean mCondition; - private boolean mConditionIsSet = false; - private And mAnd; - private Sequential mThen; - private Sequential mElse; - - /** - * Sets the condition value - */ - public void setCondition(boolean condition) { - mCondition = condition; - mConditionIsSet = true; - } - - /** - * Creates and returns the <condition> node which is basically a <and>. - */ - public Object createCondition() { - if (mConditionIsSet) { - throw new BuildException("Cannot use both condition attribute and <condition> element"); - } - - mAnd = new And(); - mAnd.setProject(getProject()); - return mAnd; - } - - /** - * Creates and returns the <then> {@link Sequential} - */ - public Object createThen() { - mThen = new Sequential(); - return mThen; - } - - /** - * Creates and returns the <else> {@link Sequential} - */ - public Object createElse() { - mElse = new Sequential(); - return mElse; - } - - @Override - public void execute() throws BuildException { - if (mConditionIsSet == false && mAnd == null) { - throw new BuildException("condition attribute or element must be set."); - } - - if (mAnd != null) { - mCondition = mAnd.eval(); - } - - // need at least one. - if (mThen == null && mElse == null) { - throw new BuildException("Need at least <then> or <else>"); - } - - if (mCondition) { - if (mThen != null) { - mThen.execute(); - } - } else { - if (mElse != null) { - mElse.execute(); - } - } - } -} |