OSDN Git Service

imported from subversion repository
[xerial/xerial-core.git] / src / test / java / org / xerial / silk / FastaTest.java
1 /*--------------------------------------------------------------------------\r
2  *  Copyright 2009 Taro L. Saito\r
3  *\r
4  *  Licensed under the Apache License, Version 2.0 (the "License");\r
5  *  you may not use this file except in compliance with the License.\r
6  *  You may obtain a copy of the License at\r
7  *\r
8  *     http://www.apache.org/licenses/LICENSE-2.0\r
9  *\r
10  *  Unless required by applicable law or agreed to in writing, software\r
11  *  distributed under the License is distributed on an "AS IS" BASIS,\r
12  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
13  *  See the License for the specific language governing permissions and\r
14  *  limitations under the License.\r
15  *--------------------------------------------------------------------------*/\r
16 //--------------------------------------\r
17 // XerialJ\r
18 //\r
19 // FastaTest.java\r
20 // Since: Jul 3, 2009 7:11:49 PM\r
21 //\r
22 // $URL$\r
23 // $Author$\r
24 //--------------------------------------\r
25 package org.xerial.silk;\r
26 \r
27 import java.lang.annotation.ElementType;\r
28 import java.lang.annotation.Retention;\r
29 import java.lang.annotation.RetentionPolicy;\r
30 import java.lang.annotation.Target;\r
31 import java.util.List;\r
32 \r
33 import org.junit.After;\r
34 import org.junit.Before;\r
35 import org.junit.Test;\r
36 import org.xerial.lens.Lens;\r
37 import org.xerial.lens.ObjectLens;\r
38 import org.xerial.util.FileResource;\r
39 import org.xerial.util.log.Logger;\r
40 \r
41 @Retention(RetentionPolicy.RUNTIME)\r
42 @Target( { ElementType.TYPE, ElementType.METHOD })\r
43 @interface EqJoin {\r
44 \r
45     public String[] left();\r
46 \r
47     public String[] right();\r
48 \r
49     public Class< ? > leftClass();\r
50 \r
51 }\r
52 \r
53 public class FastaTest\r
54 {\r
55     private static Logger _logger = Logger.getLogger(FastaTest.class);\r
56 \r
57     @Before\r
58     public void setUp() throws Exception\r
59     {}\r
60 \r
61     @After\r
62     public void tearDown() throws Exception\r
63     {}\r
64 \r
65     public static class FastaQuery\r
66     {\r
67         FastaItem prev = null;\r
68 \r
69         public void addGroup_Name(String group, FastaItem f)\r
70         {\r
71             _logger.info(String.format("group: %s, fasta: %s", group, ObjectLens.toJSON(f)));\r
72         }\r
73 \r
74         public void addName(FastaItem f)\r
75         {\r
76             _logger.debug(ObjectLens.toJSON(f));\r
77 \r
78             if (prev != null && prev.getSequence().contains("TTAGGG"))\r
79             {\r
80                 // output both records\r
81             }\r
82 \r
83             if (f.getSequence().contains("TTAGGG"))\r
84             {\r
85 \r
86             }\r
87 \r
88             prev = f;\r
89 \r
90         }\r
91 \r
92         public void flush()\r
93         {\r
94 \r
95         }\r
96 \r
97     }\r
98 \r
99     public static class S1\r
100     {\r
101         public int id;\r
102         public String name;\r
103 \r
104         public int getRid()\r
105         {\r
106             return id - 1;\r
107         }\r
108 \r
109     }\r
110 \r
111     public static class S2\r
112     {\r
113         public int rid;\r
114         public String info;\r
115     }\r
116 \r
117     @EqJoin(left = "rid", leftClass = S1.class, right = "rid")\r
118     public static class S3\r
119     {\r
120         public S1 s1;\r
121 \r
122         public List<S2> s2;\r
123 \r
124     }\r
125 \r
126     public static class FastaItem\r
127     {\r
128         public String value;\r
129         public String link;\r
130 \r
131         private StringBuilder sequence = new StringBuilder();\r
132 \r
133         public void appendSequence(String s)\r
134         {\r
135             sequence.append(s);\r
136         }\r
137 \r
138         public String getSequence()\r
139         {\r
140             return sequence.toString();\r
141         }\r
142 \r
143     }\r
144 \r
145     @Test\r
146     public void testname() throws Exception\r
147     {\r
148         FastaQuery result = Lens.loadSilk(FastaQuery.class, FileResource.open(FastaTest.class, "fasta.silk"));\r
149         result.flush();\r
150 \r
151         //ObjectStream<S3> sin = Lens.joinSilk(S3.class, "input1", "input2");\r
152 \r
153         //ObjectStream<S4> out = Lens.joinSilk(S4.class, sin, "input3");\r
154 \r
155     }\r
156 \r
157 }\r