/*
* JBoss, Home of Professional Open Source.
* Copyright 2006, Red Hat Middleware LLC, and individual contributors
* as indicated by the @author tags. See the copyright.txt file in the
* distribution for a full listing of individual contributors.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package org.jboss.resource.deployment;
import org.jboss.logging.Logger;
import org.jboss.resource.metadata.AdminObjectMetaData;
import org.jboss.resource.metadata.AuthenticationMechanismMetaData;
import org.jboss.resource.metadata.ConfigPropertyMetaData;
import org.jboss.resource.metadata.ConnectionDefinitionMetaData;
import org.jboss.resource.metadata.ConnectorMetaData;
import org.jboss.resource.metadata.DescriptionGroupMetaData;
import org.jboss.resource.metadata.DescriptionMetaData;
import org.jboss.resource.metadata.LicenseMetaData;
import org.jboss.resource.metadata.MessageListenerMetaData;
import org.jboss.resource.metadata.RequiredConfigPropertyMetaData;
import org.jboss.resource.metadata.SecurityPermissionMetaData;
import org.jboss.resource.metadata.TransactionSupportMetaData;
import org.jboss.xb.binding.ObjectModelFactory;
import org.jboss.xb.binding.UnmarshallingContext;
import org.xml.sax.Attributes;
/**
* Object factory for resource adapter metadata
*
* @author <a href="mailto:adrian@jboss.com">Adrian Brock</a>
* @version $Revision: 71554 $
*/
public class ResourceAdapterObjectModelFactory implements ObjectModelFactory
{
/** The logger */
private static final Logger log = Logger.getLogger(ResourceAdapterObjectModelFactory.class);
/** Trace enabled */
private boolean trace = log.isTraceEnabled();
/**
* connector child elements
*
* @param cmd the connector meta data
* @param navigator the content navigator
* @param namespaceURI the namespace of the element
* @param localName the local name of the element
* @param attrs the attributes
*/
public Object newChild(ConnectorMetaData cmd, UnmarshallingContext navigator, String namespaceURI, String localName, Attributes attrs)
{
if (trace)
log.trace("connector newChild: nuri=" + namespaceURI + " localName=" + localName + " attrs=" + attrs);
if (localName.equals("vendor-name") ||
localName.equals("eis-type") ||
localName.equals("resourceadapter-version") ||
(localName.equals("resourceadapter") && cmd.getVersion().equals("1.0") == false) ||
localName.equals("resourceadapter-class") ||
localName.equals("reauthentication-support"))
{
return null;
}
else if (localName.equals("description") ||
localName.equals("display-name") ||
localName.equals("small-icon") ||
localName.equals("large-icon"))
{
String language = attrs.getValue("xml:lang");
DescriptionGroupMetaData dmd = null;
if (language == null)
dmd = cmd.getDescription();
else
dmd = cmd.getDescription(language);
if (dmd == null)
dmd = new DescriptionGroupMetaData(language);
cmd.addDescription(dmd);
return dmd;
}
else if (localName.equals("icon") && cmd.getVersion().equals("1.0"))
{
return null;
}
else if (localName.equals("config-property"))
{
ConfigPropertyMetaData cpmd = new ConfigPropertyMetaData();
cmd.addProperty(cpmd);
return cpmd;
}
else if (localName.equals("license"))
{
return cmd.getLicense();
}
else if (localName.equals("outbound-resourceadapter"))
{
return null;
}
else if (localName.equals("connection-definition") ||
(localName.equals("resourceadapter") && cmd.getVersion().equals("1.0")))
{
ConnectionDefinitionMetaData cdmd = new ConnectionDefinitionMetaData(cmd);
cmd.addConnectionDefinition(cdmd);
return cdmd;
}
else if (localName.equals("transaction-support"))
{
TransactionSupportMetaData tsmd = new TransactionSupportMetaData();
cmd.setTransactionSupport(tsmd);
return tsmd;
}
else if (localName.equals("authentication-mechanism"))
{
AuthenticationMechanismMetaData ammd = new AuthenticationMechanismMetaData();
cmd.setAuthenticationMechansim(ammd);
return ammd;
}
else if (localName.equals("inbound-resourceadapter") ||
localName.equals("messageadapter"))
{
return null;
}
else if (localName.equals("messagelistener"))
{
MessageListenerMetaData mlmd = new MessageListenerMetaData();
cmd.addMessageListener(mlmd);
return mlmd;
}
else if (localName.equals("adminobject"))
{
AdminObjectMetaData aomd = new AdminObjectMetaData();
cmd.addAdminObject(aomd);
return aomd;
}
else if (localName.equals("security-permission"))
{
SecurityPermissionMetaData spmd = new SecurityPermissionMetaData();
cmd.addSecurityPermission(spmd);
return spmd;
}
// 1.0
else if (localName.equals("spec-version") ||
localName.equals("version"))
{
return null;
}
throw new IllegalArgumentException("Unknown connector newChild: nuri=" +namespaceURI + " localName=" + localName + " attrs=" + attrs);
}
/**
* connector elements
*
* @param cmd the connector meta data
* @param navigator the content navigator
* @param namespaceURI the namespace of the element
* @param localName the local name of the element
* @param value the value
*/
public void setValue(ConnectorMetaData cmd, UnmarshallingContext navigator, String namespaceURI, String localName, String value)
{
if (trace)
log.trace("connector setValue: nuri=" + namespaceURI + " localName=" + localName + " value=" + value);
if (localName.equals("connector") ||
localName.equals("resourceadapter") ||
localName.equals("outbound-resourceadapter") ||
localName.equals("inbound-resourceadapter") ||
localName.equals("messageadapter"))
{
}
else if (localName.equals("vendor-name"))
cmd.setVendorName(value);
else if (localName.equals("eis-type"))
cmd.setEISType(value);
else if (localName.equals("resourceadapter-version"))
cmd.setRAVersion(value);
else if (localName.equals("resourceadapter-class"))
cmd.setRAClass(value);
else if (localName.equals("reauthentication-support"))
cmd.setReauthenticationSupport(Boolean.valueOf(value).booleanValue());
// 1.0
else if (localName.equals("spec-version"))
cmd.setVersion(value);
else if (localName.equals("version"))
cmd.setRAVersion(value);
else
throw new IllegalArgumentException("Unknown connector setValue: nuri=" + namespaceURI + " localName=" + localName + " value=" + value);
}
/**
* description group elements
*
* @param dmd the description meta data
* @param navigator the content navigator
* @param namespaceURI the namespace of the element
* @param localName the local name of the element
* @param value the value
*/
public void setValue(DescriptionGroupMetaData dmd, UnmarshallingContext navigator, String namespaceURI, String localName, String value)
{
if (trace)
log.trace("description group setValue: nuri=" + namespaceURI + " localName=" + localName + " value=" + value);
if (localName.equals("description"))
dmd.setDescription(value);
else if (localName.equals("display-name"))
dmd.setDisplayName(value);
else if (localName.equals("small-icon"))
dmd.setSmallIcon(value);
else if (localName.equals("large-icon"))
dmd.setLargeIcon(value);
else
throw new IllegalArgumentException("Unknown description group setValue: nuri=" + namespaceURI + " localName=" + localName + " value=" + value);
}
/**
* description elements
*
* @param dmd the description meta data
* @param navigator the content navigator
* @param namespaceURI the namespace of the element
* @param localName the local name of the element
* @param value the value
*/
public void setValue(DescriptionMetaData dmd, UnmarshallingContext navigator, String namespaceURI, String localName, String value)
{
if (trace)
log.trace("description setValue: nuri=" + namespaceURI + " localName=" + localName + " value=" + value);
if (localName.equals("description"))
dmd.setDescription(value);
else
throw new IllegalArgumentException("Unknown description setValue: nuri=" + namespaceURI + " localName=" + localName + " value=" + value);
}
/**
* config property child elements
*
* @param cpmd the config property meta data
* @param navigator the content navigator
* @param namespaceURI the namespace of the element
* @param localName the local name of the element
* @param attrs the attributes
*/
public Object newChild(ConfigPropertyMetaData cpmd, UnmarshallingContext navigator, String namespaceURI, String localName, Attributes attrs)
{
if (trace)
log.trace("config property newChild: nuri=" + namespaceURI + " localName=" + localName + " attrs=" + attrs);
if (localName.equals("config-property-name") ||
localName.equals("config-property-type") ||
localName.equals("config-property-value"))
{
return null;
}
else if (localName.equals("description"))
{
String language = attrs.getValue("xml:lang");
DescriptionMetaData dmd = null;
if (language == null)
dmd = cpmd.getDescription();
else
dmd = cpmd.getDescription(language);
if (dmd == null)
dmd = new DescriptionMetaData(language);
cpmd.addDescription(dmd);
return dmd;
}
throw new IllegalArgumentException("Unknown config property newChild: nuri=" +namespaceURI + " localName=" + localName + " attrs=" + attrs);
}
/**
* config property elements
*
* @param cpmd the description meta data
* @param navigator the content navigator
* @param namespaceURI the namespace of the element
* @param localName the local name of the element
* @param value the value
*/
public void setValue(ConfigPropertyMetaData cpmd, UnmarshallingContext navigator, String namespaceURI, String localName, String value)
{
if (trace)
log.trace("config property setValue: nuri=" + namespaceURI + " localName=" + localName + " value=" + value);
if (localName.equals("config-property"))
{
}
else if (localName.equals("config-property-name"))
cpmd.setName(value);
else if (localName.equals("config-property-type"))
cpmd.setType(value);
else if (localName.equals("config-property-value"))
cpmd.setValue(value);
else
throw new IllegalArgumentException("Unknown config property setValue: nuri=" + namespaceURI + " localName=" + localName + " value=" + value);
}
/**
* license child elements
*
* @param lmd the license meta data
* @param navigator the content navigator
* @param namespaceURI the namespace of the element
* @param localName the local name of the element
* @param attrs the attributes
*/
public Object newChild(LicenseMetaData lmd, UnmarshallingContext navigator, String namespaceURI, String localName, Attributes attrs)
{
if (trace)
log.trace("license newChild: nuri=" + namespaceURI + " localName=" + localName + " attrs=" + attrs);
if (localName.equals("license"))
{
return null;
}
else if (localName.equals("license-required"))
{
return null;
}
else if (localName.equals("description"))
{
String language = attrs.getValue("xml:lang");
DescriptionMetaData dmd = null;
if (language == null)
dmd = lmd.getDescription();
else
dmd = lmd.getDescription(language);
if (dmd == null)
dmd = new DescriptionMetaData(language);
lmd.addDescription(dmd);
return dmd;
}
throw new IllegalArgumentException("Unknown license newChild: nuri=" +namespaceURI + " localName=" + localName + " attrs=" + attrs);
}
/**
* license elements
*
* @param lmd the license meta data
* @param navigator the content navigator
* @param namespaceURI the namespace of the element
* @param localName the local name of the element
* @param value the value
*/
public void setValue(LicenseMetaData lmd, UnmarshallingContext navigator, String namespaceURI, String localName, String value)
{
if (trace)
log.trace("license setValue: nuri=" + namespaceURI + " localName=" + localName + " value=" + value);
if (localName.equals("license"))
{
}
else if (localName.equals("license-required"))
lmd.setRequired(Boolean.valueOf(value).booleanValue());
else
throw new IllegalArgumentException("Unknown license setValue: nuri=" + namespaceURI + " localName=" + localName + " value=" + value);
}
/**
* connection definition child elements
*
* @param cdmd the message listener meta data
* @param navigator the content navigator
* @param namespaceURI the namespace of the element
* @param localName the local name of the element
* @param attrs the attributes
*/
public Object newChild(ConnectionDefinitionMetaData cdmd, UnmarshallingContext navigator, String namespaceURI, String localName, Attributes attrs)
{
if (trace)
log.trace("connection definition newChild: nuri=" + namespaceURI + " localName=" + localName + " attrs=" + attrs);
if (localName.equals("connection-definition") ||
localName.equals("managedconnectionfactory-class") ||
localName.equals("connectionfactory-interface") ||
localName.equals("connectionfactory-impl-class") ||
localName.equals("connection-interface") ||
localName.equals("connection-impl-class"))
{
return null;
}
else if (localName.equals("config-property"))
{
ConfigPropertyMetaData cpmd = new ConfigPropertyMetaData();
cdmd.addProperty(cpmd);
return cpmd;
}
// 1.0
else if (localName.equals("transaction-support"))
{
TransactionSupportMetaData tsmd = new TransactionSupportMetaData();
cdmd.getConnector().setTransactionSupport(tsmd);
return tsmd;
}
else if (localName.equals("authentication-mechanism"))
{
AuthenticationMechanismMetaData ammd = new AuthenticationMechanismMetaData();
cdmd.getConnector().setAuthenticationMechansim(ammd);
return ammd;
}
else if (localName.equals("security-permission"))
{
SecurityPermissionMetaData spmd = new SecurityPermissionMetaData();
cdmd.getConnector().addSecurityPermission(spmd);
return spmd;
}
else if (localName.equals("reauthentication-support"))
{
return null;
}
throw new IllegalArgumentException("Unknown connection definition newChild: nuri=" +namespaceURI + " localName=" + localName + " attrs=" + attrs);
}
/**
* connection definition elements
*
* @param cdmd the description meta data
* @param navigator the content navigator
* @param namespaceURI the namespace of the element
* @param localName the local name of the element
* @param value the value
*/
public void setValue(ConnectionDefinitionMetaData cdmd, UnmarshallingContext navigator, String namespaceURI, String localName, String value)
{
if (trace)
log.trace("connection definition setValue: nuri=" + namespaceURI + " localName=" + localName + " value=" + value);
if (localName.equals("connection-definition"))
{
}
else if (localName.equals("managedconnectionfactory-class"))
cdmd.setManagedConnectionFactoryClass(value);
else if (localName.equals("connectionfactory-interface"))
cdmd.setConnectionFactoryInterfaceClass(value);
else if (localName.equals("connectionfactory-impl-class"))
cdmd.setConnectionFactoryImplementationClass(value);
else if (localName.equals("connection-interface"))
cdmd.setConnectionInterfaceClass(value);
else if (localName.equals("connection-impl-class"))
cdmd.setConnectionImplementationClass(value);
// 1.0
else if (localName.equals("reauthentication-support"))
cdmd.getConnector().setReauthenticationSupport(Boolean.valueOf(value).booleanValue());
else
throw new IllegalArgumentException("Unknown connection definition setValue: nuri=" + namespaceURI + " localName=" + localName + " value=" + value);
}
/**
* transaction support child elements
*
* @param tsmd the transaction support meta data
* @param navigator the content navigator
* @param namespaceURI the namespace of the element
* @param localName the local name of the element
* @param attrs the attributes
*/
public Object newChild(TransactionSupportMetaData tsmd, UnmarshallingContext navigator, String namespaceURI, String localName, Attributes attrs)
{
if (trace)
log.trace("transaction support newChild: nuri=" + namespaceURI + " localName=" + localName + " attrs=" + attrs);
if (localName.equals("transaction-support"))
return null;
throw new IllegalArgumentException("Unknown transaction support newChild: nuri=" +namespaceURI + " localName=" + localName + " attrs=" + attrs);
}
/**
* transaction support elements
*
* @param tsmd the transaction support meta data
* @param navigator the content navigator
* @param namespaceURI the namespace of the element
* @param localName the local name of the element
* @param value the value
*/
public void setValue(TransactionSupportMetaData tsmd, UnmarshallingContext navigator, String namespaceURI, String localName, String value)
{
if (trace)
log.trace("transaction support setValue: nuri=" + namespaceURI + " localName=" + localName + " value=" + value);
if (localName.equals("transaction-support") && value.equals("NoTransaction"))
tsmd.setTransactionSupport(TransactionSupportMetaData.NoTransaction);
else if (localName.equals("transaction-support") && value.equals("LocalTransaction"))
tsmd.setTransactionSupport(TransactionSupportMetaData.LocalTransaction);
else if (localName.equals("transaction-support") && value.equals("XATransaction"))
tsmd.setTransactionSupport(TransactionSupportMetaData.XATransaction);
else
throw new IllegalArgumentException("Unknown transaction support setValue: nuri=" + namespaceURI + " localName=" + localName + " value=" + value);
}
/**
* authentication mechanism child elements
*
* @param ammd the authentication mechanism meta data
* @param navigator the content navigator
* @param namespaceURI the namespace of the element
* @param localName the local name of the element
* @param attrs the attributes
*/
public Object newChild(AuthenticationMechanismMetaData ammd, UnmarshallingContext navigator, String namespaceURI, String localName, Attributes attrs)
{
if (trace)
log.trace("authentication mechanism newChild: nuri=" + namespaceURI + " localName=" + localName + " attrs=" + attrs);
if (localName.equals("authentication-mechanism") ||
localName.equals("authentication-mechanism-type") ||
localName.equals("credential-interface"))
{
return null;
}
else if (localName.equals("description"))
{
String language = attrs.getValue("xml:lang");
DescriptionMetaData dmd = null;
if (language == null)
dmd = ammd.getDescription();
else
dmd = ammd.getDescription(language);
if (dmd == null)
dmd = new DescriptionMetaData(language);
ammd.addDescription(dmd);
return dmd;
}
throw new IllegalArgumentException("Unknown authentication mechanism newChild: nuri=" +namespaceURI + " localName=" + localName + " attrs=" + attrs);
}
/**
* authentication mechanism elements
*
* @param ammd the authentication mechanism meta data
* @param navigator the content navigator
* @param namespaceURI the namespace of the element
* @param localName the local name of the element
* @param value the value
*/
public void setValue(AuthenticationMechanismMetaData ammd, UnmarshallingContext navigator, String namespaceURI, String localName, String value)
{
if (trace)
log.trace("authentication mechanism setValue: nuri=" + namespaceURI + " localName=" + localName + " value=" + value);
if (localName.equals("authentication-mechanism"))
{
}
else if (localName.equals("authentication-mechanism-type"))
ammd.setAuthenticationMechansimType(value);
else if (localName.equals("credential-interface"))
ammd.setCredentialInterfaceClass(value);
else
throw new IllegalArgumentException("Unknown authentication mechanism setValue: nuri=" + namespaceURI + " localName=" + localName + " value=" + value);
}
/**
* message listener child elements
*
* @param mlmd the message listener meta data
* @param navigator the content navigator
* @param namespaceURI the namespace of the element
* @param localName the local name of the element
* @param attrs the attributes
*/
public Object newChild(MessageListenerMetaData mlmd, UnmarshallingContext navigator, String namespaceURI, String localName, Attributes attrs)
{
if (trace)
log.trace("message listener newChild: nuri=" + namespaceURI + " localName=" + localName + " attrs=" + attrs);
if (localName.equals("messagelistener-type") ||
localName.equals("activationspec") ||
localName.equals("activationspec-class"))
{
return null;
}
else if (localName.equals("required-config-property"))
{
RequiredConfigPropertyMetaData rcpmd = new RequiredConfigPropertyMetaData();
mlmd.addRequiredConfigProperty(rcpmd);
return rcpmd;
}
throw new IllegalArgumentException("Unknown message listener newChild: nuri=" +namespaceURI + " localName=" + localName + " attrs=" + attrs);
}
/**
* message listener elements
*
* @param mlmd the description meta data
* @param navigator the content navigator
* @param namespaceURI the namespace of the element
* @param localName the local name of the element
* @param value the value
*/
public void setValue(MessageListenerMetaData mlmd, UnmarshallingContext navigator, String namespaceURI, String localName, String value)
{
if (trace)
log.trace("message listener setValue: nuri=" + namespaceURI + " localName=" + localName + " value=" + value);
if (localName.equals("messagelistener") ||
localName.equals("activationspec"))
{
}
else if (localName.equals("messagelistener-type"))
mlmd.setType(value);
else if (localName.equals("activationspec-class"))
mlmd.setActivationSpecType(value);
else
throw new IllegalArgumentException("Unknown mesasge listener setValue: nuri=" + namespaceURI + " localName=" + localName + " value=" + value);
}
/**
* admin object child elements
*
* @param aomd the admin object meta data
* @param navigator the content navigator
* @param namespaceURI the namespace of the element
* @param localName the local name of the element
* @param attrs the attributes
*/
public Object newChild(AdminObjectMetaData aomd, UnmarshallingContext navigator, String namespaceURI, String localName, Attributes attrs)
{
if (trace)
log.trace("admin object newChild: nuri=" + namespaceURI + " localName=" + localName + " attrs=" + attrs);
if (localName.equals("adminobject") ||
localName.equals("adminobject-interface") ||
localName.equals("adminobject-class"))
{
return null;
}
else if (localName.equals("config-property"))
{
ConfigPropertyMetaData cpmd = new ConfigPropertyMetaData();
aomd.addProperty(cpmd);
return cpmd;
}
throw new IllegalArgumentException("Unknown admin object newChild: nuri=" +namespaceURI + " localName=" + localName + " attrs=" + attrs);
}
/**
* admin object definition elements
*
* @param aomd the admin object meta data
* @param navigator the content navigator
* @param namespaceURI the namespace of the element
* @param localName the local name of the element
* @param value the value
*/
public void setValue(AdminObjectMetaData aomd, UnmarshallingContext navigator, String namespaceURI, String localName, String value)
{
if (trace)
log.trace("admin object setValue: nuri=" + namespaceURI + " localName=" + localName + " value=" + value);
if (localName.equals("adminobject"))
{
}
else if (localName.equals("adminobject-interface"))
aomd.setAdminObjectInterfaceClass(value);
else if (localName.equals("adminobject-class"))
aomd.setAdminObjectImplementationClass(value);
else
throw new IllegalArgumentException("Unknown admin object setValue: nuri=" + namespaceURI + " localName=" + localName + " value=" + value);
}
/**
* security permission child elements
*
* @param spmd the security permission meta data
* @param navigator the content navigator
* @param namespaceURI the namespace of the element
* @param localName the local name of the element
* @param attrs the attributes
*/
public Object newChild(SecurityPermissionMetaData spmd, UnmarshallingContext navigator, String namespaceURI, String localName, Attributes attrs)
{
if (trace)
log.trace("security permission newChild: nuri=" + namespaceURI + " localName=" + localName + " attrs=" + attrs);
if (localName.equals("security-permission") ||
localName.equals("security-permission-spec"))
{
return null;
}
else if (localName.equals("description"))
{
String language = attrs.getValue("xml:lang");
DescriptionMetaData dmd = null;
if (language == null)
dmd = spmd.getDescription();
else
dmd = spmd.getDescription(language);
if (dmd == null)
dmd = new DescriptionMetaData(language);
spmd.addDescription(dmd);
return dmd;
}
throw new IllegalArgumentException("Unknown security permission newChild: nuri=" +namespaceURI + " localName=" + localName + " attrs=" + attrs);
}
/**
* security permission elements
*
* @param spmd the security permission meta data
* @param navigator the content navigator
* @param namespaceURI the namespace of the element
* @param localName the local name of the element
* @param value the value
*/
public void setValue(SecurityPermissionMetaData spmd, UnmarshallingContext navigator, String namespaceURI, String localName, String value)
{
if (trace)
log.trace("security permission setValue: nuri=" + namespaceURI + " localName=" + localName + " value=" + value);
if (localName.equals("security-permission"))
{
}
else if (localName.equals("security-permission-spec"))
spmd.setSecurityPermissionSpec(value);
else
throw new IllegalArgumentException("Unknown security permission setValue: nuri=" + namespaceURI + " localName=" + localName + " value=" + value);
}
/**
* required config property child elements
*
* @param rcpmd the config property meta data
* @param navigator the content navigator
* @param namespaceURI the namespace of the element
* @param localName the local name of the element
* @param attrs the attributes
*/
public Object newChild(RequiredConfigPropertyMetaData rcpmd, UnmarshallingContext navigator, String namespaceURI, String localName, Attributes attrs)
{
if (trace)
log.trace("required config property newChild: nuri=" + namespaceURI + " localName=" + localName + " attrs=" + attrs);
if (localName.equals("config-property-name"))
{
return null;
}
else if (localName.equals("description"))
{
String language = attrs.getValue("xml:lang");
DescriptionMetaData dmd = null;
if (language == null)
dmd = rcpmd.getDescription();
else
dmd = rcpmd.getDescription(language);
if (dmd == null)
dmd = new DescriptionMetaData(language);
rcpmd.addDescription(dmd);
return dmd;
}
throw new IllegalArgumentException("Unknown required config property newChild: nuri=" +namespaceURI + " localName=" + localName + " attrs=" + attrs);
}
/**
* required config property elements
*
* @param rcpmd the required config property meta data
* @param navigator the content navigator
* @param namespaceURI the namespace of the element
* @param localName the local name of the element
* @param value the value
*/
public void setValue(RequiredConfigPropertyMetaData rcpmd, UnmarshallingContext navigator, String namespaceURI, String localName, String value)
{
if (trace)
log.trace("required config property setValue: nuri=" + namespaceURI + " localName=" + localName + " value=" + value);
if (localName.equals("required-config-property"))
{
}
else if (localName.equals("config-property-name"))
rcpmd.setName(value);
else
throw new IllegalArgumentException("Unknown required config property setValue: nuri=" + namespaceURI + " localName=" + localName + " value=" + value);
}
public Object newRoot(Object root,
UnmarshallingContext navigator,
String namespaceURI,
String localName,
Attributes attrs)
{
if (!localName.equals("connector"))
{
throw new IllegalStateException("Unexpected root element: was expecting 'connector' but got '" + localName + "'");
}
final ConnectorMetaData cmd = new ConnectorMetaData();
String version = attrs.getValue("version");
if (version != null)
{
cmd.setVersion(version);
}
return cmd;
}
public Object completeRoot(Object root, UnmarshallingContext ctx, String uri, String name)
{
return root;
}
}