[prev in list] [next in list] [prev in thread] [next in thread] 

List:       woden-dev
Subject:    [jira] [Updated] (JAXME-89) Multiple "implements" clauses are not
From:       "Andreas Xenos (JIRA)" <jaxme-dev () ws ! apache ! org>
Date:       2011-05-19 17:36:48
Message-ID: 1378302147.27304.1305826608002.JavaMail.tomcat () hel ! zones ! apache ! org
[Download RAW message or body]


     [ https://issues.apache.org/jira/browse/JAXME-89?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel \
]

Andreas Xenos updated JAXME-89:
-------------------------------

    Attachment: JavaParser.java

This is the JavaParser for multiple interfaces.

> Multiple "implements" clauses are not supported
> -----------------------------------------------
> 
> Key: JAXME-89
> URL: https://issues.apache.org/jira/browse/JAXME-89
> Project: JaxMe
> Issue Type: Bug
> Components: JaxMeJS
> Affects Versions: 0.5
> Environment: Win XP, J2SE 1.5_09
> Reporter: Andreas Neumann
> Assignee: Jochen Wiedmann
> Fix For: 0.6
> 
> Attachments: JavaParser.java
> 
> 
> If you want to parse a java source file which implements more than one interface, \
> the parser recognizes them as a single interface. I.e.: public class TestClass \
> implements AnInterface { works fine, but
> public class TestClass implements AnInterface, ASecondInterface, AThirdInterface {
> fails. If you call JavaSource.getImplements() on the second example, you'll get a \
> String like "AnInterfaceASecondInterfaceAThirdInterface". The problem is in the \
> JavaParser.class in the method "parseImplementsOrExtends", where the implements \
> clause is handled like the extends clause and expecting only one interface. Replace \
> the method with something like this to make it work: private void \
> parseImplementsOrExtends(JavaSource pSource, AST pAST, int pType) { AST \
> implementsAST = findChild(pAST, pType); if (implementsAST == null) {
> 	throw new IllegalStateException("AST implements not found");
> }
> if (implementsAST.getFirstChild() != null) {
> if (pType == JavaRecognizer.IMPLEMENTS_CLAUSE) {
> for (AST child = implementsAST.getFirstChild();  child != null;  child = \
> child.getNextSibling()) { String ident = parseIdentifier(child);
> JavaQName qName = getQName(ident);
> 	    pSource.addImplements(qName);
> }
> } else {
> String ident = parseIdentifier(implementsAST);
> JavaQName qName = getQName(ident);
> 	pSource.addExtends(qName);
> }
> }
> }

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ws.apache.org
For additional commands, e-mail: dev-help@ws.apache.org


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic