jford       2004/10/15 11:44:57

  Modified:    applications/pam/src/java/org/apache/jetspeed/portlets/pam
                        PortletApplicationDetail.java
  Log:
  Initial code for extracting xml from OM.  This could be moved into a more common 
area however.
  
  Revision  Changes    Path
  1.33      +212 -1    
jakarta-jetspeed-2/applications/pam/src/java/org/apache/jetspeed/portlets/pam/PortletApplicationDetail.java
  
  Index: PortletApplicationDetail.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed-2/applications/pam/src/java/org/apache/jetspeed/portlets/pam/PortletApplicationDetail.java,v
  retrieving revision 1.32
  retrieving revision 1.33
  diff -u -r1.32 -r1.33
  --- PortletApplicationDetail.java     6 Oct 2004 23:45:05 -0000       1.32
  +++ PortletApplicationDetail.java     15 Oct 2004 18:44:56 -0000      1.33
  @@ -19,6 +19,7 @@
   
   import java.io.IOException;
   import java.util.ArrayList;
  +import java.util.Collection;
   import java.util.Iterator;
   import java.util.LinkedHashMap;
   import java.util.Locale;
  @@ -29,6 +30,7 @@
   import javax.portlet.PortletConfig;
   import javax.portlet.PortletContext;
   import javax.portlet.PortletException;
  +import javax.portlet.PortletMode;
   import javax.portlet.PortletSession;
   import javax.portlet.RenderRequest;
   import javax.portlet.RenderResponse;
  @@ -48,6 +50,7 @@
   import org.apache.jetspeed.om.common.portlet.MutablePortletApplication;
   import org.apache.jetspeed.om.common.portlet.PortletDefinitionComposite;
   import org.apache.jetspeed.om.common.preference.PreferenceComposite;
  +import org.apache.pluto.om.common.DescriptionSet;
   import org.apache.pluto.om.common.SecurityRoleRef;
   import org.apache.pluto.om.portlet.ContentType;
   import org.apache.portals.bridges.common.GenericServletPortlet;
  @@ -1065,6 +1068,214 @@
                   registry.getPersistenceStore().getTransaction().commit();
               }
           }
  +    }
  +    
  +    private String createXml(MutablePortletApplication pa)
  +    {
  +        StringBuffer buffer = new StringBuffer();
  +        
  +        buffer.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
  +        
  +        //TODO:  add namespace
  +        buffer.append("<portlet-app id=\"");
  +        buffer.append(pa.getApplicationIdentifier());
  +        buffer.append("\" version=\"");
  +        buffer.append(pa.getVersion());
  +        buffer.append("\">\n");
  +        
  +        Iterator portletDefsIter = pa.getPortletDefinitions().iterator();
  +        while (portletDefsIter.hasNext())
  +        {
  +            PortletDefinitionComposite pDef = (PortletDefinitionComposite) 
portletDefsIter.next();
  +            buffer.append(createPortletDefinitionXml(pDef));
  +        }
  +        
  +        buffer.append("</portlet-app>\n");
  +        
  +        return buffer.toString();
  +    }
  +    
  +    private String createPortletDefinitionXml(PortletDefinitionComposite pDef)
  +    {
  +        StringBuffer buffer = new StringBuffer();
  +        
  +        buffer.append("<portlet id=\"");
  +        buffer.append(pDef.getPortletIdentifier());
  +        buffer.append("\">\n");
  +        
  +        Iterator paramIter = pDef.getInitParameterSet().iterator();
  +        while (paramIter.hasNext())
  +        {
  +            ParameterComposite param = (ParameterComposite) paramIter.next();
  +            buffer.append("<init-param>\n");
  +            
  +            addDescriptions(buffer, param.getDescriptionSet());
  +            
  +            buffer.append("\t<name>");
  +            buffer.append(param.getName());
  +            buffer.append("</name>\n");
  +            buffer.append("\t<value>");
  +            buffer.append(param.getValue());
  +            buffer.append("</value>\n");
  +            buffer.append("</init-param>\n");
  +        }
  +        
  +        buffer.append("\t<portlet-name>");
  +        buffer.append(pDef.getName());
  +        buffer.append("</portlet-name>\n");
  +        
  +        Iterator displayNameIter = pDef.getDisplayNameSet().iterator();
  +        while (displayNameIter.hasNext())
  +        {
  +            MutableDisplayName displayName = (MutableDisplayName) 
displayNameIter.next();
  +            buffer.append("\t<display-name");
  +            if(displayName.getLocale() != null)
  +            {
  +                buffer.append(" xml:lang=\"");
  +                buffer.append(displayName.getLocale().getCountry());
  +                buffer.append("\"");
  +            }
  +            buffer.append(">");
  +            buffer.append(displayName.getDisplayName());
  +            buffer.append("</display-name>\n");
  +        }
  +        
  +        addDescriptions(buffer, pDef.getDescriptionSet());
  +        
  +        buffer.append("\t<portlet-class>");
  +        buffer.append(pDef.getClassName());
  +        buffer.append("</portlet-class>\n");
  +        
  +        buffer.append("\t<expiration-cache>");
  +        buffer.append(pDef.getExpirationCache());
  +        buffer.append("</expiration-cache>\n");
  +        
  +        
  +        Iterator contentTypeIter = pDef.getContentTypeSet().iterator();
  +        while (contentTypeIter.hasNext())
  +        {
  +            buffer.append("\t<supports>\n");
  +            ContentType contentType = (ContentType) contentTypeIter.next();
  +            buffer.append("\t\t<mime-type>\n");
  +            buffer.append(contentType.getContentType());
  +            buffer.append("</mime-type>\n");
  +            
  +            Iterator modeIter = contentType.getPortletModes();
  +            while (modeIter.hasNext())
  +            {
  +                PortletMode mode = (PortletMode) modeIter.next();
  +                buffer.append("\t\t<portlet-mode>");
  +                buffer.append(mode.toString());
  +                buffer.append("</portlet-mode>\n");
  +            }
  +            
  +            buffer.append("</supports>");
  +        }
  +        
  +        
  +        
  +        String resourceBundle = pDef.getResourceBundle();
  +        if(resourceBundle == null)
  +        {
  +             //<portlet-info>
  +             //StringBuffer supportedLocaleBuffer = new StringBuffer();
  +             StringBuffer portletInfoBuffer = new StringBuffer();
  +             
  +             Iterator langIter = pDef.getLanguageSet().iterator();
  +             while (langIter.hasNext())
  +             {
  +                 MutableLanguage lang = (MutableLanguage) langIter.next();
  +                 /*
  +                 supportedLocaleBuffer.append("\t<supported-locale>");
  +                 supportedLocaleBuffer.append(lang.getLocale().getCountry());
  +                 supportedLocaleBuffer.append("</supported-locale>\n");
  +                 */
  +                 
  +                 //lang.
  +                 portletInfoBuffer.append("\t<portlet-info>\n");
  +                 portletInfoBuffer.append("\t\t<title>");
  +                 portletInfoBuffer.append(lang.getTitle());
  +                 portletInfoBuffer.append("</title>\n");
  +                 if(lang.getShortTitle() != null)
  +                 {
  +                     portletInfoBuffer.append("\t\t<short-title>");
  +                     portletInfoBuffer.append(lang.getShortTitle());
  +                     portletInfoBuffer.append("</short-title>\n");
  +                 }
  +                 Iterator keywordIter = lang.getKeywords();
  +                 if(keywordIter.hasNext())
  +                 {
  +                     portletInfoBuffer.append("\t\t<keywords>");
  +                         while (keywordIter.hasNext())
  +                         {
  +                             String keyword = (String) keywordIter.next();
  +                             portletInfoBuffer.append(keyword);
  +                             if(keywordIter.hasNext())
  +                             {
  +                                 portletInfoBuffer.append(",");
  +                             }
  +                         }
  +                         portletInfoBuffer.append("</keywords>\n");
  +                 }
  +                 portletInfoBuffer.append("\t</portlet-info>\n");
  +             }
  +             
  +//           buffer.append(supportedLocaleBuffer);
  +             buffer.append(portletInfoBuffer);
  +        }
  +        else
  +        {
  +            Iterator supportIter = pDef.getSupportedLocales().iterator();
  +            while (supportIter.hasNext())
  +            {
  +                Locale locale = (Locale) supportIter.next();
  +                buffer.append("\t<supported-locale>");
  +                buffer.append(locale.getCountry());
  +                buffer.append("<supported-locale>\n");
  +            }
  +        }
  +        
  +        buffer.append("\t<portlet-preferences>\n");
  +        Iterator prefIter = pDef.getPreferenceSet().iterator();
  +        while (prefIter.hasNext())
  +        {
  +            PreferenceComposite pref = (PreferenceComposite) prefIter.next();
  +            buffer.append("\t\t<preference>\n");
  +            buffer.append("\t\t\t<name>);");
  +            buffer.append(pref.getName());
  +            buffer.append("</name>\n");
  +            String[] values = pref.getValueArray();
  +            for (int i = 0; i < values.length; i++)
  +            {
  +                String value = values[i];
  +                buffer.append("\t\t\t<value>");
  +                buffer.append(value);
  +                buffer.append("</value>\n");
  +            }
  +            
  +            buffer.append("\t\t</preference>\n");
  +        }
  +        buffer.append("</portlet-preferences>");
  +        
  +        buffer.append("</portlet>\n");
  +        
  +        return buffer.toString();
  +    }
  +    
  +    private void addDescriptions(StringBuffer buffer, DescriptionSet descriptions)
  +    {
  +        Iterator descIter = descriptions.iterator();
  +        MutableDescription desc = (MutableDescription) descIter.next();
  +        buffer.append("\t<description");
  +        if(desc.getLocale() != null)
  +        {
  +            buffer.append(" xml:lang=\"");
  +            buffer.append(desc.getLocale().getCountry());
  +            buffer.append("\"");
  +        }
  +        buffer.append(">");
  +        buffer.append(desc.getDescription());
  +        buffer.append("</description>\n");
       }
   
   }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to