Prototype p = app.getPrototype (sn); if (p != null) { Skin s = p.getSkin (hrefSkin); if (s != null) { reval.res.pushStringBuffer (); ESObject param = new ObjectPrototype (null, reval.evaluator); param.putProperty ("path", new ESString (basicHref), "path".hashCode ()); s.render (reval, esn, param); return new ESString (reval.res.popStringBuffer ());
proto = app.getPrototype (sn); if (proto != null) { skin = proto.getSkin (hrefSkin); if (skin != null) { return renderSkin (skin, basicHref, esn);
        public ESValue callFunction (ESObject thisObject, ESValue[] arguments) throws EcmaScriptException {            INode n = ((ESNode) thisObject).getNode ();            String tmpname = arguments.length == 0 ? "" : arguments[0].toString ();            String basicHref =app.getNodeHref (n, tmpname);            String hrefSkin = app.props.getProperty ("hrefSkin");            if (hrefSkin != null) {                // we need to post-process the href with a skin for this application                for (int i=reval.reqPath.size()-1; i>=0; i--) {                    ESNode esn = (ESNode) reval.reqPath.getProperty (i);                    INode sn = esn.getNode ();                    Prototype p = app.getPrototype (sn);                    if (p != null) {                        Skin s = p.getSkin (hrefSkin);                        if (s != null) {                            reval.res.pushStringBuffer ();                            ESObject param = new ObjectPrototype (null, reval.evaluator);                            param.putProperty ("path", new ESString (basicHref), "path".hashCode ());                            s.render (reval, esn, param);                            return new ESString (reval.res.popStringBuffer ());                        }                    }                }            }            return new ESString (basicHref);                        }