private String toAbsoluteURI(String uri) { if (uri != null && uri.length() > 0) { final char cc = uri.charAt(0); if (cc != '/' && cc != '~' && !Servlets.isUniversalURL(uri)) { final String dir = getLocator().getDirectory(); if (dir != null && dir.length() > 0) return dir.charAt(dir.length() - 1) == '/' ? dir + uri : dir + '/' + uri; } } return uri; }
protected PageDefinition parse(String path, File file, Object extra) throws Exception { final Locator locator = extra != null ? (Locator) extra : getLocator(_wapp, path); Parser parser = new Parser(_wapp, locator); // Bug ZK-1132 if (file.exists()) { return parser.parse(file, path); } else { InputStream stream = parser.getLocator().getResourceAsStream(path); BufferedReader reader = null; try { reader = new BufferedReader(new InputStreamReader(stream)); PageDefinition pgdef = parser.parse(reader, Servlets.getExtension(path)); pgdef.setRequestPath(path); return pgdef; } finally { if (reader != null) reader.close(); } } }
/** Process the init directive. */ private void parseInitDirective(PageDefinition pgdef, ProcessingInstruction pi, Map<String, String> params) throws Exception { final String clsnm = params.remove("class"); final String zsrc = params.remove("zscript"); final Map<String, String> args = new LinkedHashMap<String, String>(params); if (clsnm == null) { if (zsrc == null) throw new UiException(message("Either the class or zscript attribute must be specified", pi)); checkZScriptEnabled(pi.getLocator()); ZScript zs = null; final String zslang = pgdef.getZScriptLanguage(); if (!zsrc.contains("${")) { final URL url = getLocator().getResource(zsrc); if (url != null) zs = new ZScript(zslang, url); //Bug 2929887: defer the error message since it might not be required } if (zs == null) zs = new ZScript(pgdef.getEvaluatorRef(), zslang, zsrc, getLocator()); pgdef.addInitiatorInfo(new InitiatorInfo(new ZScriptInitiator(zs), args)); } else { if (zsrc != null) throw new UiException(message("You cannot specify both class and zscript", pi)); pgdef.addInitiatorInfo(new InitiatorInfo(clsnm, args)); } }
final PageDefinition pgdef = new PageDefinition(langdef, getLocator()); final RequestInfo ri = new RequestInfoImpl(_wapp, null, null, null, getLocator()); final UiFactory uf = ((WebAppCtrl) _wapp).getUiFactory(); for (final String[] imprt : imports) {
ZScriptInfo zs = null; if (!zsrc.contains("${")) { final URL url = getLocator().getResource(zsrc); if (url != null) zs = new ZScriptInfo(parent, zslang, url, cond); zs = new ZScriptInfo(parent, zslang, zsrc, getLocator(), cond);
cdi.setCurrentDirectory(getLocator().getDirectory());