Package org.gatein.pc.api.invocation.response

Examples of org.gatein.pc.api.invocation.response.UpdateNavigationalStateResponse$Event


   protected BlockingInteractionResponse internalProcessResponse(PortletInvocationResponse response)
   {
      if (response instanceof UpdateNavigationalStateResponse)
      {
         UpdateNavigationalStateResponse stateResponse = (UpdateNavigationalStateResponse)response;
         UpdateResponse updateResponse = createUpdateResponse(stateResponse);

         return WSRPTypeFactory.createBlockingInteractionResponse(updateResponse);
      }
      else
View Full Code Here


   @Override
   protected HandleEventsResponse internalProcessResponse(PortletInvocationResponse response)
   {
      if (response instanceof UpdateNavigationalStateResponse)
      {
         UpdateNavigationalStateResponse unsResponse = (UpdateNavigationalStateResponse)response;
         HandleEventsResponse eventsResponse = WSRPTypeFactory.createHandleEventsReponse();

         UpdateResponse updateResponse = createUpdateResponse(unsResponse);
         eventsResponse.setUpdateResponse(updateResponse);
View Full Code Here

      /** The new mode requested. */
      protected org.gatein.pc.api.Mode mode = new org.gatein.pc.api.Mode(preq.getPortletMode().toString());

      protected PortletInvocationResponse getResponse()
      {
         UpdateNavigationalStateResponse response = new UpdateNavigationalStateResponse();

         //
         response.setProperties(getProperties(false));
         response.setAttributes(preq.attributes.getAttributeMap());

         //
         response.setMode(mode);
         response.setWindowState(windowState);
         response.setPublicNavigationalStateUpdates(navigationalState.getPublicMapSnapshot());
         response.setNavigationalState(ParametersStateString.create(navigationalState.getPrivateMapSnapshot()));

         //
         if (events != null)
         {
            for (UpdateNavigationalStateResponse.Event event : events)
            {
               response.queueEvent(event);
            }
         }

         //
         return response;
View Full Code Here

      PortletInvocationResponse response = super.invoke(invocation);

      //
      if (response instanceof UpdateNavigationalStateResponse)
      {
         UpdateNavigationalStateResponse update = (UpdateNavigationalStateResponse)response;

         //
         Map<String, Object> attributes = update.getAttributes();

         //
         if (attributes != null && attributes.size() > 0)
         {
            ParametersStateString outNS = (ParametersStateString)update.getNavigationalState();
            outNS.setValue("javax.portlet.as", conversation.id);

            //
            conversation.setAttributes(attributes);
View Full Code Here

   public ActionResponseImpl(ActionInvocation invocation, PortletRequestImpl preq)
   {
      super(invocation, preq);

      //
      UpdateNavigationalStateResponse rr = new UpdateNavigationalStateResponse();
      rr.setNavigationalState(ParametersStateString.create());

      //
      this.response = rr;
   }
View Full Code Here

      /** The new mode requested. */
      protected org.gatein.pc.api.Mode mode = org.gatein.pc.api.Mode.create(preq.getPortletMode().toString());

      protected PortletInvocationResponse getResponse()
      {
         UpdateNavigationalStateResponse response = new UpdateNavigationalStateResponse();

         //
         response.setProperties(getProperties(false));
         response.setAttributes(preq.attributes.getAttributeMap());

         //
         response.setMode(mode);
         response.setWindowState(windowState);
         response.setPublicNavigationalStateUpdates(navigationalState.getPublicMapSnapshot());
         response.setNavigationalState(ParametersStateString.create(navigationalState.getPrivateMapSnapshot()));

         //
         if (events != null)
         {
            for (UpdateNavigationalStateResponse.Event event : events)
            {
               response.queueEvent(event);
            }
         }

         //
         return response;
View Full Code Here

      PortletInvocationResponse response = super.invoke(invocation);

      //
      if (response instanceof UpdateNavigationalStateResponse)
      {
         UpdateNavigationalStateResponse update = (UpdateNavigationalStateResponse)response;

         //
         Map<String, Object> attributes = update.getAttributes();

         //
         if (attributes != null && attributes.size() > 0)
         {
            ParametersStateString outNS = (ParametersStateString)update.getNavigationalState();
            outNS.setValue("javax.portlet.as", conversation.id);

            //
            conversation.setAttributes(attributes);
View Full Code Here

      //
      if (response instanceof UpdateNavigationalStateResponse)
      {
         // Update portlet NS
         UpdateNavigationalStateResponse updateResponse = (UpdateNavigationalStateResponse)response;

         //
         updateNavigationalState(context, portletRequest.getWindowId(), updateResponse, pageNavigationalState);

         //
         ResponseProperties update = updateResponse.getProperties();
         if (update != null)
         {
            requestProperties.append(update);
         }

         //
         EventControllerContext eventCC = context.getEventControllerContext();

         //
         EventPhaseContext phaseContext = new EventPhaseContext(controller, context, log);

         // Feed session it with the events that may have been produced
         for (UpdateNavigationalStateResponse.Event portletEvent : updateResponse.getEvents())
         {
            if (!phaseContext.push(new WindowEvent(portletEvent.getName(), portletEvent.getPayload(), portletRequest.getWindowId())))
            {
               return new PageUpdateResponse(updateResponse, requestProperties, pageNavigationalState, PortletResponse.INTERRUPTED);
            }
         }

         // Deliver events
         while (phaseContext.hasNext())
         {
            WindowEvent toConsumeEvent = phaseContext.next();

            // Apply consumed event quota if necessary
            int consumedEventThreshold = controller.getConsumedEventThreshold();
            if (consumedEventThreshold >= 0)
            {
               if (phaseContext.consumedEventSize + 1 > consumedEventThreshold)
               {
                  log.trace("Event distribution interrupted because the maximum number of consumed event is reached");
                  safeInvoker.eventDiscarded(eventCC, phaseContext, toConsumeEvent, EventControllerContext.CONSUMED_EVENT_FLOODED);
                  return new PageUpdateResponse(updateResponse, requestProperties, pageNavigationalState, PortletResponse.INTERRUPTED);
               }
            }

            //
            PortletInvocationResponse eventResponse;
            try
            {
               eventResponse = deliverEvent(context, toConsumeEvent, pageNavigationalState, requestProperties.getCookies());
            }
            catch (Exception e)
            {
               log.trace("Event delivery of " + toConsumeEvent + " failed", e);
               safeInvoker.eventFailed(eventCC, phaseContext, toConsumeEvent, e);
               continue;
            }

            // Now it is consumed
            phaseContext.consumedEventSize++;

            // Update nav state if needed
            if (eventResponse instanceof UpdateNavigationalStateResponse)
            {
               UpdateNavigationalStateResponse eventStateResponse = (UpdateNavigationalStateResponse)eventResponse;

               // Update ns
               updateNavigationalState(context, toConsumeEvent.getWindowId(), eventStateResponse, pageNavigationalState);

               // Add events to source event queue
               for (UpdateNavigationalStateResponse.Event portletEvent : eventStateResponse.getEvents())
               {
                  WindowEvent toRouteEvent = new WindowEvent(portletEvent.getName(), portletEvent.getPayload(), toConsumeEvent.getWindowId());

                  //
                  if (!phaseContext.push(toConsumeEvent,  toRouteEvent))
                  {
                     return new PageUpdateResponse(updateResponse, requestProperties, pageNavigationalState, PortletResponse.INTERRUPTED);
                  }
               }

               //
               ResponseProperties updateProperties = eventStateResponse.getProperties();
               if (updateProperties != null)
               {
                  requestProperties.append(updateProperties);
               }
            }
View Full Code Here

   }

   @Override
   public PortletInvocationResponse invoke(ControllerContext controllerContext) throws PortletInvokerException
   {
      UpdateNavigationalStateResponse updateNavigationalState = new UpdateNavigationalStateResponse();
      updateNavigationalState.setMode(windowNavigationalState.getMode());
      updateNavigationalState.setWindowState(windowNavigationalState.getWindowState());
      updateNavigationalState.setNavigationalState(windowNavigationalState.getPortletNavigationalState());
      updateNavigationalState.setPublicNavigationalStateUpdates(publicNavigationalStateChanges);
      return updateNavigationalState;
   }
View Full Code Here

      {
         EventAcknowledgement.Consumed consumedAck = (EventAcknowledgement.Consumed)ack;
         PortletInvocationResponse response = consumedAck.getResponse();
         if (response instanceof UpdateNavigationalStateResponse)
         {
            UpdateNavigationalStateResponse updateResponse = (UpdateNavigationalStateResponse)response;

            //
            String[] strings = new String[4];

            //
            if (updateResponse.getMode() != null)
            {
               strings[0] = "mode=" + updateResponse.getMode();
            }

            //
            if (updateResponse.getWindowState() != null)
            {
               strings[1] = "windowstate=" + updateResponse.getWindowState();
            }

            // Should be ok, we are not consuming remote portlets
            ParametersStateString newNS = (ParametersStateString)updateResponse.getNavigationalState();
            if (newNS != null)
            {
               StringBuilder sb = new StringBuilder();
               sb.append("private=");
               formatMap(newNS.getParameters(), sb);
               strings[2] = sb.toString();
            }

            //
            Map<String, String[]> publicChanges = updateResponse.getPublicNavigationalStateUpdates();
            if (publicChanges != null)
            {
               StringBuilder sb = new StringBuilder();
               sb.append("public=");
               formatMap(publicChanges, sb);
View Full Code Here

TOP

Related Classes of org.gatein.pc.api.invocation.response.UpdateNavigationalStateResponse$Event

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.