aboutsummaryrefslogtreecommitdiffstats
path: root/anttasks/src/com/android/ant/IfElseTask.java
diff options
context:
space:
mode:
Diffstat (limited to 'anttasks/src/com/android/ant/IfElseTask.java')
-rw-r--r--anttasks/src/com/android/ant/IfElseTask.java128
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();
- }
- }
- }
-}