// Path: switchyard/switchyard-component-common-knowledge/src/main/java/org/switchyard/component/common/knowledge/config/model/ExtraJaxbClassesModel.java
// public interface ExtraJaxbClassesModel extends Model {
// 
//     /** The "extraJaxbClasses" name. */
//     public static final String EXTRA_JAXB_CLASSES = "extraJaxbClasses";
// 
//     /** Gets the child extraJaxbClass models.
//      * 
//      * @return the child extraJaxbClass models */
//     public List<ExtraJaxbClassModel> getExtraJaxbClasses();
// 
//     /** Adds a child extraJaxbClass model.
//      * 
//      * @param extraJaxbClass the child extraJaxbClass model
//      * @return this ExtraJaxbClassesModel (useful for chaining) */
//     public ExtraJaxbClassesModel addExtraJaxbClass(ExtraJaxbClassModel extraJaxbClass);
// 
// }
// 
// Path: switchyard/switchyard-component-common-knowledge/src/main/java/org/switchyard/component/common/knowledge/config/model/RemoteModel.java
// public interface RemoteModel extends Model {
// 
//     /** Gets the deploymentId attribute.
//      * 
//      * @return the deploymentId attribute */
//     public String getDeploymentId();
// 
//     /** Sets the deploymentId attribute.
//      * 
//      * @param deploymentId the deploymentId attribute
//      * @return this RemoteModel (useful for chaining) */
//     public RemoteModel setDeploymentId(String deploymentId);
// 
//     /** Gets the userName attribute.
//      * 
//      * @return the userName attribute */
//     public String getUserName();
// 
//     /** Sets the userName attribute.
//      * 
//      * @param userName the userName attribute
//      * @return this RemoteModel (useful for chaining) */
//     public RemoteModel setUserName(String userName);
// 
//     /** Gets the password attribute.
//      * 
//      * @return the password attribute */
//     public String getPassword();
// 
//     /** Sets the password attribute.
//      * 
//      * @param password the password attribute
//      * @return this RemoteModel (useful for chaining) */
//     public RemoteModel setPassword(String password);
// 
//     /** Gets the timeout attribute.
//      * 
//      * @return the timeout attribute */
//     public Integer getTimeout();
// 
//     /** Sets the timeout attribute.
//      * 
//      * @param timeout the timeout attribute
//      * @return this RemoteModel (useful for chaining) */
//     public RemoteModel setTimeout(Integer timeout);
// 
//     /** Gets the child extraJaxbClasses model.
//      * 
//      * @return the child extraJaxbClasses model */
//     public ExtraJaxbClassesModel getExtraJaxbClasses();
// 
//     /** Sets the child extraJaxbClasses model.
//      * 
//      * @param extraJaxbClasses the child extraJaxbClasses model
//      * @return this RemoteModel (useful for chaining) */
//     public RemoteModel setExtraJaxbClasses(ExtraJaxbClassesModel extraJaxbClasses);
// 
// }


import static org.switchyard.component.common.knowledge.config.model.ExtraJaxbClassesModel.EXTRA_JAXB_CLASSES;
import org.switchyard.common.xml.XMLHelper;
import org.switchyard.component.common.knowledge.config.model.ExtraJaxbClassesModel;
import org.switchyard.component.common.knowledge.config.model.RemoteModel;
import org.switchyard.config.Configuration;
import org.switchyard.config.model.BaseModel;
import org.switchyard.config.model.Descriptor;
/*
 * Copyright 2014 Red Hat Inc. and/or its affiliates and other contributors.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * http://www.apache.org/licenses/LICENSE-2.0
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.switchyard.component.common.knowledge.config.model.v2;



/** The 2nd version RemoteModel.
 *
 * @author David Ward &lt;<a href="mailto:dward@jboss.org">dward@jboss.org</a>&gt; &copy; 2014 Red Hat Inc. */
public abstract class V2RemoteModel extends BaseModel implements RemoteModel {

    private ExtraJaxbClassesModel _extraJaxbClasses = null;

    /** Constructs a new V2RemoteModel of the specified namespace and name.
     * 
     * @param namespace the namespace
     * @param name the name */
    public V2RemoteModel(String namespace, String name) {
        super(XMLHelper.createQName(namespace, name));
    }

    /** Constructs a new V2RemoteJmsModel with the specified Configuration and Descriptor.
     * 
     * @param config the Configuration
     * @param desc the Descriptor */
    public V2RemoteModel(Configuration config, Descriptor desc) {
        super(config, desc);
    }

    /** {@inheritDoc} */
    @Override
    public String getDeploymentId() {
        return getModelAttribute("deploymentId");
    }

