X Tutup
Skip to content

Commit a7d25e0

Browse files
committed
iluwatar#107 Composite example JavaDoc
1 parent 98abe5b commit a7d25e0

File tree

6 files changed

+188
-159
lines changed

6 files changed

+188
-159
lines changed
Lines changed: 29 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,29 @@
1-
package com.iluwatar.composite;
2-
3-
/**
4-
*
5-
* With Composite we can treat tree hierarchies of objects with uniform
6-
* interface (LetterComposite). In this example we have sentences composed of
7-
* words composed of letters.
8-
*
9-
*/
10-
public class App {
11-
12-
public static void main(String[] args) {
13-
System.out.println("Message from the orcs: ");
14-
15-
LetterComposite orcMessage = new Messenger().messageFromOrcs();
16-
orcMessage.print();
17-
18-
System.out.println("\n");
19-
20-
System.out.println("Message from the elves: ");
21-
22-
LetterComposite elfMessage = new Messenger().messageFromElves();
23-
elfMessage.print();
24-
}
25-
}
1+
package com.iluwatar.composite;
2+
3+
/**
4+
*
5+
* With Composite we can treat tree hierarchies of objects with uniform
6+
* interface ({@link LetterComposite}). In this example we have sentences composed of
7+
* words composed of letters.
8+
*
9+
*/
10+
public class App {
11+
12+
/**
13+
* Program entry point
14+
* @param args command line args
15+
*/
16+
public static void main(String[] args) {
17+
System.out.println("Message from the orcs: ");
18+
19+
LetterComposite orcMessage = new Messenger().messageFromOrcs();
20+
orcMessage.print();
21+
22+
System.out.println("\n");
23+
24+
System.out.println("Message from the elves: ");
25+
26+
LetterComposite elfMessage = new Messenger().messageFromElves();
27+
elfMessage.print();
28+
}
29+
}
Lines changed: 26 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,26 @@
1-
package com.iluwatar.composite;
2-
3-
public class Letter extends LetterComposite {
4-
5-
private char c;
6-
7-
public Letter(char c) {
8-
this.c = c;
9-
}
10-
11-
@Override
12-
protected void printThisBefore() {
13-
System.out.print(c);
14-
}
15-
16-
@Override
17-
protected void printThisAfter() {
18-
// nop
19-
}
20-
21-
}
1+
package com.iluwatar.composite;
2+
3+
/**
4+
*
5+
* Letter
6+
*
7+
*/
8+
public class Letter extends LetterComposite {
9+
10+
private char c;
11+
12+
public Letter(char c) {
13+
this.c = c;
14+
}
15+
16+
@Override
17+
protected void printThisBefore() {
18+
System.out.print(c);
19+
}
20+
21+
@Override
22+
protected void printThisAfter() {
23+
// nop
24+
}
25+
26+
}
Lines changed: 58 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,58 @@
1-
package com.iluwatar.composite;
2-
3-
import java.util.ArrayList;
4-
import java.util.Arrays;
5-
import java.util.List;
6-
7-
public class Messenger {
8-
9-
LetterComposite messageFromOrcs() {
10-
11-
List<Word> words = new ArrayList<Word>();
12-
13-
words.add(new Word(Arrays.asList(new Letter('W'), new Letter('h'),
14-
new Letter('e'), new Letter('r'), new Letter('e'))));
15-
words.add(new Word(Arrays.asList(new Letter('t'), new Letter('h'),
16-
new Letter('e'), new Letter('r'), new Letter('e'))));
17-
words.add(new Word(Arrays.asList(new Letter('i'), new Letter('s'))));
18-
words.add(new Word(Arrays.asList(new Letter('a'))));
19-
words.add(new Word(Arrays.asList(new Letter('w'), new Letter('h'),
20-
new Letter('i'), new Letter('p'))));
21-
words.add(new Word(Arrays.asList(new Letter('t'), new Letter('h'),
22-
new Letter('e'), new Letter('r'), new Letter('e'))));
23-
words.add(new Word(Arrays.asList(new Letter('i'), new Letter('s'))));
24-
words.add(new Word(Arrays.asList(new Letter('a'))));
25-
words.add(new Word(Arrays.asList(new Letter('w'), new Letter('a'),
26-
new Letter('y'))));
27-
28-
return new Sentence(words);
29-
30-
}
31-
32-
LetterComposite messageFromElves() {
33-
34-
List<Word> words = new ArrayList<Word>();
35-
36-
words.add(new Word(Arrays.asList(new Letter('M'), new Letter('u'),
37-
new Letter('c'), new Letter('h'))));
38-
words.add(new Word(Arrays.asList(new Letter('w'), new Letter('i'),
39-
new Letter('n'), new Letter('d'))));
40-
words.add(new Word(Arrays.asList(new Letter('p'), new Letter('o'),
41-
new Letter('u'), new Letter('r'), new Letter('s'))));
42-
words.add(new Word(Arrays.asList(new Letter('f'), new Letter('r'),
43-
new Letter('o'), new Letter('m'))));
44-
words.add(new Word(Arrays.asList(new Letter('y'), new Letter('o'),
45-
new Letter('u'), new Letter('r'))));
46-
words.add(new Word(Arrays.asList(new Letter('m'), new Letter('o'),
47-
new Letter('u'), new Letter('t'), new Letter('h'))));
48-
49-
return new Sentence(words);
50-
51-
}
52-
53-
}
1+
package com.iluwatar.composite;
2+
3+
import java.util.ArrayList;
4+
import java.util.Arrays;
5+
import java.util.List;
6+
7+
/**
8+
*
9+
* Messenger
10+
*
11+
*/
12+
public class Messenger {
13+
14+
LetterComposite messageFromOrcs() {
15+
16+
List<Word> words = new ArrayList<Word>();
17+
18+
words.add(new Word(Arrays.asList(new Letter('W'), new Letter('h'),
19+
new Letter('e'), new Letter('r'), new Letter('e'))));
20+
words.add(new Word(Arrays.asList(new Letter('t'), new Letter('h'),
21+
new Letter('e'), new Letter('r'), new Letter('e'))));
22+
words.add(new Word(Arrays.asList(new Letter('i'), new Letter('s'))));
23+
words.add(new Word(Arrays.asList(new Letter('a'))));
24+
words.add(new Word(Arrays.asList(new Letter('w'), new Letter('h'),
25+
new Letter('i'), new Letter('p'))));
26+
words.add(new Word(Arrays.asList(new Letter('t'), new Letter('h'),
27+
new Letter('e'), new Letter('r'), new Letter('e'))));
28+
words.add(new Word(Arrays.asList(new Letter('i'), new Letter('s'))));
29+
words.add(new Word(Arrays.asList(new Letter('a'))));
30+
words.add(new Word(Arrays.asList(new Letter('w'), new Letter('a'),
31+
new Letter('y'))));
32+
33+
return new Sentence(words);
34+
35+
}
36+
37+
LetterComposite messageFromElves() {
38+
39+
List<Word> words = new ArrayList<Word>();
40+
41+
words.add(new Word(Arrays.asList(new Letter('M'), new Letter('u'),
42+
new Letter('c'), new Letter('h'))));
43+
words.add(new Word(Arrays.asList(new Letter('w'), new Letter('i'),
44+
new Letter('n'), new Letter('d'))));
45+
words.add(new Word(Arrays.asList(new Letter('p'), new Letter('o'),
46+
new Letter('u'), new Letter('r'), new Letter('s'))));
47+
words.add(new Word(Arrays.asList(new Letter('f'), new Letter('r'),
48+
new Letter('o'), new Letter('m'))));
49+
words.add(new Word(Arrays.asList(new Letter('y'), new Letter('o'),
50+
new Letter('u'), new Letter('r'))));
51+
words.add(new Word(Arrays.asList(new Letter('m'), new Letter('o'),
52+
new Letter('u'), new Letter('t'), new Letter('h'))));
53+
54+
return new Sentence(words);
55+
56+
}
57+
58+
}
Lines changed: 28 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,28 @@
1-
package com.iluwatar.composite;
2-
3-
import java.util.List;
4-
5-
public class Sentence extends LetterComposite {
6-
7-
public Sentence(List<Word> words) {
8-
for (Word w : words) {
9-
this.add(w);
10-
}
11-
}
12-
13-
@Override
14-
protected void printThisBefore() {
15-
// nop
16-
}
17-
18-
@Override
19-
protected void printThisAfter() {
20-
System.out.print(".");
21-
}
22-
23-
}
1+
package com.iluwatar.composite;
2+
3+
import java.util.List;
4+
5+
/**
6+
*
7+
* Sentence
8+
*
9+
*/
10+
public class Sentence extends LetterComposite {
11+
12+
public Sentence(List<Word> words) {
13+
for (Word w : words) {
14+
this.add(w);
15+
}
16+
}
17+
18+
@Override
19+
protected void printThisBefore() {
20+
// nop
21+
}
22+
23+
@Override
24+
protected void printThisAfter() {
25+
System.out.print(".");
26+
}
27+
28+
}
Lines changed: 28 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,28 @@
1-
package com.iluwatar.composite;
2-
3-
import java.util.List;
4-
5-
public class Word extends LetterComposite {
6-
7-
public Word(List<Letter> letters) {
8-
for (Letter l : letters) {
9-
this.add(l);
10-
}
11-
}
12-
13-
@Override
14-
protected void printThisBefore() {
15-
System.out.print(" ");
16-
}
17-
18-
@Override
19-
protected void printThisAfter() {
20-
// nop
21-
}
22-
23-
}
1+
package com.iluwatar.composite;
2+
3+
import java.util.List;
4+
5+
/**
6+
*
7+
* Word
8+
*
9+
*/
10+
public class Word extends LetterComposite {
11+
12+
public Word(List<Letter> letters) {
13+
for (Letter l : letters) {
14+
this.add(l);
15+
}
16+
}
17+
18+
@Override
19+
protected void printThisBefore() {
20+
System.out.print(" ");
21+
}
22+
23+
@Override
24+
protected void printThisAfter() {
25+
// nop
26+
}
27+
28+
}
Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,19 @@
1-
package com.iluwatar.composite;
2-
3-
import org.junit.Test;
4-
5-
import com.iluwatar.composite.App;
6-
7-
public class AppTest {
8-
9-
@Test
10-
public void test() {
11-
String[] args = {};
12-
App.main(args);
13-
}
14-
}
1+
package com.iluwatar.composite;
2+
3+
import org.junit.Test;
4+
5+
import com.iluwatar.composite.App;
6+
7+
/**
8+
*
9+
* Application test
10+
*
11+
*/
12+
public class AppTest {
13+
14+
@Test
15+
public void test() {
16+
String[] args = {};
17+
App.main(args);
18+
}
19+
}

0 commit comments

Comments
 (0)
X Tutup