DNA-sequences / include / sequentie.h
sequentie.h
Raw
#ifndef SEQUENTIE_H  // voorkomt dat dit bestand meerdere keren
#define SEQUENTIE_H  // ge-include wordt

#include "variant.h"
#include "deletie.h"
#include "insertie.h"
#include "inversie.h"
#include "delinsertie.h"
#include "substitutie.h"

#include <string>
#include <iostream>
#include <vector>

class Sequentie {
    public:
        // Default constructor
        Sequentie();

        // Initialisatie constructor Sequentie
        Sequentie(Sequentie const &sequentie);

        // Initialisatie constructor string
        Sequentie(std::string const &sequentie);

        // Geeft de lengte van de string data terug
        int length() const;

        // Geeft char terug op positie pos
        char char_at(int const pos) const;

        // Retourneert de sequentie in een string
        std::string to_string() const;

        // Concateneert de huidige Sequentie met andere Sequentie other
        Sequentie concat(Sequentie const &other) const;

        // Geeft een nieuwe Sequentieuentie met de symbolen [start, end)
        Sequentie slice(int const start, int const eind) const;

        // Checkt of de twee Sequentieuenties hetzelfde zijn
        bool equal(Sequentie const &sequentie) const;

        // Voert de varianten in de meegegeven vector uit op 
        // de sequentie en retourneerd het resultaat
        Sequentie apply(std::vector<Variant const*> varianten) const;

        // Druk de sequentie af
        void drukAf() const;

    private:
        // Data van Sequentieuentie
        std::string data;
};

#endif