//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v1.0.5-20051113-fcs 
// 	See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
// 	Any modifications to this file will be lost upon recompilation of the source schema. 
// 	Generated on: 2006.03.16 um 02:41:50 CET 
//


package phex.xml.impl;

public class XJBSWDownloadFileImpl implements phex.xml.XJBSWDownloadFile, com.sun.xml.bind.JAXBObject, phex.xml.impl.runtime.UnmarshallableObject, phex.xml.impl.runtime.XMLSerializable
{

    protected boolean has_Status;
    protected short _Status;
    protected com.sun.xml.bind.util.ListImpl _CandidateList;
    protected boolean has_ModifiedTime;
    protected long _ModifiedTime;
    protected java.lang.String _SearchTerm;
    protected java.lang.String _FileURN;
    protected com.sun.xml.bind.util.ListImpl _FinishedScopesList;
    protected java.lang.String _IncompleteFileName;
    protected java.lang.String _ScopeSelectionStrategy;
    protected java.lang.String _LocalFileName;
    protected com.sun.xml.bind.util.ListImpl _SegmentList;
    protected boolean has_CreatedTime;
    protected long _CreatedTime;
    protected boolean has_FileSize;
    protected long _FileSize;
    public final static java.lang.Class version = (phex.xml.impl.JAXBVersion.class);

    private final static java.lang.Class PRIMARY_INTERFACE_CLASS() {
        return (phex.xml.XJBSWDownloadFile.class);
    }

    public short getStatus() {
        return _Status;
    }

    public void setStatus(short value) {
        _Status = value;
        has_Status = true;
    }

    protected com.sun.xml.bind.util.ListImpl _getCandidateList() {
        if (_CandidateList == null) {
            _CandidateList = new com.sun.xml.bind.util.ListImpl(new java.util.ArrayList());
        }
        return _CandidateList;
    }

    public java.util.List getCandidateList() {
        return _getCandidateList();
    }

    public long getModifiedTime() {
        return _ModifiedTime;
    }

    public void setModifiedTime(long value) {
        _ModifiedTime = value;
        has_ModifiedTime = true;
    }

    public java.lang.String getSearchTerm() {
        return _SearchTerm;
    }

    public void setSearchTerm(java.lang.String value) {
        _SearchTerm = value;
    }

    public java.lang.String getFileURN() {
        return _FileURN;
    }

    public void setFileURN(java.lang.String value) {
        _FileURN = value;
    }

    protected com.sun.xml.bind.util.ListImpl _getFinishedScopesList() {
        if (_FinishedScopesList == null) {
            _FinishedScopesList = new com.sun.xml.bind.util.ListImpl(new java.util.ArrayList());
        }
        return _FinishedScopesList;
    }

    public java.util.List getFinishedScopesList() {
        return _getFinishedScopesList();
    }

    public java.lang.String getIncompleteFileName() {
        return _IncompleteFileName;
    }

    public void setIncompleteFileName(java.lang.String value) {
        _IncompleteFileName = value;
    }

    public java.lang.String getScopeSelectionStrategy() {
        return _ScopeSelectionStrategy;
    }

    public void setScopeSelectionStrategy(java.lang.String value) {
        _ScopeSelectionStrategy = value;
    }

    public java.lang.String getLocalFileName() {
        return _LocalFileName;
    }

    public void setLocalFileName(java.lang.String value) {
        _LocalFileName = value;
    }

    protected com.sun.xml.bind.util.ListImpl _getSegmentList() {
        if (_SegmentList == null) {
            _SegmentList = new com.sun.xml.bind.util.ListImpl(new java.util.ArrayList());
        }
        return _SegmentList;
    }

    public java.util.List getSegmentList() {
        return _getSegmentList();
    }

    public long getCreatedTime() {
        return _CreatedTime;
    }

    public void setCreatedTime(long value) {
        _CreatedTime = value;
        has_CreatedTime = true;
    }

    public long getFileSize() {
        return _FileSize;
    }

    public void setFileSize(long value) {
        _FileSize = value;
        has_FileSize = true;
    }

    public phex.xml.impl.runtime.UnmarshallingEventHandler createUnmarshaller(phex.xml.impl.runtime.UnmarshallingContext context) {
        return new phex.xml.impl.XJBSWDownloadFileImpl.Unmarshaller(context);
    }

