001/**
002 *
003 * Copyright (c) 2014, the Railo Company Ltd. All rights reserved.
004 *
005 * This library is free software; you can redistribute it and/or
006 * modify it under the terms of the GNU Lesser General Public
007 * License as published by the Free Software Foundation; either 
008 * version 2.1 of the License, or (at your option) any later version.
009 * 
010 * This library is distributed in the hope that it will be useful,
011 * but WITHOUT ANY WARRANTY; without even the implied warranty of
012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
013 * Lesser General Public License for more details.
014 * 
015 * You should have received a copy of the GNU Lesser General Public 
016 * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
017 * 
018 **/
019package lucee.transformer.cfml.evaluator.impl;
020
021import lucee.runtime.exp.TemplateException;
022import lucee.transformer.util.CFMLString;
023
024public final class ProcessingDirectiveException extends TemplateException {
025
026        private String charset;
027        private Boolean writeLog;
028        private Boolean dotNotationUpperCase;
029
030        public ProcessingDirectiveException(CFMLString cfml, String charset,Boolean dotNotationUpperCase, Boolean writeLog) {
031                super(cfml, createMessage(cfml,charset,writeLog));
032                this.charset=charset;
033                this.writeLog=writeLog;
034                this.dotNotationUpperCase=dotNotationUpperCase;
035        }
036
037        private static String createMessage(CFMLString cfml, String charset,boolean writeLog) {
038                StringBuffer msg=new StringBuffer();
039                if(!(cfml.getCharset()+"").equalsIgnoreCase(charset))
040                        msg.append("change charset from ["+cfml.getCharset()+"] to ["+charset+"].");
041                
042                if(cfml.getWriteLog()!=writeLog)
043                        msg.append("change writelog from ["+cfml.getWriteLog()+"] to ["+writeLog+"].");
044                
045                return msg.toString();
046        }
047
048        public String getCharset() {
049                return charset;
050        }
051
052        public Boolean getDotNotationUpperCase() {
053                return dotNotationUpperCase;
054        }
055        public Boolean getWriteLog() {
056                return writeLog;
057        }
058
059}