annotate src/main/java/alice/test/codesegment/local/wordcount/WordCount.java @ 345:8f71c3e6f11d

Change directory structure Maven standard
author sugi
date Wed, 16 Apr 2014 18:26:07 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
345
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
1 package alice.test.codesegment.local.wordcount;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
2
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
3 import alice.codesegment.CodeSegment;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
4 import alice.datasegment.CommandType;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
5 import alice.datasegment.Receiver;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
6
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
7 public class WordCount extends CodeSegment{
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
8
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
9 private Receiver info1 = ids.create(CommandType.TAKE);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
10
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
11 public WordCount(){
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
12 info1.setKey("array");
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
13 }
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
14
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
15 @Override
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
16 public void run() {
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
17 Range r = info1.asClass(Range.class);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
18 int word_flag = 0;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
19 int word_num = 0;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
20 int line_num = 0;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
21 int i = 0;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
22 for (; i < r.array.length; i++) {
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
23 if (r.array[i] == 0x20) { // 空白
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
24 word_flag = 1;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
25 } else if (r.array[i] == 0x0A) { // 改行
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
26 line_num += 1;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
27 word_flag = 1;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
28 } else {
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
29 word_num += word_flag;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
30 word_flag = 0;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
31 }
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
32 }
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
33 word_num += word_flag;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
34 if (r.nextchar!='\0'){ // null means last block
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
35 if ((r.array[i-1] == 0x0A||r.array[i-1] == 0x20) &&
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
36 (r.nextchar == 0x0A||r.nextchar == 0x20)){
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
37 word_num--;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
38 }
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
39 }
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
40
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
41 Result result = new Result(line_num,word_num);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
42 ods.put("result", result);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
43 recycle();//new WordCount();
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
44
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
45 }
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
46
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
47 }