    public void serializeBody(phex.xml.impl.runtime.XMLSerializer context)
        throws org.xml.sax.SAXException
    {
        int idx2 = 0;
        final int len2 = ((_CandidateList == null)? 0 :_CandidateList.size());
        int idx6 = 0;
        final int len6 = ((_FinishedScopesList == null)? 0 :_FinishedScopesList.size());
        int idx10 = 0;
        final int len10 = ((_SegmentList == null)? 0 :_SegmentList.size());
        if (_LocalFileName!= null) {
            context.startElement("", "localfilename");
            context.endNamespaceDecls();
            context.endAttributes();
            try {
                context.text(((java.lang.String) _LocalFileName), "LocalFileName");
            } catch (java.lang.Exception e) {
                phex.xml.impl.runtime.Util.handlePrintConversionException(this, e, context);
            }
            context.endElement();
        }
        if (_IncompleteFileName!= null) {
            context.startElement("", "incomplete-file-name");
            context.endNamespaceDecls();
            context.endAttributes();
            try {
                context.text(((java.lang.String) _IncompleteFileName), "IncompleteFileName");
            } catch (java.lang.Exception e) {
                phex.xml.impl.runtime.Util.handlePrintConversionException(this, e, context);
            }
            context.endElement();
        }
        if (_SearchTerm!= null) {
            context.startElement("", "searchterm");
            context.endNamespaceDecls();
            context.endAttributes();
            try {
                context.text(((java.lang.String) _SearchTerm), "SearchTerm");
            } catch (java.lang.Exception e) {
                phex.xml.impl.runtime.Util.handlePrintConversionException(this, e, context);
            }
            context.endElement();
        }
        if (has_FileSize) {
            context.startElement("", "filesize");
            context.endNamespaceDecls();
            context.endAttributes();
            try {
                context.text(javax.xml.bind.DatatypeConverter.printLong(((long) _FileSize)), "FileSize");
            } catch (java.lang.Exception e) {
                phex.xml.impl.runtime.Util.handlePrintConversionException(this, e, context);
            }
            context.endElement();
        }
        if (_FileURN!= null) {
            context.startElement("", "file-urn");
            context.endNamespaceDecls();
            context.endAttributes();
            try {
                context.text(((java.lang.String) _FileURN), "FileURN");
            } catch (java.lang.Exception e) {
                phex.xml.impl.runtime.Util.handlePrintConversionException(this, e, context);
            }
            context.endElement();
        }
        if (_ScopeSelectionStrategy!= null) {
            context.startElement("", "scope-strategy");
            context.endNamespaceDecls();
            context.endAttributes();
            try {
                context.text(((java.lang.String) _ScopeSelectionStrategy), "ScopeSelectionStrategy");
            } catch (java.lang.Exception e) {
                phex.xml.impl.runtime.Util.handlePrintConversionException(this, e, context);
            }
            context.endElement();
        }
        if (has_Status) {
            context.startElement("", "status");
            context.endNamespaceDecls();
            context.endAttributes();
            try {
                context.text(javax.xml.bind.DatatypeConverter.printShort(((short) _Status)), "Status");
            } catch (java.lang.Exception e) {
                phex.xml.impl.runtime.Util.handlePrintConversionException(this, e, context);
            }
            context.endElement();
        }
        if (has_CreatedTime) {
            context.startElement("", "created-time");
            context.endNamespaceDecls();
            context.endAttributes();
            try {
                context.text(javax.xml.bind.DatatypeConverter.printLong(((long) _CreatedTime)), "CreatedTime");
            } catch (java.lang.Exception e) {
                phex.xml.impl.runtime.Util.handlePrintConversionException(this, e, context);
            }
            context.endElement();
        }
        if (has_ModifiedTime) {
            context.startElement("", "modified-time");
            context.endNamespaceDecls();
            context.endAttributes();
            try {
                context.text(javax.xml.bind.DatatypeConverter.printLong(((long) _ModifiedTime)), "ModifiedTime");
            } catch (java.lang.Exception e) {
                phex.xml.impl.runtime.Util.handlePrintConversionException(this, e, context);
            }
            context.endElement();
        }
        while (idx2 != len2) {
            context.startElement("", "candidate");
            int idx_18 = idx2;
            context.childAsURIs(((com.sun.xml.bind.JAXBObject) _CandidateList.get(idx_18 ++)), "CandidateList");
            context.endNamespaceDecls();
            int idx_19 = idx2;
            context.childAsAttributes(((com.sun.xml.bind.JAXBObject) _CandidateList.get(idx_19 ++)), "CandidateList");
            context.endAttributes();
            context.childAsBody(((com.sun.xml.bind.JAXBObject) _CandidateList.get(idx2 ++)), "CandidateList");
            context.endElement();
        }
        while (idx6 != len6) {
            context.startElement("", "finished-scopes");
            int idx_20 = idx6;
            context.childAsURIs(((com.sun.xml.bind.JAXBObject) _FinishedScopesList.get(idx_20 ++)), "FinishedScopesList");
            context.endNamespaceDecls();
            int idx_21 = idx6;
            context.childAsAttributes(((com.sun.xml.bind.JAXBObject) _FinishedScopesList.get(idx_21 ++)), "FinishedScopesList");
            context.endAttributes();
            context.childAsBody(((com.sun.xml.bind.JAXBObject) _FinishedScopesList.get(idx6 ++)), "FinishedScopesList");
            context.endElement();
        }
        while (idx10 != len10) {
            context.startElement("", "segment");
            int idx_22 = idx10;
            context.childAsURIs(((com.sun.xml.bind.JAXBObject) _SegmentList.get(idx_22 ++)), "SegmentList");
            context.endNamespaceDecls();
            int idx_23 = idx10;
            context.childAsAttributes(((com.sun.xml.bind.JAXBObject) _SegmentList.get(idx_23 ++)), "SegmentList");
            context.endAttributes();
            context.childAsBody(((com.sun.xml.bind.JAXBObject) _SegmentList.get(idx10 ++)), "SegmentList");
            context.endElement();
        }
    }

    public void serializeAttributes(phex.xml.impl.runtime.XMLSerializer context)
        throws org.xml.sax.SAXException
    {
        int idx2 = 0;
        final int len2 = ((_CandidateList == null)? 0 :_CandidateList.size());
        int idx6 = 0;
        final int len6 = ((_FinishedScopesList == null)? 0 :_FinishedScopesList.size());
        int idx10 = 0;
        final int len10 = ((_SegmentList == null)? 0 :_SegmentList.size());
        while (idx2 != len2) {
            idx2 += 1;
        }
        while (idx6 != len6) {
            idx6 += 1;
        }
        while (idx10 != len10) {
            idx10 += 1;
        }
    }

    public void serializeURIs(phex.xml.impl.runtime.XMLSerializer context)
        throws org.xml.sax.SAXException
    {
        int idx2 = 0;
        final int len2 = ((_CandidateList == null)? 0 :_CandidateList.size());
        int idx6 = 0;
        final int len6 = ((_FinishedScopesList == null)? 0 :_FinishedScopesList.size());
        int idx10 = 0;
        final int len10 = ((_SegmentList == null)? 0 :_SegmentList.size());
        while (idx2 != len2) {
            idx2 += 1;
        }
        while (idx6 != len6) {
            idx6 += 1;
        }
        while (idx10 != len10) {
            idx10 += 1;
        }
    }

