@Override protected final void logLoadError(Token ident) { logLoadErrorImpl( ident.getLineNo(), ident.getColumnNo(), MSG_CLASS_INFO, JavadocTagInfo.THROWS.getText(), ident.getText()); }
/** * Checks a set of tags for matching throws. * * @param tags the tags to check * @param throwsList the throws to check * @param reportExpectedTags whether we should report if do not find expected tag */ private void checkThrowsTags( List<JavadocTag> tags, List<ExceptionInfo> throwsList, boolean reportExpectedTags) { // Loop over the tags, checking to see they exist in the throws. // The foundThrows used for performance only final Set<String> foundThrows = Sets.newHashSet(); final ListIterator<JavadocTag> tagIt = tags.listIterator(); while (tagIt.hasNext()) { final JavadocTag tag = tagIt.next(); if (!tag.isThrowsTag()) { continue; } tagIt.remove(); // Loop looking for matching throw final String documentedEx = tag.getFirstArg(); final Token token = new Token(tag.getFirstArg(), tag.getLineNo(), tag.getColumnNo()); final AbstractClassInfo documentedCI = createClassInfo(token, getCurrentClassName()); final boolean found = foundThrows.contains(documentedEx) || isInThrows(throwsList, documentedCI, foundThrows); // Handle extra JavadocTag. if (!found) { boolean reqd = true; if (allowUndeclaredRTE) { reqd = !isUnchecked(documentedCI.getClazz()); } if (reqd && validateThrows) { log( tag.getLineNo(), tag.getColumnNo(), MSG_UNUSED_TAG, JavadocTagInfo.THROWS.getText(), tag.getFirstArg()); } } } // Now dump out all throws without tags :- unless // the user has chosen to suppress these problems if (!allowMissingThrowsTags && reportExpectedTags) { for (ExceptionInfo ei : throwsList) { if (!ei.isFound()) { final Token fi = ei.getName(); log( fi.getLineNo(), fi.getColumnNo(), MSG_EXCPECTED_TAG, JavadocTagInfo.THROWS.getText(), fi.getText()); } } } }
public void testNextToken() { String script = " bean = * com;\n bean2 = * blablabla();\n \n \n\r \r\n"; ScriptTokenizer tokenizer = new ScriptTokenizer(new ScriptTokenizerInputBuffer(new StringReader(script))); Token token = tokenizer.nextToken(); assertEquals(1, token.getLineNo()); assertEquals(4, token.length()); assertEquals(3, token.getFrom()); assertEquals('b', token.getBuffer()[token.getFrom()]); assertEquals('e', token.getBuffer()[token.getFrom() + 1]); assertEquals('a', token.getBuffer()[token.getFrom() + 2]); assertEquals('n', token.getBuffer()[token.getFrom() + 3]); assertEquals(4, token.getCharNoBefore()); // assertEquals(, ); token = tokenizer.nextToken(); assertEquals(1, token.getLineNo()); assertEquals(1, token.length()); assertEquals(8, token.getFrom()); assertEquals('=', token.getBuffer()[token.getFrom()]); token = tokenizer.nextToken(); assertEquals(1, token.getLineNo()); assertEquals(1, token.length()); assertEquals(10, token.getFrom()); assertEquals('*', token.getBuffer()[token.getFrom()]); token = tokenizer.nextToken(); assertEquals(1, token.getLineNo()); assertEquals(3, token.length()); assertEquals(12, token.getFrom()); assertEquals('c', token.getBuffer()[token.getFrom()]); assertEquals('o', token.getBuffer()[token.getFrom() + 1]); assertEquals('m', token.getBuffer()[token.getFrom() + 2]); token = tokenizer.nextToken(); assertEquals(1, token.getLineNo()); assertEquals(1, token.length()); assertEquals(15, token.getFrom()); assertEquals(';', token.getBuffer()[token.getFrom()]); // line 2 token = tokenizer.nextToken(); assertEquals(2, token.getLineNo()); assertEquals(5, token.length()); assertEquals(21, token.getFrom()); assertEquals('b', token.getBuffer()[token.getFrom()]); assertEquals('e', token.getBuffer()[token.getFrom() + 1]); assertEquals('a', token.getBuffer()[token.getFrom() + 2]); assertEquals('n', token.getBuffer()[token.getFrom() + 3]); assertEquals('2', token.getBuffer()[token.getFrom() + 4]); token = tokenizer.nextToken(); assertEquals(2, token.getLineNo()); assertEquals(1, token.length()); assertEquals(27, token.getFrom()); assertEquals('=', token.getBuffer()[token.getFrom()]); token = tokenizer.nextToken(); assertEquals(2, token.getLineNo()); assertEquals(1, token.length()); assertEquals(29, token.getFrom()); assertEquals('*', token.getBuffer()[token.getFrom()]); token = tokenizer.nextToken(); assertEquals(2, token.getLineNo()); assertEquals(9, token.length()); assertEquals(31, token.getFrom()); assertEquals('b', token.getBuffer()[token.getFrom()]); assertEquals('l', token.getBuffer()[token.getFrom() + 1]); assertEquals('a', token.getBuffer()[token.getFrom() + 2]); assertEquals('b', token.getBuffer()[token.getFrom() + 3]); assertEquals('l', token.getBuffer()[token.getFrom() + 4]); assertEquals('a', token.getBuffer()[token.getFrom() + 5]); assertEquals('b', token.getBuffer()[token.getFrom() + 6]); assertEquals('l', token.getBuffer()[token.getFrom() + 7]); assertEquals('a', token.getBuffer()[token.getFrom() + 8]); token = tokenizer.nextToken(); assertEquals(2, token.getLineNo()); assertEquals(1, token.length()); assertEquals(40, token.getFrom()); assertEquals('(', token.getBuffer()[token.getFrom()]); token = tokenizer.nextToken(); assertEquals(2, token.getLineNo()); assertEquals(1, token.length()); assertEquals(41, token.getFrom()); assertEquals(')', token.getBuffer()[token.getFrom()]); token = tokenizer.nextToken(); assertEquals(2, token.getLineNo()); assertEquals(1, token.length()); assertEquals(42, token.getFrom()); assertEquals(';', token.getBuffer()[token.getFrom()]); token = tokenizer.nextToken(); assertNull(token); }