    /** {@inheritDoc} */
    @Override
// Path: switchyard/switchyard-component-common-knowledge/src/main/java/org/switchyard/component/common/knowledge/config/model/ExtraJaxbClassesModel.java
// public interface ExtraJaxbClassesModel extends Model {
// 
//     /** The "extraJaxbClasses" name. */
//     public static final String EXTRA_JAXB_CLASSES = "extraJaxbClasses";
// 
//     /** Gets the child extraJaxbClass models.
//      * 
//      * @return the child extraJaxbClass models */
//     public List<ExtraJaxbClassModel> getExtraJaxbClasses();
// 
//     /** Adds a child extraJaxbClass model.
//      * 
//      * @param extraJaxbClass the child extraJaxbClass model
//      * @return this ExtraJaxbClassesModel (useful for chaining) */
//     public ExtraJaxbClassesModel addExtraJaxbClass(ExtraJaxbClassModel extraJaxbClass);
// 
// }
// 
// Path: switchyard/switchyard-component-common-knowledge/src/main/java/org/switchyard/component/common/knowledge/config/model/RemoteModel.java
// public interface RemoteModel extends Model {
// 
//     /** Gets the deploymentId attribute.
//      * 
//      * @return the deploymentId attribute */
//     public String getDeploymentId();
// 
//     /** Sets the deploymentId attribute.
//      * 
//      * @param deploymentId the deploymentId attribute
//      * @return this RemoteModel (useful for chaining) */
//     public RemoteModel setDeploymentId(String deploymentId);
// 
//     /** Gets the userName attribute.
//      * 
//      * @return the userName attribute */
//     public String getUserName();
// 
//     /** Sets the userName attribute.
//      * 
//      * @param userName the userName attribute
//      * @return this RemoteModel (useful for chaining) */
//     public RemoteModel setUserName(String userName);
// 
//     /** Gets the password attribute.
//      * 
//      * @return the password attribute */
//     public String getPassword();
// 
//     /** Sets the password attribute.
//      * 
//      * @param password the password attribute
//      * @return this RemoteModel (useful for chaining) */
//     public RemoteModel setPassword(String password);
// 
//     /** Gets the timeout attribute.
//      * 
//      * @return the timeout attribute */
//     public Integer getTimeout();
// 
//     /** Sets the timeout attribute.
//      * 
//      * @param timeout the timeout attribute
//      * @return this RemoteModel (useful for chaining) */
//     public RemoteModel setTimeout(Integer timeout);
// 
//     /** Gets the child extraJaxbClasses model.
//      * 
//      * @return the child extraJaxbClasses model */
//     public ExtraJaxbClassesModel getExtraJaxbClasses();
// 
//     /** Sets the child extraJaxbClasses model.
//      * 
//      * @param extraJaxbClasses the child extraJaxbClasses model
//      * @return this RemoteModel (useful for chaining) */
//     public RemoteModel setExtraJaxbClasses(ExtraJaxbClassesModel extraJaxbClasses);
// 
// }


// Path: switchyard/switchyard-component-common-knowledge/src/main/java/org/switchyard/component/common/knowledge/config/model/v2/V2RemoteModel.java
import static org.switchyard.component.common.knowledge.config.model.ExtraJaxbClassesModel.EXTRA_JAXB_CLASSES;
import org.switchyard.common.xml.XMLHelper;
import org.switchyard.component.common.knowledge.config.model.ExtraJaxbClassesModel;
import org.switchyard.component.common.knowledge.config.model.RemoteModel;
import org.switchyard.config.Configuration;
import org.switchyard.config.model.BaseModel;
import org.switchyard.config.model.Descriptor;

/*
 * Copyright 2014 Red Hat Inc. and/or its affiliates and other contributors.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * http://www.apache.org/licenses/LICENSE-2.0
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.switchyard.component.common.knowledge.config.model.v2;



/** The 2nd version RemoteModel.
 *
 * @author David Ward &lt;<a href="mailto:dward@jboss.org">dward@jboss.org</a>&gt; &copy; 2014 Red Hat Inc. */
public abstract class V2RemoteModel extends BaseModel implements RemoteModel {

    private ExtraJaxbClassesModel _extraJaxbClasses = null;

    /** Constructs a new V2RemoteModel of the specified namespace and name.
     * 
     * @param namespace the namespace
     * @param name the name */
    public V2RemoteModel(String namespace, String name) {
        super(XMLHelper.createQName(namespace, name));
    }

    /** Constructs a new V2RemoteJmsModel with the specified Configuration and Descriptor.
     * 
     * @param config the Configuration
     * @param desc the Descriptor */
    public V2RemoteModel(Configuration config, Descriptor desc) {
        super(config, desc);
    }

    /** {@inheritDoc} */
    @Override
    public String getDeploymentId() {
        return getModelAttribute("deploymentId");
    }

    /** {@inheritDoc} */
    @Override
    public RemoteModel setDeploymentId(String deploymentId) {