+ return 0;
+ }
+
+ public void appendFeatures(final StringBuilder sb, int residuePos,
+ List<SequenceFeature> features, FeatureRendererModel fr)
+ {
+ appendFeaturesLengthLimit(sb, residuePos, features, fr, 0);
+ }
+
+ /**
+ * Appends text for mapped features (e.g. CDS feature for peptide or vice versa)
+ * Returns number of features left if maxlength limit is (or would have been)
+ * reached
+ *
+ * @param sb
+ * @param residuePos
+ * @param mf
+ * @param fr
+ * @param maxlength
+ */
+ public int appendFeaturesLengthLimit(StringBuilder sb, int residuePos,
+ MappedFeatures mf, FeatureRendererModel fr, int maxlength)
+ {
+ for (int i = 0; i < mf.features.size(); i++)
+ {
+ SequenceFeature feature = mf.features.get(i);
+ if (appendFeature(sb, residuePos, fr, feature, mf, maxlength))
+ {
+ return mf.features.size() - i;
+ }
+ }
+ return 0;
+ }
+
+ public void appendFeatures(StringBuilder sb, int residuePos,
+ MappedFeatures mf, FeatureRendererModel fr)
+ {
+ appendFeaturesLengthLimit(sb, residuePos, mf, fr, 0);