Skip to content

Commit 413d46b

Browse files
committedJan 24, 2019
Merge branch '__rultor'
2 parents 8dfeee4 + b2e8fd5 commit 413d46b

File tree

5 files changed

+115
-0
lines changed

5 files changed

+115
-0
lines changed
 
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
/*
2+
* Copyright (c) 2011-2019, Qulice.com
3+
* All rights reserved.
4+
*
5+
* Redistribution and use in source and binary forms, with or without
6+
* modification, are permitted provided that the following conditions
7+
* are met: 1) Redistributions of source code must retain the above
8+
* copyright notice, this list of conditions and the following
9+
* disclaimer. 2) Redistributions in binary form must reproduce the above
10+
* copyright notice, this list of conditions and the following
11+
* disclaimer in the documentation and/or other materials provided
12+
* with the distribution. 3) Neither the name of the Qulice.com nor
13+
* the names of its contributors may be used to endorse or promote
14+
* products derived from this software without specific prior written
15+
* permission.
16+
*
17+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18+
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT
19+
* NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
20+
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
21+
* THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
22+
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23+
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
24+
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25+
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
26+
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27+
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
28+
* OF THE POSSIBILITY OF SUCH DAMAGE.
29+
*/
30+
package com.qulice.checkstyle;
31+
32+
import com.puppycrawl.tools.checkstyle.api.AbstractCheck;
33+
34+
/**
35+
* Checks if inner classes are properly accessed using their qualified name
36+
* with the outer class.
37+
*
38+
* @since 0.18
39+
* @todo #738:30min Static inner classes should be qualified with outer class
40+
* Implement QualifyInnerClassCheck so it follows what defined in
41+
* QualifyInnerClassCheck test and add this check to checks.xml and CheckTest.
42+
*/
43+
public final class QualifyInnerClassCheck extends AbstractCheck {
44+
@Override
45+
public int[] getDefaultTokens() {
46+
throw new UnsupportedOperationException(
47+
"getDefaultTokens() not implemented"
48+
);
49+
}
50+
51+
@Override
52+
public int[] getAcceptableTokens() {
53+
throw new UnsupportedOperationException(
54+
"getAcceptableTokens() not implemented"
55+
);
56+
}
57+
58+
@Override
59+
public int[] getRequiredTokens() {
60+
throw new UnsupportedOperationException(
61+
"getRequiredTokens() not implemented"
62+
);
63+
}
64+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
/*
2+
* This is not a real Java class. It won't be compiled ever. It is used
3+
* only as a text resource in integration.ChecksIT.
4+
*/
5+
public final class Invalid {
6+
7+
public void method(int num) {
8+
new Bar(num);
9+
}
10+
11+
private static final class Bar {
12+
13+
private final int member;
14+
15+
Bar(int num) {
16+
this.member = num;
17+
}
18+
}
19+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
/*
2+
* This is not a real Java class. It won't be compiled ever. It is used
3+
* only as a text resource in integration.ChecksIT.
4+
*/
5+
public final class Valid {
6+
7+
public void method(int num) {
8+
new Valid.Bar(num);
9+
}
10+
11+
private static final class Bar {
12+
private final int num;
13+
14+
Bar(int num) {
15+
this.num = num;
16+
}
17+
}
18+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?xml version="1.0"?>
2+
<!DOCTYPE module PUBLIC
3+
"-//Puppy Crawl//DTD Check Configuration 1.2//EN"
4+
"http://www.puppycrawl.com/dtds/configuration_1_2.dtd">
5+
<!--
6+
* This is not a real Checkstyle config. It is used
7+
* only as a text resource in integration.ChecksIT.
8+
-->
9+
<module name="Checker">
10+
<module name="TreeWalker">
11+
<module name="com.qulice.checkstyle.QualifyInnerClassCheck"/>
12+
</module>
13+
</module>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
8:Static inner class should be qualified with outer class

1 commit comments

Comments
 (1)

0pdd commented on Jan 24, 2019

@0pdd
Collaborator

Puzzle 738-5bee823d discovered in qulice-checkstyle/src/main/java/com/qulice/checkstyle/QualifyInnerClassCheck.java and submitted as #1008. Please, remember that the puzzle was not necessarily added in this particular commit. Maybe it was added earlier, but we discovered it only now.

Please sign in to comment.