Skip to content

Commit 7265b6a

Browse files
committed
Updated to match book
Partway through update
1 parent da9b88f commit 7265b6a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+193
-170
lines changed

access/SingleImport.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@
33

44
public class SingleImport {
55
public static void main(String[] args) {
6-
ArrayList list = new java.util.ArrayList();
6+
ArrayList list = new ArrayList();
77
}
8-
} ///:~
8+
} ///:~
Lines changed: 18 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,30 @@
11
//: annotations/InterfaceExtractorProcessor.java
22
// APT-based annotation processing.
3+
// {CompileTimeError} Not working in Java 8
34
// {Exec: apt -factory
45
// annotations.InterfaceExtractorProcessorFactory
56
// Multiplier.java -s ../annotations}
67
package annotations;
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;
8+
import com.sun.mirror.apt.*;
9+
import com.sun.mirror.declaration.*;
1210
import java.io.*;
1311
import java.util.*;
1412

1513
public class InterfaceExtractorProcessor
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-
}
14+
implements AnnotationProcessor {
15+
private final AnnotationProcessorEnvironment env;
16+
private ArrayList<MethodDeclaration> interfaceMethods =
17+
new ArrayList<MethodDeclaration>();
2618
public InterfaceExtractorProcessor(
27-
ProcessingEnvironment env) { this.env = env; }
28-
public boolean process(Set<? extends TypeElement> annotations,
29-
RoundEnvironment roundEnv) {
30-
for(TypeElement typeElem : env.getElementUtils()) {
19+
AnnotationProcessorEnvironment env) { this.env = env; }
20+
public void process() {
21+
for(TypeDeclaration typeDecl :
22+
env.getSpecifiedTypeDeclarations()) {
3123
ExtractInterface annot =
32-
typeElem.getAnnotation(ExtractInterface.class);
24+
typeDecl.getAnnotation(ExtractInterface.class);
3325
if(annot == null)
3426
break;
35-
for(ExecutableElement m : typeElem.getMethods())
27+
for(MethodDeclaration m : typeDecl.getMethods())
3628
if(m.getModifiers().contains(Modifier.PUBLIC) &&
3729
!(m.getModifiers().contains(Modifier.STATIC)))
3830
interfaceMethods.add(m);
@@ -41,17 +33,17 @@ public boolean process(Set<? extends TypeElement> annotations,
4133
PrintWriter writer =
4234
env.getFiler().createSourceFile(annot.value());
4335
writer.println("package " +
44-
typeElem.getPackage().getQualifiedName() +";");
36+
typeDecl.getPackage().getQualifiedName() +";");
4537
writer.println("public interface " +
4638
annot.value() + " {");
47-
for(ExecutableElement m : interfaceMethods) {
39+
for(MethodDeclaration m : interfaceMethods) {
4840
writer.print(" public ");
4941
writer.print(m.getReturnType() + " ");
5042
writer.print(m.getSimpleName() + " (");
5143
int i = 0;
52-
for(VariableElement parm :
44+
for(ParameterDeclaration parm :
5345
m.getParameters()) {
54-
writer.print(parm.getKind() + " " +
46+
writer.print(parm.getType() + " " +
5547
parm.getSimpleName());
5648
if(++i < m.getParameters().size())
5749
writer.print(", ");
@@ -66,16 +58,4 @@ public boolean process(Set<? extends TypeElement> annotations,
6658
}
6759
}
6860
}
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-
}
81-
} ///:~
61+
} ///:~
Lines changed: 10 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,23 @@
11
//: annotations/InterfaceExtractorProcessorFactory.java
22
// APT-based annotation processing.
3+
// {CompileTimeError} Not working in Java 8
34
package annotations;
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;
5+
import com.sun.mirror.apt.*;
6+
import com.sun.mirror.declaration.*;
97
import java.util.*;
108

119
public class InterfaceExtractorProcessorFactory
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) {
10+
implements AnnotationProcessorFactory {
11+
public AnnotationProcessor getProcessorFor(
12+
Set<AnnotationTypeDeclaration> atds,
13+
AnnotationProcessorEnvironment env) {
2414
return new InterfaceExtractorProcessor(env);
2515
}
26-
public boolean process(Set<? extends TypeElement> annotations,
27-
RoundEnvironment roundEnv) {
28-
return new InterfaceExtractorProcessor(env);
29-
}
30-
public Set<String> getSupportedAnnotationTypes() {
16+
public Collection<String> supportedAnnotationTypes() {
3117
return
3218
Collections.singleton("annotations.ExtractInterface");
3319
}
34-
public Set<String> getSupportedOptions() {
20+
public Collection<String> supportedOptions() {
3521
return Collections.emptySet();
3622
}
37-
public Iterable<? extends Completion> getCompletions(
38-
Element element, AnnotationMirror annotation,
39-
ExecutableElement member, String userText) {
40-
return Collections.emptyList();
41-
}
42-
} ///:~
23+
} ///:~

annotations/database/TableCreationProcessorFactory.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
//: annotations/database/TableCreationProcessorFactory.java
22
// The database example using Visitor.
3+
// {CompileTimeError} Not working in Java 8
34
// {Exec: apt -factory
45
// annotations.database.TableCreationProcessorFactory
56
// database/Member.java -s database}
67
package annotations.database;
78
import com.sun.mirror.apt.*;
89
import com.sun.mirror.declaration.*;
910
import com.sun.mirror.util.*;
10-
import static com.sun.mirror.util.DeclarationVisitors.*;
1111
import java.util.*;
12+
import static com.sun.mirror.util.DeclarationVisitors.*;
1213

1314
public class TableCreationProcessorFactory
1415
implements AnnotationProcessorFactory {
@@ -97,4 +98,4 @@ private String getConstraints(Constraints con) {
9798
}
9899
}
99100
}
100-
} ///:~
101+
} ///:~

concurrency/CaptureUncaughtException.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
//: concurrency/CaptureUncaughtException.java
2+
// {RunByHand}
23
import java.util.concurrent.*;
34

45
class ExceptionThread2 implements Runnable {
@@ -44,4 +45,4 @@ public static void main(String[] args) {
4445
run() by Thread[Thread-0,5,main]
4546
eh = MyUncaughtExceptionHandler@1fb8ee3
4647
caught java.lang.RuntimeException
47-
*///:~
48+
*///:~

concurrency/CriticalSection.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
//: concurrency/CriticalSection.java
2+
// {RunByHand} (Behavior may have changed in Java 8).
23
// Synchronizing blocks instead of entire methods. Also
34
// demonstrates protection of a non-thread-safe class
45
// with a thread-safe one.
@@ -136,4 +137,4 @@ public static void main(String[] args) {
136137
} /* Output: (Sample)
137138
pm1: Pair: x: 15, y: 15 checkCounter = 272565
138139
pm2: Pair: x: 16, y: 16 checkCounter = 3956974
139-
*///:~
140+
*///:~

concurrency/GreenhouseScheduler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ public void run() {
7777
System.out.println("Terminating");
7878
scheduler.shutdownNow();
7979
// Must start a separate task to do this job,
80-
// since the scheduler has been shut down:
80+
// since the scheduler was shut down:
8181
new Thread() {
8282
public void run() {
8383
for(DataPoint d : data)
@@ -153,4 +153,4 @@ public static void main(String[] args) {
153153
gh.repeat(gh.new ThermostatDay(), 0, 1400);
154154
gh.repeat(gh.new CollectData(), 500, 500);
155155
}
156-
} /* (Execute to see output) *///:~
156+
} /* (Execute to see output) *///:~

concurrency/NaiveExceptionHandling.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ public static void main(String[] args) {
1010
exec.execute(new ExceptionThread());
1111
} catch(RuntimeException ue) {
1212
// This statement will NOT execute!
13-
System.out.println("Exception has been handled!");
13+
System.out.println("Exception was handled!");
1414
}
1515
}
16-
} ///:~
16+
} ///:~

concurrency/ReaderWriterList.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public T get(int index) {
2727
rlock.lock();
2828
try {
2929
// Show that multiple readers
30-
// may acquire the read lock:
30+
// can acquire the read lock:
3131
if(lock.getReadLockCount() > 1)
3232
print(lock.getReadLockCount());
3333
return lockedList.get(index);
@@ -80,4 +80,4 @@ public ReaderWriterListTest(int readers, int writers) {
8080
for(int i = 0; i < writers; i++)
8181
exec.execute(new Writer());
8282
}
83-
} /* (Execute to see output) *///:~
83+
} /* (Execute to see output) *///:~

concurrency/SerialNumberChecker.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
//: concurrency/SerialNumberChecker.java
2-
// Operations that may seem safe are not,
2+
// Operations that might seem safe are not,
33
// when threads are present.
44
// {Args: 4}
55
import java.util.concurrent.*;
@@ -60,4 +60,4 @@ public static void main(String[] args) throws Exception {
6060
}
6161
} /* Output: (Sample)
6262
Duplicate: 8468656
63-
*///:~
63+
*///:~

0 commit comments

Comments
 (0)