donaldp 01/12/17 02:49:06 Added: proposal/myrmidon/src/java/org/apache/antlib/core Fail.java Log: Add a fail task similar to ant1.xs except that it also has a condition. Revision Changes Path 1.1 jakarta-ant/proposal/myrmidon/src/java/org/apache/antlib/core/Fail.java Index: Fail.java =================================================================== /* * Copyright (C) The Apache Software Foundation. All rights reserved. * * This software is published under the terms of the Apache Software License * version 1.1, a copy of which has been included with this distribution in * the LICENSE file. */ package org.apache.antlib.core; import org.apache.avalon.framework.context.ContextException; import org.apache.myrmidon.api.AbstractTask; import org.apache.myrmidon.api.TaskException; import org.apache.myrmidon.framework.Condition; /** * This is a task used to throw a TaskException. * Useful for forcing a build to fail on a certain condition. * * @author <a href="mailto:[EMAIL PROTECTED]">Peter Donald</a> */ public class Fail extends AbstractTask { private String m_message; private Condition m_condition; public void setMessage( final String message ) { checkNullMessage(); m_message = message; } public void addContent( final String message ) { checkNullMessage(); m_message = message; } public void setIf( final String ifCondition ) { checkNullCondition(); m_condition = new Condition( true, ifCondition ); } public void setUnless( final String unlessCondition ) { checkNullCondition(); m_condition = new Condition( false, unlessCondition ); } public void execute() throws TaskException { if( null == m_condition ) { throw new TaskException( "Use did not specify a condition" ); } try { final boolean failed = m_condition.evaluate( getContext() ); if( failed ) { if( null != m_message ) { throw new TaskException( m_message ); } else { throw new TaskException(); } } } catch( final ContextException ce ) { throw new TaskException( ce.toString(), ce ); } } private void checkNullMessage() { if( null != m_message ) { final String message = "Message can only be set once by " + "either nested content or the message attribute"; throw new IllegalStateException( message ); } } private void checkNullCondition() { if( null != m_condition ) { throw new IllegalStateException( "Condition already set!" ); } } }
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
