connector/src/main/java/org/jboss/as/connector/subsystems/resourceadapters/CommonIronJacamarParser.java
protected void parseConnectionDefinitions_5_0(final XMLExtendedStreamReader reader, final Map<String, ModelNode> map,
                                                  final Map<String, HashMap<String, ModelNode>> configMap, final boolean isXa)
            throws XMLStreamException, ParserException, ValidateException {


        final ModelNode connectionDefinitionNode = new ModelNode();
        connectionDefinitionNode.get(OP).set(ADD);

        final String poolName = parseConnectionAttributes_5_0(reader, connectionDefinitionNode);
        boolean poolDefined = Boolean.FALSE;

        while (reader.hasNext()) {
            switch (reader.nextTag()) {
                case END_ELEMENT: {
                    if (Activation.Tag.forName(reader.getLocalName()) == Activation.Tag.CONNECTION_DEFINITION) {

                        map.put(poolName, connectionDefinitionNode);
                        return;
                    } else {
                        if (ConnectionDefinition.Tag.forName(reader.getLocalName()) == ConnectionDefinition.Tag.UNKNOWN) {
                            throw ParseUtils.unexpectedEndElement(reader);
                        }
                    }
                    break;
                }
                case START_ELEMENT: {
                    switch (ConnectionDefinition.Tag.forName(reader.getLocalName())) {
                        case CONFIG_PROPERTY: {
                            if (!configMap.containsKey(poolName)) {
                                configMap.put(poolName, new HashMap<String, ModelNode>(0));
                            }
                            parseConfigProperties(reader, configMap.get(poolName));
                            break;
                        }
                        case SECURITY: {
                            parseElytronSupportedSecuritySettings(reader, connectionDefinitionNode);
                            break;
                        }
                        case TIMEOUT: {
                            parseTimeOut(reader, isXa, connectionDefinitionNode);
                            break;
                        }
                        case VALIDATION: {
                            parseValidation(reader, connectionDefinitionNode);
                            break;
                        }
                        case XA_POOL: {
                            if (!isXa) {
                                throw ParseUtils.unexpectedElement(reader);
                            }
                            if (poolDefined) {
                                throw new ParserException(bundle.multiplePools());
                            }
                            parseXaPool(reader, connectionDefinitionNode);
                            poolDefined = true;
                            break;
                        }
                        case POOL: {
                            if (isXa) {
                                throw ParseUtils.unexpectedElement(reader);
                            }
                            if (poolDefined) {
                                throw new ParserException(bundle.multiplePools());
                            }
                            parsePool(reader, connectionDefinitionNode);
                            poolDefined = true;
                            break;
                        }
                        case RECOVERY: {
                            parseElytronSupportedRecovery(reader, connectionDefinitionNode);
                            break;
                        }
                        default:
                            throw ParseUtils.unexpectedElement(reader);
                    }
                    break;
                }
            }
        }
        throw ParseUtils.unexpectedEndElement(reader);

    }
protected void parseConnectionDefinitions_5_0(final XMLExtendedStreamReader reader, final Map<String, ModelNode> map,
                                                  final Map<String, HashMap<String, ModelNode>> configMap, final boolean isXa)
            throws XMLStreamException, ParserException, ValidateException {


        final ModelNode connectionDefinitionNode = new ModelNode();
        connectionDefinitionNode.get(OP).set(ADD);

        final String poolName = parseConnectionAttributes_5_0(reader, connectionDefinitionNode);
        boolean poolDefined = Boolean.FALSE;

        while (reader.hasNext()) {
            switch (reader.nextTag()) {
                case END_ELEMENT: {
                    if (Activation.Tag.forName(reader.getLocalName()) == Activation.Tag.CONNECTION_DEFINITION) {

                        map.put(poolName, connectionDefinitionNode);
                        return;
                    } else {
                        if (ConnectionDefinition.Tag.forName(reader.getLocalName()) == ConnectionDefinition.Tag.UNKNOWN) {
                            throw ParseUtils.unexpectedEndElement(reader);
                        }
                    }
                    break;
                }
                case START_ELEMENT: {
                    switch (ConnectionDefinition.Tag.forName(reader.getLocalName())) {
                        case CONFIG_PROPERTY: {
                            if (!configMap.containsKey(poolName)) {
                                configMap.put(poolName, new HashMap<String, ModelNode>(0));
                            }
                            parseConfigProperties(reader, configMap.get(poolName));
                            break;
                        }
                        case SECURITY: {
                            parseElytronSupportedSecuritySettings(reader, connectionDefinitionNode);
                            break;
                        }
                        case TIMEOUT: {
                            parseTimeOut(reader, isXa, connectionDefinitionNode);
                            break;
                        }
                        case VALIDATION: {
                            parseValidation(reader, connectionDefinitionNode);
                            break;
                        }
                        case XA_POOL: {
                            if (!isXa) {
                                throw ParseUtils.unexpectedElement(reader);
                            }
                            if (poolDefined) {
                                throw new ParserException(bundle.multiplePools());
                            }
                            parseXaPool(reader, connectionDefinitionNode);
                            poolDefined = true;
                            break;
                        }
                        case POOL: {
                            if (isXa) {
                                throw ParseUtils.unexpectedElement(reader);
                            }
                            if (poolDefined) {
                                throw new ParserException(bundle.multiplePools());
                            }
                            parsePool(reader, connectionDefinitionNode);
                            poolDefined = true;
                            break;
                        }
                        case RECOVERY: {
                            parseElytronSupportedRecovery(reader, connectionDefinitionNode);
                            break;
                        }
                        default:
                            throw ParseUtils.unexpectedElement(reader);
                    }
                    break;
                }
            }
        }
        throw ParseUtils.unexpectedEndElement(reader);

    }
