All Downloads are FREE. Search and download functionalities are using the official Maven repository.

pl.poznan.put.structure.AnalyzedBasePair Maven / Gradle / Ivy

package pl.poznan.put.structure;

import org.immutables.value.Value;
import pl.poznan.put.notation.BPh;
import pl.poznan.put.notation.BR;
import pl.poznan.put.notation.LeontisWesthof;
import pl.poznan.put.notation.Saenger;
import pl.poznan.put.rna.InteractionType;

/** A pair of residues with metadata taken from analysis tool. */
@Value.Immutable
public abstract class AnalyzedBasePair implements ClassifiedBasePair {
  @Value.Parameter(order = 1)
  public abstract BasePair basePair();

  @Value.Default
  public InteractionType interactionType() {
    return ClassifiedBasePair.super.interactionType();
  }

  @Value.Default
  public Saenger saenger() {
    return ClassifiedBasePair.super.saenger();
  }

  @Value.Default
  public LeontisWesthof leontisWesthof() {
    return ClassifiedBasePair.super.leontisWesthof();
  }

  @Value.Default
  public BPh bph() {
    return ClassifiedBasePair.super.bph();
  }

  @Value.Default
  public BR br() {
    return ClassifiedBasePair.super.br();
  }

  @Value.Auxiliary
  @Value.Default
  public boolean isRepresented() {
    return ClassifiedBasePair.super.isRepresented();
  }

  @Override
  public final ClassifiedBasePair invert() {
    return ImmutableAnalyzedBasePair.copyOf(this)
        .withBasePair(basePair().invert())
        .withInteractionType(interactionType().invert())
        .withLeontisWesthof(leontisWesthof().invert());
  }

  /**
   * Returns the value of {@code isRepresented()}, but this naming is required by Spring.
   *
   * @return The value of isRepresented();
   */
  public final Boolean getIsRepresented() {
    return isRepresented();
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy