private static void readInvoke()

in src/main/java/org/apache/commons/scxml2/io/SCXMLReader.java [1111:1151]


    private static void readInvoke(final XMLStreamReader reader, final Configuration configuration,
                                   final TransitionalState parent)
            throws XMLStreamException, ModelException {

        final Invoke invoke = new Invoke();
        invoke.setId(readAV(reader, SCXMLConstants.ATTR_ID));
        invoke.setIdlocation(readAV(reader, SCXMLConstants.ATTR_IDLOCATION));
        invoke.setSrc(readAV(reader, SCXMLConstants.ATTR_SRC));
        invoke.setSrcexpr(readAV(reader, SCXMLConstants.ATTR_SRCEXPR));
        invoke.setType(readAV(reader, SCXMLConstants.ATTR_TYPE));
        invoke.setAutoForward(readBooleanAV(reader, SCXMLConstants.ELEM_INVOKE, SCXMLConstants.ATTR_AUTOFORWARD));
        invoke.setNamelist(readAV(reader, SCXMLConstants.ATTR_NAMELIST));

        loop : while (reader.hasNext()) {
            String name, nsURI;
            switch (reader.next()) {
                case XMLStreamConstants.START_ELEMENT:
                    nsURI = reader.getNamespaceURI();
                    name = reader.getLocalName();
                    if (SCXMLConstants.XMLNS_SCXML.equals(nsURI)) {
                        if (SCXMLConstants.ELEM_PARAM.equals(name)) {
                            readParam(reader, configuration, invoke);
                        } else if (SCXMLConstants.ELEM_FINALIZE.equals(name)) {
                            readFinalize(reader, configuration, parent, invoke);
                        } else if (SCXMLConstants.ELEM_CONTENT.equals(name)) {
                            readContent(reader, configuration, invoke);
                        } else {
                            reportIgnoredElement(reader, configuration, SCXMLConstants.ELEM_INVOKE, nsURI, name);
                        }
                    } else {
                        reportIgnoredElement(reader, configuration, SCXMLConstants.ELEM_INVOKE, nsURI, name);
                    }
                    break;
                case XMLStreamConstants.END_ELEMENT:
                    break loop;
                default:
            }
        }

        parent.addInvoke(invoke);
    }