private void parseAttributes(XMLExtendedStreamReader reader, ModelNode node, EnumSet<Attribute> expectedAttributes,
                                 EnumSet<Attribute> requiredAttributes) throws XMLStreamException {
    """
	<p>
	Parses all attributes from the current element and sets them in the specified {@code ModelNode}.
	</p>
	
	@param reader             the {@code XMLExtendedStreamReader} used to read the configuration XML.
	@param node               the {@code ModelNode} that will hold the parsed attributes.
	@param expectedAttributes an {@code EnumSet} containing all expected attributes. If the parsed attribute is not
	one of the expected attributes, an exception is thrown.
	@param requiredAttributes an {@code EnumSet} containing all required attributes. If a required attribute is not
	found, an exception is thrown.
	@throws XMLStreamException if an error occurs while parsing the XML, if an attribute is not one of the expected
	attributes or if one of the required attributes is not parsed.
    """

        EnumSet<Attribute> parsedAttributes = EnumSet.noneOf(Attribute.class);
        if (requiredAttributes == null) {
            requiredAttributes = EnumSet.noneOf(Attribute.class);
        }

        for (int i = 0; i < reader.getAttributeCount(); i++) {
            requireNoNamespaceAttribute(reader, i);
            final String attrValue = reader.getAttributeValue(i);
            final Attribute attribute = Attribute.forName(reader.getAttributeLocalName(i));
            // check for unexpected attributes.
            if (!expectedAttributes.contains(attribute))
                throw unexpectedAttribute(reader, i);
            // check for duplicate attributes.
            if (!parsedAttributes.add(attribute)) {
                throw duplicateAttribute(reader, attribute.getLocalName());
            }
            requiredAttributes.remove(attribute);
            ((SimpleAttributeDefinition)JacORBSubsystemDefinitions.valueOf(attribute.getLocalName())).
                    parseAndSetParameter(attrValue, node, reader);
        }

        // throw an exception if a required attribute wasn't found.
        if (!requiredAttributes.isEmpty()) {
            throw missingRequired(reader, requiredAttributes);
        }
    }
private void parseAttributes(XMLExtendedStreamReader reader, ModelNode node, EnumSet<Attribute> expectedAttributes,
                                 EnumSet<Attribute> requiredAttributes) throws XMLStreamException {

        EnumSet<Attribute> parsedAttributes = EnumSet.noneOf(Attribute.class);
        if (requiredAttributes == null) {
            requiredAttributes = EnumSet.noneOf(Attribute.class);
        }

        for (int i = 0; i < reader.getAttributeCount(); i++) {
            requireNoNamespaceAttribute(reader, i);
            final String attrValue = reader.getAttributeValue(i);
            final Attribute attribute = Attribute.forName(reader.getAttributeLocalName(i));
            // check for unexpected attributes.
            if (!expectedAttributes.contains(attribute))
                throw unexpectedAttribute(reader, i);
            // check for duplicate attributes.
            if (!parsedAttributes.add(attribute)) {
                throw duplicateAttribute(reader, attribute.getLocalName());
            }
            requiredAttributes.remove(attribute);
            ((SimpleAttributeDefinition)JacORBSubsystemDefinitions.valueOf(attribute.getLocalName())).
                    parseAndSetParameter(attrValue, node, reader);
        }

        // throw an exception if a required attribute wasn't found.
        if (!requiredAttributes.isEmpty()) {
            throw missingRequired(reader, requiredAttributes);
        }
    }
private void parseAttributes ( XMLExtendedStreamReader reader , ModelNode node , EnumSet < Attribute > expectedAttributes , EnumSet < Attribute > requiredAttributes ) throws XMLStreamException { EnumSet < Attribute > parsedAttributes = EnumSet . noneOf ( Attribute . class ) ; if ( requiredAttributes == null ) { requiredAttributes = EnumSet . noneOf ( Attribute . class ) ; } for ( int i = 0 ; i < reader . getAttributeCount ( ) ; i ++ ) { requireNoNamespaceAttribute ( reader , i ) ; final String attrValue = reader . getAttributeValue ( i ) ; final Attribute attribute = Attribute . forName ( reader . getAttributeLocalName ( i ) ) ; // check for unexpected attributes. if ( ! expectedAttributes . contains ( attribute ) ) throw unexpectedAttribute ( reader , i ) ; // check for duplicate attributes. if ( ! parsedAttributes . add ( attribute ) ) { throw duplicateAttribute ( reader , attribute . getLocalName ( ) ) ; } requiredAttributes . remove ( attribute ) ; ( ( SimpleAttributeDefinition ) JacORBSubsystemDefinitions . valueOf ( attribute . getLocalName ( ) ) ) . parseAndSetParameter ( attrValue , node , reader ) ; } // throw an exception if a required attribute wasn't found. if ( ! requiredAttributes . isEmpty ( ) ) { throw missingRequired ( reader , requiredAttributes ) ; } }
<p>
Parses all attributes from the current element and sets them in the specified {@code ModelNode}.
</p>

@param reader             the {@code XMLExtendedStreamReader} used to read the configuration XML.
@param node               the {@code ModelNode} that will hold the parsed attributes.
@param expectedAttributes an {@code EnumSet} containing all expected attributes. If the parsed attribute is not
one of the expected attributes, an exception is thrown.
@param requiredAttributes an {@code EnumSet} containing all required attributes. If a required attribute is not
found, an exception is thrown.
@throws XMLStreamException if an error occurs while parsing the XML, if an attribute is not one of the expected
attributes or if one of the required attributes is not parsed.
<p > Parses all attributes from the current element and sets them in the specified { @code ModelNode } . < / p >