public GeneOrthologyEntry(String line) { String[] a = line.split("\\s"); geneName = a[0]; s288cCoords = parseCoordsString(a[1]); sigmaCoords = parseCoordsString(a[2]); try { identity = Double.parseDouble(a[3]); } catch (NumberFormatException e) { identity = null; } flags = new HashSet<Flag>(); orfCoords = null; if (a.length > 4) { String[] fa = a[4].split(","); for (int i = 0; i < fa.length; i++) { try { if (fa[i].length() > 0) { flags.add(Flag.valueOf(fa[i])); } else { flags.add(Flag.UNKNOWN); } } catch (IllegalArgumentException e) { System.err.println(String.format("Unknown FLAG: \"%s\"", fa[i])); flags.add(Flag.UNKNOWN); } } if (a.length > 5) { orfCoords = parseCoordsString(a[5]); } } }
/** Converts the header's flags into a String */ public String printFlags() { StringBuilder sb = new StringBuilder(); for (int i = 0; i < 16; i++) { if (validFlag(i) && getFlag(i)) { sb.append(Flag.valueOf(i).getName()); // sb.append(Flags.string(i)); sb.append(" "); } } return sb.toString(); }