CORBA-JAVA

 view release on metacpan or  search on metacpan

javaxml/XMLInputStreamImpl.java  view on Meta::CPAN

		setInternalEntity ("quot", """);

		try {
			pushURL ();
			parseMisc ();
		} catch (IOException ee) {
			throw new org.omg.CORBA.MARSHAL (ee.toString ());
		} catch (org.xml.sax.SAXException se) {
			throw new org.omg.CORBA.MARSHAL (se.toString ());
		}
	}

	//Methods
	public void setErrorHandler(org.xml.sax.ErrorHandler handler)
	{
		errorHandler = handler;
	}

	public org.xml.sax.ErrorHandler getErrorHandler()
	{
		return errorHandler;
	}

	private void warning (String msg)
	{
		SAXParseException se = new SAXParseException (msg, null, null, line, column);
		try {
			errorHandler.warning (se);
		} catch (org.xml.sax.SAXException e) {
		}
	}

	private void error (String msg)
	{
		SAXParseException se = new SAXParseException (msg, null, null, line, column);
		try {
			errorHandler.error (se);
		} catch (org.xml.sax.SAXException e) {
		}
	}

	private void fatalError (String msg)
	{
		SAXParseException se = new SAXParseException (msg, null, null, line, column);
		try {
			errorHandler.fatalError (se);
		} catch (org.xml.sax.SAXException e) {
		}
	}

	public void close () throws IOException
	{
		reader.close ();
		cleanupVariables ();
		super.close ();
	}

	public boolean read_boolean (java.lang.String tag)
	{
		read_open_tag (tag);
		String str = read_pcdata();
		read_close_tag (tag);
		if (str.equals ("true"))
		{
			return true;
		}
		if (!str.equals ("false"))
		{
			throw new org.omg.CORBA.MARSHAL ("Bad value for 'boolean'");
		}
		return false;
	}

	public char read_char (java.lang.String tag)
	{
		read_open_tag (tag);
		String str = read_pcdata();
		read_close_tag (tag);
		if (str.length () != 1)
		{
			throw new org.omg.CORBA.MARSHAL ("Bad length for 'char'");
		}
		return str.charAt (0);
	}

	public char read_wchar (java.lang.String tag)
	{
		read_open_tag (tag);
		String str = read_pcdata();
		read_close_tag (tag);
		if (str.length () != 1)
		{
			throw new org.omg.CORBA.MARSHAL ("Bad length for 'char'");
		}
		return str.charAt (0);
	}

	public byte read_octet (java.lang.String tag)
	{
		read_open_tag (tag);
		String str = read_pcdata();
		read_close_tag (tag);
		try {
			int val = Integer.parseInt (str.trim ());
			if (val < Byte.MIN_VALUE && val > Byte.MAX_VALUE)
			{
				throw new org.omg.CORBA.MARSHAL ("Out of range for 'octet'");
			}
			return (byte)val;
		} catch (NumberFormatException ex) {
			throw new org.omg.CORBA.MARSHAL (ex.getMessage ());
		}
	}

	public short read_short (java.lang.String tag)
	{
		read_open_tag (tag);
		String str = read_pcdata();
		read_close_tag (tag);
		try {
			int val = Integer.parseInt (str.trim ());
			if (val < Short.MIN_VALUE && val > Short.MAX_VALUE)
			{
				throw new org.omg.CORBA.MARSHAL ("Out of range for 'short'");
			}
			return (short)val;
		} catch (NumberFormatException ex) {
			throw new org.omg.CORBA.MARSHAL (ex.getMessage ());
		}
	}

	public short read_ushort (java.lang.String tag)
	{
		return read_short (tag);
	}

	public int read_long (java.lang.String tag)
	{
		read_open_tag (tag);
		String str = read_pcdata();
		read_close_tag (tag);
		try {
			int val = Integer.parseInt (str.trim ());
			return val;
		} catch (NumberFormatException ex) {
			throw new org.omg.CORBA.MARSHAL (ex.getMessage ());
		}
	}

	public int read_ulong (java.lang.String tag)
	{
		return read_long (tag);
	}

	public long read_longlong (java.lang.String tag)
	{
		read_open_tag (tag);
		String str = read_pcdata();
		read_close_tag (tag);
		try {
			long val = Long.parseLong (str.trim ());
			return val;
		} catch (NumberFormatException ex) {
			throw new org.omg.CORBA.MARSHAL (ex.getMessage ());
		}
	}

	public long read_ulonglong (java.lang.String tag)
	{
		return read_longlong (tag);
	}

	public float read_float (java.lang.String tag)
	{
		read_open_tag (tag);
		String str = read_pcdata();
		read_close_tag (tag);
		try {
			float val = Float.parseFloat (str.trim ());
			return val;
		} catch (NumberFormatException ex) {
			throw new org.omg.CORBA.MARSHAL (ex.getMessage ());
		}
	}

	public double read_double (java.lang.String tag)
	{
		read_open_tag (tag);
		String str = read_pcdata();
		read_close_tag (tag);
		try {
			double val = Double.parseDouble (str.trim ());
			return val;
		} catch (NumberFormatException ex) {
			throw new org.omg.CORBA.MARSHAL (ex.getMessage ());
		}
	}

	public java.lang.String read_string (java.lang.String tag)
	{
		read_open_tag (tag);
		String str = read_pcdata();
		read_close_tag (tag);
		return str;
	}

	public java.lang.String read_wstring (java.lang.String tag)
	{
		read_open_tag (tag);
		String str = read_pcdata();
		read_close_tag (tag);
		return str;
	}

	public java.math.BigDecimal read_fixed (java.lang.String tag)
	{
		read_open_tag (tag);
		String str = read_pcdata();
		read_close_tag (tag);
		try {
			return new java.math.BigDecimal (str.trim ());
		} catch (NumberFormatException ex) {
			throw new org.omg.CORBA.MARSHAL (ex.getMessage ());
		}
	}

	public org.omg.CORBA.Object read_Object (java.lang.String tag)
	{
		throw new org.omg.CORBA.NO_IMPLEMENT ();
	}

	public org.omg.CORBA.TypeCode read_TypeCode (java.lang.String tag)
	{
		throw new org.omg.CORBA.NO_IMPLEMENT ();
	}

	public org.omg.CORBA.Any read_any (java.lang.String tag)
	{
		throw new org.omg.CORBA.NO_IMPLEMENT ();
	}


    /**
     * Parse an element, with its tags.
     * <pre>
     * [39] element ::= EmptyElementTag | STag content ETag
     * [40] STag ::= '&lt;' Name (S Attribute)* S? '&gt;'
     * [44] EmptyElementTag ::= '&lt;' Name (S Attribute)* S? '/&gt;'
     * </pre>
     * <p> (The '&lt;' has already been read.)
     * <p>NOTE: this method actually chains onto parseContent (), if necessary,
     * and parseContent () will take care of calling parseETag ().
     */
    public void read_open_tag (java.lang.String tag)
    {
        String  gi;
        char    c;

        emptyElement = false;

        try {
            while (true) {
                require ('<', "open_tag");
                // Read the element type name.
                gi = readNmtoken (true);

                // Read the attributes, if any.
                // After this loop, "c" is the closing delimiter.
                boolean white = tryWhitespace ();
                c = readCh ();
                while (c != '/' && c != '>') {
                    unread (c);
                    if (!white)
                        error ("need whitespace between attributes");
                    parseAttribute (gi);
                    white = tryWhitespace ();
                    c = readCh ();
                }

                // Figure out if this is a start tag
                // or an empty element, and dispatch an
                // event accordingly.
                switch (c) {
                case '>':
                    if (! gi.equals(tag)) {
                        currentElement = gi;
                        parseContent ();
                    }
                    break;
                case '/':
                    require ('>', "empty element tag");
                    if (gi.equals(tag))
                        emptyElement = true;
                    break;
                }
                if (gi.equals(tag))
                    break;
            }
        } catch (org.xml.sax.SAXException se) {
            throw new org.omg.CORBA.MARSHAL (se.toString ());
        } catch (IOException e) {
            throw new org.omg.CORBA.MARSHAL (e.toString ());
        }
        return;
    }

    /**
     * Parse an end tag.
     * <pre>
     * [42] ETag ::= '</' Name S? '>'
     * </pre>
     */
    public void read_close_tag (java.lang.String tag)
    {
        if (emptyElement) {
            return;
        }

        try {
            require (tag, "element end tag");
            skipWhitespace ();
            require ('>', "name in end tag");
        } catch (org.xml.sax.SAXException se) {
            throw new org.omg.CORBA.MARSHAL (se.toString ());
        } catch (IOException e) {
            throw new org.omg.CORBA.MARSHAL (e.toString ());
        }
        return;
    }

    /**
     * Parse the content of an element.
     * <pre>
     * [43] content ::= (element | CharData | Reference
     *		| CDSect | PI | Comment)*
     * [67] Reference ::= EntityRef | CharRef
     * </pre>
     */
    public java.lang.String read_pcdata ()
    {
        if (emptyElement) {
            return "";
        }

        StringBuffer data = new StringBuffer();
        boolean ETag = false;
        char c;

        try {
            while (!ETag) {

                parseCharData();

                // Handle delimiters
                c = readCh ();
                switch (c) {
                case '&': 			// Found "&"

                    c = readCh ();
                    if (c == '#') {
                        parseCharRef ();
                    } else {
                        unread (c);
                        parseEntityRef (true);
                    }
                    break;

                case '<': 			// Found "<"
                    data.append (dataBuffer, 0, dataBufferPos);
                    dataBufferPos = 0;
                    c = readCh ();
                    switch (c) {
                    case '!': 			// Found "<!"
                        c = readCh ();
                        switch (c) {
                        case '-': 		// Found "<!-"
                            require ('-', "start of comment");
                            parseComment ();
                            break;
                        case '[': 		// Found "<!["
                            require ("CDATA[", "CDATA section");
                            parseCDSect ();
                            data.append (dataBuffer, 0, dataBufferPos);
                            dataBufferPos = 0;
                            break;
                        default:
                            error ("expected comment or CDATA section", c, null);
                            break;
                        }
                        break;

                    case '?': 		// Found "<?"
                        parsePI ();
                        break;

                    case '/': 		// Found "</"
                        ETag = true;
                        break;



( run in 0.650 second using v1.01-cache-2.11-cpan-d8267643d1d )