001    /**
002     * Implements the CFML Function getprofilestring
003     */
004    package railo.runtime.functions.system;
005    
006    import java.io.IOException;
007    
008    import railo.commons.io.ini.IniFile;
009    import railo.commons.io.res.Resource;
010    import railo.commons.io.res.util.ResourceUtil;
011    import railo.runtime.PageContext;
012    import railo.runtime.exp.PageException;
013    import railo.runtime.ext.function.Function;
014    import railo.runtime.op.Caster;
015    
016    public final class GetProfileString implements Function {
017            public static String call(PageContext pc , String fileName, String section, String key) throws PageException {
018            try {
019                    Resource res = ResourceUtil.toResourceNotExisting(pc,fileName);
020                if(!res.isFile()) return "";
021                    
022                    IniFile ini = new IniFile(res);
023                String str=ini.getKeyValueEL(section, key);
024                if(str==null) return "";
025                return str;
026            } 
027            catch (IOException e) {
028                throw Caster.toPageException(e);
029            }
030            }
031    }