URIGenerator loadURIGenerator() { if (urig == null) { final RoutingBase base; final PathSegments basePath; final RoutingDomain rd = checkNotNull(engineModel.getRoutingDomains().get(portalObject.getDomainId()), "Unable to find routing domain"); if (baseModel.getMode() == EngineMode.ONLINE) { base = rd.getOnline(); basePath = this.path; } else { base = rd.getOffline(); basePath = PathSegments.segment(baseModel.getId().toString().toLowerCase(), true); } final Supplier<PathSegments> supplier = new Supplier<PathSegments>() { public PathSegments get() { return basePath; } }; final PortalRouter router = new PMSPortalRouter(getPortal(), deviceRouter, localeRouter, pageResolver, supplier); urig = new EngineURIGenerator(getPortal(), base.getBase(), base.getAbsoluteBase(), router); } return urig; }