⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 portletappdescriptorserviceimpl.java

📁 portal越来越流行了
💻 JAVA
字号:
package org.apache.pluto.descriptors.services.jaxb;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBElement;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;

import org.apache.pluto.descriptors.portlet.PortletAppType;
import org.apache.pluto.om.portlet.PortletApplicationDefinition;
import org.apache.pluto.services.PortletAppDescriptorService;

/** 
 *  JAXB implementation of the xml2java binding
 *  @author <a href="mailto:chrisra@cs.uni-jena.de">Christian Raschka</a>
 */

public class PortletAppDescriptorServiceImpl implements PortletAppDescriptorService{
	
    public PortletApplicationDefinition createPortletApplicationDefinition()
    {
        return new PortletAppType();
    }
    
	/**
     * Read the Web Application Deployment Descriptor.
     *
     * @return WebAppDD instance representing the descriptor.
     * @throws java.io.IOException
     */
    
    @SuppressWarnings("unchecked")
    public PortletApplicationDefinition read(InputStream in) throws IOException {
    	JAXBElement app = null;
    	try {
    		JAXBContext jc = JAXBContext.newInstance( 
    				"org.apache.pluto.descriptors.portlet10" + ":" +
    				"org.apache.pluto.descriptors.portlet", PortletAppDescriptorServiceImpl.class.getClassLoader());

    		Unmarshaller u = jc.createUnmarshaller();
    		u.setEventHandler(new javax.xml.bind.helpers.DefaultValidationEventHandler());

    		app = (JAXBElement) u.unmarshal(in);	            
    	}catch (JAXBException jaxbEx){
    		jaxbEx.printStackTrace();
    		throw new IOException(jaxbEx.getMessage());
    	}
    	catch(Exception me) {
    		throw new IOException(me.getLocalizedMessage());
    	}
    	if (app.getValue() instanceof org.apache.pluto.descriptors.portlet10.PortletAppType)
    	{
    	    return ((org.apache.pluto.descriptors.portlet10.PortletAppType)app.getValue()).upgrade();
    	}    	
    	return (PortletApplicationDefinition)app.getValue();
    }
    
    /**
     * Write the deployment descriptor.
     * @param app
     * @throws java.io.IOException
     */
    public void write(PortletApplicationDefinition app, OutputStream out) throws IOException {
        try {
            JAXBContext jc = null;
            Object src = null;
            if (PortletApplicationDefinition.JSR_168_VERSION.equals(app.getVersion()))
            {                
                jc = JAXBContext.newInstance("org.apache.pluto.descriptors.portlet10");                
                src = new org.apache.pluto.descriptors.portlet10.PortletAppType(app);
            }
            else
            {
                jc = JAXBContext.newInstance("org.apache.pluto.descriptors.portlet");
                src = app;
            }
            Marshaller m = jc.createMarshaller();
            m.setEventHandler(new javax.xml.bind.helpers.DefaultValidationEventHandler());
            m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,Boolean.TRUE);
            m.marshal(src,out);
        }catch (JAXBException jaxbEx){
            jaxbEx.printStackTrace();
            throw new IOException(jaxbEx.getMessage());
        }
        catch(Exception me) {
            throw new IOException(me.getLocalizedMessage());
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -