Skip to content

Commit eb26a0c

Browse files
committed
Attempts to fix, probably fruitless
1 parent 79ca89b commit eb26a0c

4 files changed

Lines changed: 72 additions & 27 deletions

File tree

README.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# Thinking in Java 4e (Refreshed) Code Examples
2-
for Java 8
2+
----------
3+
(for Java 8)
34

45
### *Initial draft; not working yet*
56

@@ -17,4 +18,7 @@ for Java 8
1718
1. Start a command prompt in the directory where you installed the examples. If your installation is successful, you should be able to type **ant build** and build everything. **ant run** will build AND run the examples. You will initially get some error messages instructing you to install specified packages, but eventually you should get through the whole build process successfully.
1819

1920

20-
Report bugs in the examples or in the book [here](https://github.com/BruceEckel/TIJ4-Refreshed-Examples/issues).
21+
Report bugs in the examples or in the book [here](https://github.com/BruceEckel/TIJ4-Refreshed-Examples/issues).
22+
23+
----------
24+
**Copyright ©2015 Bruce Eckel, MindView LLC. All Rights Reserved. You may use the examples for teaching, as long as they are not republished without permission.**

annotations/InterfaceExtractorProcessor.java

Lines changed: 37 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,26 +4,35 @@
44
// annotations.InterfaceExtractorProcessorFactory
55
// Multiplier.java -s ../annotations}
66
package annotations;
7-
import com.sun.mirror.apt.*;
8-
import com.sun.mirror.declaration.*;
7+
//import com.sun.mirror.apt.*;
8+
import javax.annotation.processing.*;
9+
//import com.sun.mirror.declaration.*;
10+
import javax.lang.model.element.*;
11+
import javax.lang.model.SourceVersion;
912
import java.io.*;
1013
import java.util.*;
1114

1215
public class InterfaceExtractorProcessor
13-
implements AnnotationProcessor {
14-
private final AnnotationProcessorEnvironment env;
15-
private ArrayList<MethodDeclaration> interfaceMethods =
16-
new ArrayList<MethodDeclaration>();
16+
implements Processor {
17+
private final ProcessingEnvironment env;
18+
private ArrayList<ExecutableElement> interfaceMethods =
19+
new ArrayList<ExecutableElement>();
20+
public void init(ProcessingEnvironment processingEnv) {
21+
22+
}
23+
public SourceVersion getSupportedSourceVersion() {
24+
return SourceVersion.RELEASE_7;
25+
}
1726
public InterfaceExtractorProcessor(
18-
AnnotationProcessorEnvironment env) { this.env = env; }
19-
public void process() {
20-
for(TypeDeclaration typeDecl :
21-
env.getSpecifiedTypeDeclarations()) {
27+
ProcessingEnvironment env) { this.env = env; }
28+
public boolean process(Set<? extends TypeElement> annotations,
29+
RoundEnvironment roundEnv) {
30+
for(TypeElement typeElem : env.getElementUtils()) {
2231
ExtractInterface annot =
23-
typeDecl.getAnnotation(ExtractInterface.class);
32+
typeElem.getAnnotation(ExtractInterface.class);
2433
if(annot == null)
2534
break;
26-
for(MethodDeclaration m : typeDecl.getMethods())
35+
for(ExecutableElement m : typeElem.getMethods())
2736
if(m.getModifiers().contains(Modifier.PUBLIC) &&
2837
!(m.getModifiers().contains(Modifier.STATIC)))
2938
interfaceMethods.add(m);
@@ -32,17 +41,17 @@ public void process() {
3241
PrintWriter writer =
3342
env.getFiler().createSourceFile(annot.value());
3443
writer.println("package " +
35-
typeDecl.getPackage().getQualifiedName() +";");
44+
typeElem.getPackage().getQualifiedName() +";");
3645
writer.println("public interface " +
3746
annot.value() + " {");
38-
for(MethodDeclaration m : interfaceMethods) {
47+
for(ExecutableElement m : interfaceMethods) {
3948
writer.print(" public ");
4049
writer.print(m.getReturnType() + " ");
4150
writer.print(m.getSimpleName() + " (");
4251
int i = 0;
43-
for(ParameterDeclaration parm :
52+
for(VariableElement parm :
4453
m.getParameters()) {
45-
writer.print(parm.getType() + " " +
54+
writer.print(parm.getKind() + " " +
4655
parm.getSimpleName());
4756
if(++i < m.getParameters().size())
4857
writer.print(", ");
@@ -57,4 +66,16 @@ public void process() {
5766
}
5867
}
5968
}
69+
public Set<String> getSupportedAnnotationTypes() {
70+
return
71+
Collections.singleton("annotations.ExtractInterface");
72+
}
73+
public Set<String> getSupportedOptions() {
74+
return Collections.emptySet();
75+
}
76+
public Iterable<? extends Completion> getCompletions(
77+
Element element, AnnotationMirror annotation,
78+
ExecutableElement member, String userText) {
79+
return Collections.emptyList();
80+
}
6081
} ///:~
Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,42 @@
11
//: annotations/InterfaceExtractorProcessorFactory.java
22
// APT-based annotation processing.
33
package annotations;
4-
import com.sun.mirror.apt.*;
5-
import com.sun.mirror.declaration.*;
4+
//import com.sun.mirror.apt.*;
5+
import javax.annotation.processing.*;
6+
//import com.sun.mirror.declaration.*;
7+
import javax.lang.model.element.*;
8+
import javax.lang.model.SourceVersion;
69
import java.util.*;
710

811
public class InterfaceExtractorProcessorFactory
9-
implements AnnotationProcessorFactory {
10-
public AnnotationProcessor getProcessorFor(
11-
Set<AnnotationTypeDeclaration> atds,
12-
AnnotationProcessorEnvironment env) {
12+
// implements AnnotationProcessorFactory {
13+
implements Processor {
14+
public void init(ProcessingEnvironment processingEnv) {
15+
16+
}
17+
public SourceVersion getSupportedSourceVersion() {
18+
return SourceVersion.RELEASE_7;
19+
}
20+
// public AnnotationProcessor getProcessorFor(
21+
public Processor getProcessorFor(
22+
Set<TypeElement> atds,
23+
ProcessingEnvironment env) {
1324
return new InterfaceExtractorProcessor(env);
1425
}
15-
public Collection<String> supportedAnnotationTypes() {
26+
public boolean process(Set<? extends TypeElement> annotations,
27+
RoundEnvironment roundEnv) {
28+
return new InterfaceExtractorProcessor(env);
29+
}
30+
public Set<String> getSupportedAnnotationTypes() {
1631
return
1732
Collections.singleton("annotations.ExtractInterface");
1833
}
19-
public Collection<String> supportedOptions() {
34+
public Set<String> getSupportedOptions() {
2035
return Collections.emptySet();
2136
}
37+
public Iterable<? extends Completion> getCompletions(
38+
Element element, AnnotationMirror annotation,
39+
ExecutableElement member, String userText) {
40+
return Collections.emptyList();
41+
}
2242
} ///:~

annotations/database/TableCreationProcessorFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
import com.sun.mirror.apt.*;
88
import com.sun.mirror.declaration.*;
99
import com.sun.mirror.util.*;
10-
import java.util.*;
1110
import static com.sun.mirror.util.DeclarationVisitors.*;
11+
import java.util.*;
1212

1313
public class TableCreationProcessorFactory
1414
implements AnnotationProcessorFactory {

0 commit comments

Comments
 (0)