Look at the code of org.jboss.portal.core.model.portal.PortalObjectURLFactory
Thanks for the starting point.
I was able to figure out all of what I needed by examining org.jboss.portal.portlet.impl.PortletRequestDecoder. I need to document my work here and then I will post some hints for anyone who might search this thread.
(Everything that follows can be verified in org.jboss.portal.portlet.impl.PortletRequestDecoder. I was reading code from the head of development, but everything I learned worked against my 2.4.1 installation)
Here are some example parameters I've found within my own application.
6, a? What does action mean?
Action isn't just any old parameter, its value is actually a hexidecimal number built from masks found in the PortletRequestDecoder. The first bit, if on, indicates an actionURL. The second bit, if on, indicates a renderURL. The third bit, if on, indicates the URL has a mode parameter. The fourth bit, if on, indicates the URL has a windowstate parameter. Finally the fifth bit is used for the opaque mask, which we haven't figure out yet. So, what does that give us?
Let's take look at the action=6 of the first parameter string. 6 in hex equals 110 in binary. According to the bit assignments above that gives us:
1 1 0 |_|_|_|_|_| o w m r a p i o e c a n d n t q d e d i u o e o e w r n
Therefore this URL is a renderURL with a mode parameter. Looking above the parameter string has a mode parameter equal to view.
Now let's look at the action=a of second parameter string. A in hex equals 1010
1 0 1 0 |_|_|_|_|_| o w m r a p i o e c a n d n t q d e d i u o e o e w r n
Therefore this URL is also a renderURL, but this time with a windowstate parameter. Looking above the example indeed has a windowstate parameter, but does not have a mode parameter.
What would the action need to be if we wanted to specify both mode and windowstate parameters?
1 1 1 0 |_|_|_|_|_| o w m r a p i o e c a n d n t q d e d i u o e o e w r n
Binary 1110 is e in hex, so the URL would end something like this: action=e&mode=help&windowstate=normal.
Can you please explain what the opaque flag's function is? I see that it is tied to the NAVIGATIONAL_STATE_PARAMETER but I don't understand what it does.