5729 |
18 Nov 19 |
nicklas |
1 |
package net.sf.basedb.reggie.vcf; |
5729 |
18 Nov 19 |
nicklas |
2 |
|
5729 |
18 Nov 19 |
nicklas |
3 |
/** |
5729 |
18 Nov 19 |
nicklas |
Simple InfoFactory implementation that get all values as |
5729 |
18 Nov 19 |
nicklas |
strings. Flag entries are mapped to their own keys. |
5729 |
18 Nov 19 |
nicklas |
6 |
*/ |
5729 |
18 Nov 19 |
nicklas |
7 |
public class AllInfoFactory |
5729 |
18 Nov 19 |
nicklas |
8 |
implements InfoFactory |
5729 |
18 Nov 19 |
nicklas |
9 |
{ |
5729 |
18 Nov 19 |
nicklas |
10 |
public static final AllInfoFactory INSTANCE = new AllInfoFactory(); |
5729 |
18 Nov 19 |
nicklas |
11 |
|
5729 |
18 Nov 19 |
nicklas |
12 |
private AllInfoFactory() |
5729 |
18 Nov 19 |
nicklas |
13 |
{} |
5729 |
18 Nov 19 |
nicklas |
14 |
|
5729 |
18 Nov 19 |
nicklas |
15 |
@Override |
5729 |
18 Nov 19 |
nicklas |
16 |
public void addInfoHeader(String id, String data) |
5729 |
18 Nov 19 |
nicklas |
17 |
{} |
5729 |
18 Nov 19 |
nicklas |
18 |
|
5729 |
18 Nov 19 |
nicklas |
19 |
@Override |
5729 |
18 Nov 19 |
nicklas |
20 |
public InfoData getInfo(String info, SnpData snp) |
5729 |
18 Nov 19 |
nicklas |
21 |
{ |
5729 |
18 Nov 19 |
nicklas |
22 |
if (info == null) return null; |
5729 |
18 Nov 19 |
nicklas |
23 |
|
5729 |
18 Nov 19 |
nicklas |
24 |
InfoData data = new InfoData(); |
5729 |
18 Nov 19 |
nicklas |
25 |
String[] entries = info.split(";"); |
5729 |
18 Nov 19 |
nicklas |
26 |
for (String e : entries) |
5729 |
18 Nov 19 |
nicklas |
27 |
{ |
5729 |
18 Nov 19 |
nicklas |
28 |
String[] kv = e.split("=", 2); |
5729 |
18 Nov 19 |
nicklas |
29 |
data.setInfo(kv[0], kv.length == 2 ? kv[1] : kv[0]); |
5729 |
18 Nov 19 |
nicklas |
30 |
} |
5729 |
18 Nov 19 |
nicklas |
31 |
return data; |
5729 |
18 Nov 19 |
nicklas |
32 |
} |
5729 |
18 Nov 19 |
nicklas |
33 |
} |