001 package railo.transformer.cfml.evaluator.impl; 002 003 import railo.runtime.config.Config; 004 import railo.runtime.exp.TemplateException; 005 import railo.transformer.bytecode.statement.tag.Tag; 006 import railo.transformer.bytecode.util.ASMUtil; 007 import railo.transformer.cfml.evaluator.EvaluatorSupport; 008 import railo.transformer.library.function.FunctionLib; 009 import railo.transformer.library.tag.TagLib; 010 import railo.transformer.library.tag.TagLibTag; 011 import railo.transformer.util.CFMLString; 012 013 public final class PageEncoding extends EvaluatorSupport { 014 015 public TagLib execute(Config config, Tag tag, TagLibTag libTag, FunctionLib[] flibs, CFMLString cfml) throws TemplateException { 016 String encoding=ASMUtil.getAttributeString(tag, "charset",null); 017 if(encoding==null) 018 throw new TemplateException(cfml,"attribute [pageencoding] of the tag [processingdirective] must be a constant value"); 019 020 if(encoding.equalsIgnoreCase(cfml.getCharset()) || "UTF-8".equalsIgnoreCase(cfml.getCharset())) { 021 encoding=null; 022 } 023 024 if(encoding!=null){ 025 throw new ProcessingDirectiveException(cfml,encoding,cfml.getWriteLog()?Boolean.TRUE:Boolean.FALSE); 026 } 027 028 029 return null; 030 } 031 }