    public class Unmarshaller
        extends phex.xml.impl.runtime.AbstractUnmarshallingEventHandlerImpl
    {


        public Unmarshaller(phex.xml.impl.runtime.UnmarshallingContext context) {
            super(context, "-------------------------------------");
        }

        protected Unmarshaller(phex.xml.impl.runtime.UnmarshallingContext context, int startState) {
            this(context);
            state = startState;
        }

        public java.lang.Object owner() {
            return phex.xml.impl.XJBSWDownloadFileImpl.this;
        }

        public void enterElement(java.lang.String ___uri, java.lang.String ___local, java.lang.String ___qname, org.xml.sax.Attributes __atts)
            throws org.xml.sax.SAXException
        {
            int attIdx;
            outer:
            while (true) {
                switch (state) {
                    case  24 :
                        if (("modified-time" == ___local)&&("" == ___uri)) {
                            context.pushAttributes(__atts, true);
                            state = 25;
                            return ;
                        }
                        state = 27;
                        continue outer;
                    case  15 :
                        if (("scope-strategy" == ___local)&&("" == ___uri)) {
                            context.pushAttributes(__atts, true);
                            state = 16;
                            return ;
                        }
                        state = 18;
                        continue outer;
                    case  27 :
                        if (("candidate" == ___local)&&("" == ___uri)) {
                            context.pushAttributes(__atts, false);
                            state = 28;
                            return ;
                        }
                        state = 30;
                        continue outer;
                    case  18 :
                        if (("status" == ___local)&&("" == ___uri)) {
                            context.pushAttributes(__atts, true);
                            state = 19;
                            return ;
                        }
                        state = 21;
                        continue outer;
                    case  21 :
                        if (("created-time" == ___local)&&("" == ___uri)) {
                            context.pushAttributes(__atts, true);
                            state = 22;
                            return ;
                        }
                        state = 24;
                        continue outer;
                    case  30 :
                        if (("candidate" == ___local)&&("" == ___uri)) {
                            context.pushAttributes(__atts, false);
                            state = 28;
                            return ;
                        }
                        if (("finished-scopes" == ___local)&&("" == ___uri)) {
                            context.pushAttributes(__atts, false);
                            state = 31;
                            return ;
                        }
                        state = 33;
                        continue outer;
                    case  12 :
                        if (("file-urn" == ___local)&&("" == ___uri)) {
                            context.pushAttributes(__atts, true);
                            state = 13;
                            return ;
                        }
                        state = 15;
                        continue outer;
                    case  36 :
                        if (("segment" == ___local)&&("" == ___uri)) {
                            context.pushAttributes(__atts, false);
                            state = 34;
                            return ;
                        }
                        revertToParentFromEnterElement(___uri, ___local, ___qname, __atts);
                        return ;
                    case  34 :
                        if (("incompleteFileName" == ___local)&&("" == ___uri)) {
                            _getSegmentList().add(((phex.xml.impl.XJBSWDownloadSegmentImpl) spawnChildFromEnterElement((phex.xml.impl.XJBSWDownloadSegmentImpl.class), 35, ___uri, ___local, ___qname, __atts)));
                            return ;
                        }
                        if (("segmentNumber" == ___local)&&("" == ___uri)) {
                            _getSegmentList().add(((phex.xml.impl.XJBSWDownloadSegmentImpl) spawnChildFromEnterElement((phex.xml.impl.XJBSWDownloadSegmentImpl.class), 35, ___uri, ___local, ___qname, __atts)));
                            return ;
                        }
                        if (("startPosition" == ___local)&&("" == ___uri)) {
                            _getSegmentList().add(((phex.xml.impl.XJBSWDownloadSegmentImpl) spawnChildFromEnterElement((phex.xml.impl.XJBSWDownloadSegmentImpl.class), 35, ___uri, ___local, ___qname, __atts)));
                            return ;
                        }
                        if (("length" == ___local)&&("" == ___uri)) {
                            _getSegmentList().add(((phex.xml.impl.XJBSWDownloadSegmentImpl) spawnChildFromEnterElement((phex.xml.impl.XJBSWDownloadSegmentImpl.class), 35, ___uri, ___local, ___qname, __atts)));
                            return ;
                        }
                        if (("transferred" == ___local)&&("" == ___uri)) {
                            _getSegmentList().add(((phex.xml.impl.XJBSWDownloadSegmentImpl) spawnChildFromEnterElement((phex.xml.impl.XJBSWDownloadSegmentImpl.class), 35, ___uri, ___local, ___qname, __atts)));
                            return ;
                        }
                        _getSegmentList().add(((phex.xml.impl.XJBSWDownloadSegmentImpl) spawnChildFromEnterElement((phex.xml.impl.XJBSWDownloadSegmentImpl.class), 35, ___uri, ___local, ___qname, __atts)));
                        return ;
                    case  0 :
                        if (("localfilename" == ___local)&&("" == ___uri)) {
                            context.pushAttributes(__atts, true);
                            state = 1;
                            return ;
                        }
                        state = 3;
                        continue outer;
                    case  6 :
                        if (("searchterm" == ___local)&&("" == ___uri)) {
                            context.pushAttributes(__atts, true);
                            state = 7;
                            return ;
                        }
                        state = 9;
                        continue outer;
                    case  9 :
                        if (("filesize" == ___local)&&("" == ___uri)) {
                            context.pushAttributes(__atts, true);
                            state = 10;
                            return ;
                        }
                        state = 12;
                        continue outer;
                    case  3 :
                        if (("incomplete-file-name" == ___local)&&("" == ___uri)) {
                            context.pushAttributes(__atts, true);
                            state = 4;
                            return ;
                        }
                        state = 6;
                        continue outer;
                    case  31 :
                        attIdx = context.getAttribute("", "end");
                        if (attIdx >= 0) {
                            context.consumeAttribute(attIdx);
                            context.getCurrentHandler().enterElement(___uri, ___local, ___qname, __atts);
                            return ;
                        }
                        attIdx = context.getAttribute("", "start");
                        if (attIdx >= 0) {
                            context.consumeAttribute(attIdx);
                            context.getCurrentHandler().enterElement(___uri, ___local, ___qname, __atts);
                            return ;
                        }
                        _getFinishedScopesList().add(((phex.xml.impl.XJBDownloadScopeImpl) spawnChildFromEnterElement((phex.xml.impl.XJBDownloadScopeImpl.class), 32, ___uri, ___local, ___qname, __atts)));
                        return ;
                    case  33 :
                        if (("finished-scopes" == ___local)&&("" == ___uri)) {
                            context.pushAttributes(__atts, false);
                            state = 31;
                            return ;
                        }
                        if (("segment" == ___local)&&("" == ___uri)) {
                            context.pushAttributes(__atts, false);
                            state = 34;
                            return ;
                        }
                        state = 36;
                        continue outer;
                    case  28 :
                        if (("guid" == ___local)&&("" == ___uri)) {
                            _getCandidateList().add(((phex.xml.impl.XJBSWDownloadCandidateImpl) spawnChildFromEnterElement((phex.xml.impl.XJBSWDownloadCandidateImpl.class), 29, ___uri, ___local, ___qname, __atts)));
                            return ;
                        }
                        if (("fileindex" == ___local)&&("" == ___uri)) {
                            _getCandidateList().add(((phex.xml.impl.XJBSWDownloadCandidateImpl) spawnChildFromEnterElement((phex.xml.impl.XJBSWDownloadCandidateImpl.class), 29, ___uri, ___local, ___qname, __atts)));
                            return ;
                        }
                        if (("last-connect" == ___local)&&("" == ___uri)) {
                            _getCandidateList().add(((phex.xml.impl.XJBSWDownloadCandidateImpl) spawnChildFromEnterElement((phex.xml.impl.XJBSWDownloadCandidateImpl.class), 29, ___uri, ___local, ___qname, __atts)));
                            return ;
                        }
                        if (("filename" == ___local)&&("" == ___uri)) {
                            _getCandidateList().add(((phex.xml.impl.XJBSWDownloadCandidateImpl) spawnChildFromEnterElement((phex.xml.impl.XJBSWDownloadCandidateImpl.class), 29, ___uri, ___local, ___qname, __atts)));
                            return ;
                        }
                        if (("download-uri" == ___local)&&("" == ___uri)) {
                            _getCandidateList().add(((phex.xml.impl.XJBSWDownloadCandidateImpl) spawnChildFromEnterElement((phex.xml.impl.XJBSWDownloadCandidateImpl.class), 29, ___uri, ___local, ___qname, __atts)));
                            return ;
                        }
                        if (("remotehost" == ___local)&&("" == ___uri)) {
                            _getCandidateList().add(((phex.xml.impl.XJBSWDownloadCandidateImpl) spawnChildFromEnterElement((phex.xml.impl.XJBSWDownloadCandidateImpl.class), 29, ___uri, ___local, ___qname, __atts)));
                            return ;
                        }
                        if (("connectionFailedRepetition" == ___local)&&("" == ___uri)) {
                            _getCandidateList().add(((phex.xml.impl.XJBSWDownloadCandidateImpl) spawnChildFromEnterElement((phex.xml.impl.XJBSWDownloadCandidateImpl.class), 29, ___uri, ___local, ___qname, __atts)));
                            return ;
                        }
                        if (("rating" == ___local)&&("" == ___uri)) {
                            _getCandidateList().add(((phex.xml.impl.XJBSWDownloadCandidateImpl) spawnChildFromEnterElement((phex.xml.impl.XJBSWDownloadCandidateImpl.class), 29, ___uri, ___local, ___qname, __atts)));
                            return ;
                        }
                        if (("vendor" == ___local)&&("" == ___uri)) {
                            _getCandidateList().add(((phex.xml.impl.XJBSWDownloadCandidateImpl) spawnChildFromEnterElement((phex.xml.impl.XJBSWDownloadCandidateImpl.class), 29, ___uri, ___local, ___qname, __atts)));
                            return ;
                        }
                        if (("isPushNeeded" == ___local)&&("" == ___uri)) {
                            _getCandidateList().add(((phex.xml.impl.XJBSWDownloadCandidateImpl) spawnChildFromEnterElement((phex.xml.impl.XJBSWDownloadCandidateImpl.class), 29, ___uri, ___local, ___qname, __atts)));
                            return ;
                        }
                        if (("isThexSupported" == ___local)&&("" == ___uri)) {
                            _getCandidateList().add(((phex.xml.impl.XJBSWDownloadCandidateImpl) spawnChildFromEnterElement((phex.xml.impl.XJBSWDownloadCandidateImpl.class), 29, ___uri, ___local, ___qname, __atts)));
                            return ;
                        }
                        if (("isChatSupported" == ___local)&&("" == ___uri)) {
                            _getCandidateList().add(((phex.xml.impl.XJBSWDownloadCandidateImpl) spawnChildFromEnterElement((phex.xml.impl.XJBSWDownloadCandidateImpl.class), 29, ___uri, ___local, ___qname, __atts)));
                            return ;
                        }
                        _getCandidateList().add(((phex.xml.impl.XJBSWDownloadCandidateImpl) spawnChildFromEnterElement((phex.xml.impl.XJBSWDownloadCandidateImpl.class), 29, ___uri, ___local, ___qname, __atts)));
                        return ;
                }
                super.enterElement(___uri, ___local, ___qname, __atts);
                break;
            }
        }

        public void leaveElement(java.lang.String ___uri, java.lang.String ___local, java.lang.String ___qname)
            throws org.xml.sax.SAXException
        {
            int attIdx;
            outer:
            while (true) {
                switch (state) {
                    case  24 :
                        state = 27;
                        continue outer;
                    case  15 :
                        state = 18;
                        continue outer;
                    case  2 :
                        if (("localfilename" == ___local)&&("" == ___uri)) {
                            context.popAttributes();
                            state = 3;
                            return ;
                        }
                        break;
                    case  27 :
                        state = 30;
                        continue outer;
                    case  18 :
                        state = 21;
                        continue outer;
                    case  21 :
                        state = 24;
                        continue outer;
                    case  5 :
                        if (("incomplete-file-name" == ___local)&&("" == ___uri)) {
                            context.popAttributes();
                            state = 6;
                            return ;
                        }
                        break;
                    case  23 :
                        if (("created-time" == ___local)&&("" == ___uri)) {
                            context.popAttributes();
                            state = 24;
                            return ;
                        }
                        break;
                    case  20 :
                        if (("status" == ___local)&&("" == ___uri)) {
                            context.popAttributes();
                            state = 21;
                            return ;
                        }
                        break;
                    case  29 :
                        if (("candidate" == ___local)&&("" == ___uri)) {
                            context.popAttributes();
                            state = 30;
                            return ;
                        }
                        break;
                    case  30 :
                        state = 33;
                        continue outer;
                    case  12 :
                        state = 15;
                        continue outer;
                    case  32 :
                        if (("finished-scopes" == ___local)&&("" == ___uri)) {
                            context.popAttributes();
                            state = 33;
                            return ;
                        }
                        break;
                    case  36 :
                        revertToParentFromLeaveElement(___uri, ___local, ___qname);
                        return ;
                    case  34 :
                        _getSegmentList().add(((phex.xml.impl.XJBSWDownloadSegmentImpl) spawnChildFromLeaveElement((phex.xml.impl.XJBSWDownloadSegmentImpl.class), 35, ___uri, ___local, ___qname)));
                        return ;
                    case  26 :
                        if (("modified-time" == ___local)&&("" == ___uri)) {
                            context.popAttributes();
                            state = 27;
                            return ;
                        }
                        break;
                    case  0 :
                        state = 3;
                        continue outer;
                    case  6 :
                        state = 9;
                        continue outer;
                    case  8 :
                        if (("searchterm" == ___local)&&("" == ___uri)) {
                            context.popAttributes();
                            state = 9;
                            return ;
                        }
                        break;
                    case  14 :
                        if (("file-urn" == ___local)&&("" == ___uri)) {
                            context.popAttributes();
                            state = 15;
                            return ;
                        }
                        break;
                    case  9 :
                        state = 12;
                        continue outer;
                    case  3 :
                        state = 6;
                        continue outer;
                    case  17 :
                        if (("scope-strategy" == ___local)&&("" == ___uri)) {
                            context.popAttributes();
                            state = 18;
                            return ;
                        }
                        break;
                    case  31 :
                        attIdx = context.getAttribute("", "end");
                        if (attIdx >= 0) {
                            context.consumeAttribute(attIdx);
                            context.getCurrentHandler().leaveElement(___uri, ___local, ___qname);
                            return ;
                        }
                        attIdx = context.getAttribute("", "start");
                        if (attIdx >= 0) {
                            context.consumeAttribute(attIdx);
                            context.getCurrentHandler().leaveElement(___uri, ___local, ___qname);
                            return ;
                        }
                        _getFinishedScopesList().add(((phex.xml.impl.XJBDownloadScopeImpl) spawnChildFromLeaveElement((phex.xml.impl.XJBDownloadScopeImpl.class), 32, ___uri, ___local, ___qname)));
                        return ;
                    case  33 :
                        state = 36;
                        continue outer;
                    case  35 :
                        if (("segment" == ___local)&&("" == ___uri)) {
                            context.popAttributes();
                            state = 36;
                            return ;
                        }
                        break;
                    case  28 :
                        _getCandidateList().add(((phex.xml.impl.XJBSWDownloadCandidateImpl) spawnChildFromLeaveElement((phex.xml.impl.XJBSWDownloadCandidateImpl.class), 29, ___uri, ___local, ___qname)));
                        return ;
                    case  11 :
                        if (("filesize" == ___local)&&("" == ___uri)) {
                            context.popAttributes();
                            state = 12;
                            return ;
                        }
                        break;
                }
                super.leaveElement(___uri, ___local, ___qname);
                break;
            }
        }

        public void enterAttribute(java.lang.String ___uri, java.lang.String ___local, java.lang.String ___qname)
            throws org.xml.sax.SAXException
        {
            int attIdx;
            outer:
            while (true) {
                switch (state) {
                    case  24 :
                        state = 27;
                        continue outer;
                    case  15 :
                        state = 18;
                        continue outer;
                    case  27 :
                        state = 30;
                        continue outer;
                    case  18 :
                        state = 21;
                        continue outer;
                    case  21 :
                        state = 24;
                        continue outer;
                    case  30 :
                        state = 33;
                        continue outer;
                    case  12 :
                        state = 15;
                        continue outer;
                    case  36 :
                        revertToParentFromEnterAttribute(___uri, ___local, ___qname);
                        return ;
                    case  34 :
                        _getSegmentList().add(((phex.xml.impl.XJBSWDownloadSegmentImpl) spawnChildFromEnterAttribute((phex.xml.impl.XJBSWDownloadSegmentImpl.class), 35, ___uri, ___local, ___qname)));
                        return ;
                    case  0 :
                        state = 3;
                        continue outer;
                    case  6 :
                        state = 9;
                        continue outer;
                    case  9 :
                        state = 12;
                        continue outer;
                    case  3 :
                        state = 6;
                        continue outer;
                    case  31 :
                        if (("end" == ___local)&&("" == ___uri)) {
                            _getFinishedScopesList().add(((phex.xml.impl.XJBDownloadScopeImpl) spawnChildFromEnterAttribute((phex.xml.impl.XJBDownloadScopeImpl.class), 32, ___uri, ___local, ___qname)));
                            return ;
                        }
                        if (("start" == ___local)&&("" == ___uri)) {
                            _getFinishedScopesList().add(((phex.xml.impl.XJBDownloadScopeImpl) spawnChildFromEnterAttribute((phex.xml.impl.XJBDownloadScopeImpl.class), 32, ___uri, ___local, ___qname)));
                            return ;
                        }
                        _getFinishedScopesList().add(((phex.xml.impl.XJBDownloadScopeImpl) spawnChildFromEnterAttribute((phex.xml.impl.XJBDownloadScopeImpl.class), 32, ___uri, ___local, ___qname)));
                        return ;
                    case  33 :
                        state = 36;
                        continue outer;
                    case  28 :
                        _getCandidateList().add(((phex.xml.impl.XJBSWDownloadCandidateImpl) spawnChildFromEnterAttribute((phex.xml.impl.XJBSWDownloadCandidateImpl.class), 29, ___uri, ___local, ___qname)));
                        return ;
                }
                super.enterAttribute(___uri, ___local, ___qname);
                break;
            }
        }

        public void leaveAttribute(java.lang.String ___uri, java.lang.String ___local, java.lang.String ___qname)
            throws org.xml.sax.SAXException
        {
            int attIdx;
            outer:
            while (true) {
                switch (state) {
                    case  24 :
                        state = 27;
                        continue outer;
                    case  15 :
                        state = 18;
                        continue outer;
                    case  27 :
                        state = 30;
                        continue outer;
                    case  18 :
                        state = 21;
                        continue outer;
                    case  21 :
                        state = 24;
                        continue outer;
                    case  30 :
                        state = 33;
                        continue outer;
                    case  12 :
                        state = 15;
                        continue outer;
                    case  36 :
                        revertToParentFromLeaveAttribute(___uri, ___local, ___qname);
                        return ;
                    case  34 :
                        _getSegmentList().add(((phex.xml.impl.XJBSWDownloadSegmentImpl) spawnChildFromLeaveAttribute((phex.xml.impl.XJBSWDownloadSegmentImpl.class), 35, ___uri, ___local, ___qname)));
                        return ;
                    case  0 :
                        state = 3;
                        continue outer;
                    case  6 :
                        state = 9;
                        continue outer;
                    case  9 :
                        state = 12;
                        continue outer;
                    case  3 :
                        state = 6;
                        continue outer;
                    case  31 :
                        attIdx = context.getAttribute("", "end");
                        if (attIdx >= 0) {
                            context.consumeAttribute(attIdx);
                            context.getCurrentHandler().leaveAttribute(___uri, ___local, ___qname);
                            return ;
                        }
                        attIdx = context.getAttribute("", "start");
                        if (attIdx >= 0) {
                            context.consumeAttribute(attIdx);
                            context.getCurrentHandler().leaveAttribute(___uri, ___local, ___qname);
                            return ;
                        }
                        _getFinishedScopesList().add(((phex.xml.impl.XJBDownloadScopeImpl) spawnChildFromLeaveAttribute((phex.xml.impl.XJBDownloadScopeImpl.class), 32, ___uri, ___local, ___qname)));
                        return ;
                    case  33 :
                        state = 36;
                        continue outer;
                    case  28 :
                        _getCandidateList().add(((phex.xml.impl.XJBSWDownloadCandidateImpl) spawnChildFromLeaveAttribute((phex.xml.impl.XJBSWDownloadCandidateImpl.class), 29, ___uri, ___local, ___qname)));
                        return ;
                }
                super.leaveAttribute(___uri, ___local, ___qname);
                break;
            }
        }

        public void handleText(final java.lang.String value)
            throws org.xml.sax.SAXException
        {
            int attIdx;
            outer:
            while (true) {
                try {
                    switch (state) {
                        case  24 :
                            state = 27;
                            continue outer;
                        case  15 :
                            state = 18;
                            continue outer;
                        case  27 :
                            state = 30;
                            continue outer;
                        case  18 :
                            state = 21;
                            continue outer;
                        case  25 :
                            state = 26;
                            eatText1(value);
                            return ;
                        case  21 :
                            state = 24;
                            continue outer;
                        case  1 :
                            state = 2;
                            eatText2(value);
                            return ;
                        case  10 :
                            state = 11;
                            eatText3(value);
                            return ;
                        case  4 :
                            state = 5;
                            eatText4(value);
                            return ;
                        case  30 :
                            state = 33;
                            continue outer;
                        case  12 :
                            state = 15;
                            continue outer;
                        case  36 :
                            revertToParentFromText(value);
                            return ;
                        case  34 :
                            _getSegmentList().add(((phex.xml.impl.XJBSWDownloadSegmentImpl) spawnChildFromText((phex.xml.impl.XJBSWDownloadSegmentImpl.class), 35, value)));
                            return ;
                        case  19 :
                            state = 20;
                            eatText5(value);
                            return ;
                        case  0 :
                            state = 3;
                            continue outer;
                        case  6 :
                            state = 9;
                            continue outer;
                        case  16 :
                            state = 17;
                            eatText6(value);
                            return ;
                        case  9 :
                            state = 12;
                            continue outer;
                        case  3 :
                            state = 6;
                            continue outer;
                        case  7 :
                            state = 8;
                            eatText7(value);
                            return ;
                        case  22 :
                            state = 23;
                            eatText8(value);
                            return ;
                        case  31 :
                            attIdx = context.getAttribute("", "end");
                            if (attIdx >= 0) {
                                context.consumeAttribute(attIdx);
                                context.getCurrentHandler().text(value);
                                return ;
                            }
                            attIdx = context.getAttribute("", "start");
                            if (attIdx >= 0) {
                                context.consumeAttribute(attIdx);
                                context.getCurrentHandler().text(value);
                                return ;
                            }
                            _getFinishedScopesList().add(((phex.xml.impl.XJBDownloadScopeImpl) spawnChildFromText((phex.xml.impl.XJBDownloadScopeImpl.class), 32, value)));
                            return ;
                        case  13 :
                            state = 14;
                            eatText9(value);
                            return ;
                        case  33 :
                            state = 36;
                            continue outer;
                        case  28 :
                            _getCandidateList().add(((phex.xml.impl.XJBSWDownloadCandidateImpl) spawnChildFromText((phex.xml.impl.XJBSWDownloadCandidateImpl.class), 29, value)));
                            return ;
                    }
                } catch (java.lang.RuntimeException e) {
                    handleUnexpectedTextException(value, e);
                }
                break;
            }
        }

        private void eatText1(final java.lang.String value)
            throws org.xml.sax.SAXException
        {
            try {
                _ModifiedTime = javax.xml.bind.DatatypeConverter.parseLong(com.sun.xml.bind.WhiteSpaceProcessor.collapse(value));
                has_ModifiedTime = true;
            } catch (java.lang.Exception e) {
                handleParseConversionException(e);
            }
        }

        private void eatText2(final java.lang.String value)
            throws org.xml.sax.SAXException
        {
            try {
                _LocalFileName = value;
            } catch (java.lang.Exception e) {
                handleParseConversionException(e);
            }
        }

        private void eatText3(final java.lang.String value)
            throws org.xml.sax.SAXException
        {
            try {
                _FileSize = javax.xml.bind.DatatypeConverter.parseLong(com.sun.xml.bind.WhiteSpaceProcessor.collapse(value));
                has_FileSize = true;
            } catch (java.lang.Exception e) {
                handleParseConversionException(e);
            }
        }

        private void eatText4(final java.lang.String value)
            throws org.xml.sax.SAXException
        {
            try {
                _IncompleteFileName = value;
            } catch (java.lang.Exception e) {
                handleParseConversionException(e);
            }
        }

        private void eatText5(final java.lang.String value)
            throws org.xml.sax.SAXException
        {
            try {
                _Status = javax.xml.bind.DatatypeConverter.parseShort(com.sun.xml.bind.WhiteSpaceProcessor.collapse(value));
                has_Status = true;
            } catch (java.lang.Exception e) {
                handleParseConversionException(e);
            }
        }

        private void eatText6(final java.lang.String value)
            throws org.xml.sax.SAXException
        {
            try {
                _ScopeSelectionStrategy = value;
            } catch (java.lang.Exception e) {
                handleParseConversionException(e);
            }
        }

        private void eatText7(final java.lang.String value)
            throws org.xml.sax.SAXException
        {
            try {
                _SearchTerm = value;
            } catch (java.lang.Exception e) {
                handleParseConversionException(e);
            }
        }

        private void eatText8(final java.lang.String value)
            throws org.xml.sax.SAXException
        {
            try {
                _CreatedTime = javax.xml.bind.DatatypeConverter.parseLong(com.sun.xml.bind.WhiteSpaceProcessor.collapse(value));
                has_CreatedTime = true;
            } catch (java.lang.Exception e) {
                handleParseConversionException(e);
            }
        }

        private void eatText9(final java.lang.String value)
            throws org.xml.sax.SAXException
        {
            try {
                _FileURN = value;
            } catch (java.lang.Exception e) {
                handleParseConversionException(e);
            }
        }

    }

}
