package org.nextprot.api.core.utils.peff;
import org.nextprot.api.commons.constants.AnnotationCategory;
import org.nextprot.api.core.domain.Isoform;
import org.nextprot.api.core.domain.annotation.Annotation;
import java.util.EnumSet;
import java.util.Set;
/**
* A disulfide bond type modification
*
* Created by fnikitin on 05/05/15.
*/
class DisulfideBondPeffFormatter extends IsoformPTMPeffFormatter {
private static final Set<AnnotationCategory> SUPPORTED_MODELS = EnumSet.of(AnnotationCategory.DISULFIDE_BOND);
DisulfideBondPeffFormatter() {
super(SUPPORTED_MODELS, PeffKey.MOD_RES);
}
@Override
protected final String getModName(Annotation annotation) {
return "Disulfide";
}
@Override
public String asPeffValue(Isoform isoform, Annotation... annotations) {
StringBuilder sb = new StringBuilder();
for (Annotation annotation : annotations) {
if (support(annotation))
sb.append("(").append(annotation.getStartPositionForIsoform(isoform.getUniqueName())).append("|")
.append("Disulfide").append(")")
.append("(").append(annotation.getEndPositionForIsoform(isoform.getUniqueName())).append("|")
.append("Disulfide").append(")");
}
return sb.toString();
}
}