protected void parseConnectionDefinitions_5_0 ( final XMLExtendedStreamReader reader , final Map < String , ModelNode > map , final Map < String , HashMap < String , ModelNode > > configMap , final boolean isXa ) throws XMLStreamException , ParserException , ValidateException { final ModelNode connectionDefinitionNode = new ModelNode ( ) ; connectionDefinitionNode . get ( OP ) . set ( ADD ) ; final String poolName = parseConnectionAttributes_5_0 ( reader , connectionDefinitionNode ) ; boolean poolDefined = Boolean . FALSE ; while ( reader . hasNext ( ) ) { switch ( reader . nextTag ( ) ) { case END_ELEMENT : { if ( Activation . Tag . forName ( reader . getLocalName ( ) ) == Activation . Tag . CONNECTION_DEFINITION ) { map . put ( poolName , connectionDefinitionNode ) ; return ; } else { if ( ConnectionDefinition . Tag . forName ( reader . getLocalName ( ) ) == ConnectionDefinition . Tag . UNKNOWN ) { throw ParseUtils . unexpectedEndElement ( reader ) ; } } break ; } case START_ELEMENT : { switch ( ConnectionDefinition . Tag . forName ( reader . getLocalName ( ) ) ) { case CONFIG_PROPERTY : { if ( ! configMap . containsKey ( poolName ) ) { configMap . put ( poolName , new HashMap < String , ModelNode > ( 0 ) ) ; } parseConfigProperties ( reader , configMap . get ( poolName ) ) ; break ; } case SECURITY : { parseElytronSupportedSecuritySettings ( reader , connectionDefinitionNode ) ; break ; } case TIMEOUT : { parseTimeOut ( reader , isXa , connectionDefinitionNode ) ; break ; } case VALIDATION : { parseValidation ( reader , connectionDefinitionNode ) ; break ; } case XA_POOL : { if ( ! isXa ) { throw ParseUtils . unexpectedElement ( reader ) ; } if ( poolDefined ) { throw new ParserException ( bundle . multiplePools ( ) ) ; } parseXaPool ( reader , connectionDefinitionNode ) ; poolDefined = true ; break ; } case POOL : { if ( isXa ) { throw ParseUtils . unexpectedElement ( reader ) ; } if ( poolDefined ) { throw new ParserException ( bundle . multiplePools ( ) ) ; } parsePool ( reader , connectionDefinitionNode ) ; poolDefined = true ; break ; } case RECOVERY : { parseElytronSupportedRecovery ( reader , connectionDefinitionNode ) ; break ; } default : throw ParseUtils . unexpectedElement ( reader ) ; } break ; } } } throw ParseUtils . unexpectedEndElement ( reader ) ; }
parse a single connection-definition tag

@param reader the reader
@throws javax.xml.stream.XMLStreamException
XMLStreamException
@throws ParserException ParserException
@throws org.jboss.jca.common.api.validator.ValidateException
ValidateException
parse a single connection - definition tag