Page(PortletInvoker invoker, String s) throws ServletException { LinkedHashMap<String, Window> windows = new LinkedHashMap<String, Window>(); int count = 0; Map<String, String[]> parameters; // if (s == null || s.length() == 0 || (s.length() == 1 && s.charAt(0) == '/')) { parameters = null; } else { Segment segments = (Segment) Chunk.parse(s); // Skip context path segments = (Segment) segments.next; // Servlet parameter parameters = segments.parameters; // for (Segment segment : (Segment) segments.next) { Portlet found = null; if (invoker != null) { try { for (Portlet portlet : invoker.getPortlets()) { if (portlet.getInfo().getName().equals(segment.value)) { found = portlet; break; } } } catch (PortletInvokerException e) { // ? } } // LinkedHashMap<String, String[]> windowParameters; Mode windowMode; WindowState windowState; if (segment.parameters != null) { windowParameters = new LinkedHashMap<String, String[]>(segment.parameters); String[] modeParameter = windowParameters.remove("javax.portlet.portlet_mode"); String[] windowStateParameter = windowParameters.remove("javax.portlet.window_state"); windowMode = modeParameter != null ? Mode.create(modeParameter[0]) : null; windowState = windowStateParameter != null ? WindowState.create(windowStateParameter[0]) : null; } else { windowParameters = null; windowMode = null; windowState = null; } // Window context = new Window( "" + count++, found, segment.value, windowMode, windowState, windowParameters); // windows.put(context.id, context); } } // this.windows = windows; this.parameters = parameters; }