/* * Copyright (C) 2000 - 2008 TagServlet Ltd * * This file is part of the BlueDragon Java Open Source Project. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ package com.naryx.tagfusion.cfm.parser.script; import com.naryx.tagfusion.cfm.engine.cfCatchData; import com.naryx.tagfusion.cfm.engine.cfmRunTimeException; import com.naryx.tagfusion.cfm.parser.CFContext; import com.naryx.tagfusion.cfm.parser.CFExpression; public class CFThrowStatement extends CFParsedStatement implements java.io.Serializable{ private static final long serialVersionUID = 1L; private CFExpression message; public CFThrowStatement( org.antlr.runtime.Token t, CFExpression _message ) { super(t); message = _message; } @Override public CFStatementResult Exec( CFContext context ) throws cfmRunTimeException { setLineCol(context); cfCatchData catchData = new cfCatchData( context.getSession() ); if ( message == null ){ catchData.setMessage( "" ); }else{ catchData.setMessage( message.EvalFully( context ).getString() ); } throw new cfmRunTimeException(catchData); } @Override public String Decompile( int indent ) { if ( message != null ){ return "throw \"" + message + "\""; }else{ return "throw"; } } }