+ /**
+ * If we have been processing a gene, and it is not being continued, then make
+ * a sequence feature for the gene just ended
+ *
+ * @param gene
+ * @return true if a feature is created, else false
+ */
+ protected boolean processGeneEnd(String gene)
+ {
+ boolean created = false;
+ /*
+ * If we were processing a gene and now have either another, or none, create
+ * a sequence feature for that gene
+ */
+ if (this.currentGene != null && !this.currentGene.equals(gene))
+ {
+ createFeature(GENE, currentGene, geneStart);
+ created = true;
+ }
+
+ return created;
+ }
+
+ /**
+ * Makes an expanded descriptive name for Domain if possible e.g.
+ * "Intron1 (Adh Coding)". Currently incorporates the current gene name (if
+ * any) and the Coding/Noncoding property value (if given).
+ *
+ * @param domain
+ * @param property
+ * @return
+ */
+ protected String makeVerboseDomainName(String domain, String property)
+ {
+ String verboseDomain = domain;
+ if (domain != null)
+ {
+ String coding = "";
+ if ("Exon".equalsIgnoreCase(property)
+ || "Coding".equalsIgnoreCase(property))
+ {
+ coding = " Coding";
+ }
+ else if ("Intron".equalsIgnoreCase(property)
+ || "Noncoding".equalsIgnoreCase(property))
+ {
+ coding = " Noncoding";
+ }
+ verboseDomain = domain
+ + (currentGene == null ? "" : " (" + currentGene + coding
+ + ")");
+ }
+ return verboseDomain;