01: /**
02: * @author <a href="mailto:novotny@gridsphere.org">Jason Novotny</a>
03: * @version $Id: PortletServiceDescriptor.java 6385 2007-10-25 14:02:26Z wehrens $
04: */package org.gridsphere.portletcontainer.impl;
05:
06: import org.gridsphere.portlet.service.spi.impl.descriptor.PortletServiceCollection;
07: import org.gridsphere.portlet.service.spi.impl.descriptor.PortletServiceDefinition;
08: import org.gridsphere.services.core.persistence.PersistenceManagerException;
09: import org.gridsphere.services.core.persistence.PersistenceManagerXml;
10:
11: import java.net.URL;
12: import java.util.List;
13:
14: /**
15: * The <code>SportletServiceDescriptor</code> provides the portlet service
16: * descriptor class mappings that are used by Castor to unmarshall the
17: * services descriptor file.
18: */
19: public class PortletServiceDescriptor {
20:
21: private PortletServiceCollection services = null;
22: private PersistenceManagerXml pmXML = null;
23:
24: private URL servicesMappingStream = getClass()
25: .getResource(
26: "/org/gridsphere/portlet/service/spi/impl/portlet-services-mapping.xml");
27:
28: /**
29: * Constructor disallows non-argument instantiation
30: */
31: private PortletServiceDescriptor() {
32: }
33:
34: public PortletServiceDescriptor(String descriptorFile)
35: throws PersistenceManagerException {
36: PersistenceManagerXml pmXML = JavaXMLBindingFactory
37: .createPersistenceManagerXml(descriptorFile,
38: servicesMappingStream);
39: services = (PortletServiceCollection) pmXML.load();
40: }
41:
42: /**
43: * Returns the collection of portlet service definitions
44: *
45: * @return the collection of portlet service definitions
46: */
47: public PortletServiceCollection getServiceCollection() {
48: return services;
49: }
50:
51: /**
52: * Sets the collection of portlet service definitions
53: *
54: * @param services the collection of portlet service definitions
55: */
56: public void setServiceCollection(PortletServiceCollection services) {
57: this .services = services;
58: }
59:
60: /**
61: * Sets the service definition
62: *
63: * @param definition the service definition
64: */
65: public void setServiceDefinition(PortletServiceDefinition definition) {
66: List<PortletServiceDefinition> serviceDefs = services
67: .getPortletServicesList();
68: for (PortletServiceDefinition def : serviceDefs) {
69: if (definition.getServiceName()
70: .equals(def.getServiceName())) {
71: def.setConfigParamList(definition.getConfigParamList());
72: }
73: }
74: }
75:
76: /**
77: * Saves the portlet service descriptor
78: *
79: * @throws PersistenceManagerException if a Castor error occurs during the marshalling
80: */
81: public void save() throws PersistenceManagerException {
82: pmXML.save(services);
83: }
84:
85: }
|