Interface MatrixMap<E>

All Superinterfaces:
java.lang.Iterable<E>
All Known Implementing Classes:
MatrixMap.AbstractMatrixMap, MatrixMap.MatrixMapElastic, MatrixMap.MatrixMapFixed, MatrixMap.SubMatrix

public interface MatrixMap<E>
extends java.lang.Iterable<E>
Permet de stocker des informations dans une matrix a N dimension Si lors de l'ajout on indique une dimension qui n'existe pas encore ou un element dans une dimension qui n'existe pas, la matrice ajoute automatiquement les elements manquant pour que l'ajout se passe bien.

MatrixMap permet de stocker les elements avec des cles de n'importe quel type. Les coordonnees utilisant ces objets sont converti en coordonnees numeriques qui est la seul chose que sait gere Matrix. Ces coordonnees numeriques sont alors convertis en coordonnees lineaire pour le stockage dans Vector. On decoupe ainsi les problemes et on minimise le stockage et certain traitement sur les données puisqu'au final toutes les données sont dans une simple liste.

Pour créer une nouvelle matrice, il faut utiliser une des méthodes de MatrixMap.Factory

Since:
2.2.1
Author:
Benjamin Poussin - poussin@codelutin.com
  • Nested Class Summary

    Nested Classes 
    Modifier and Type Interface Description
    static class  MatrixMap.AbstractMatrixMap<E>
    Classe abstraite permettant de facilement implanter les matrice fixe, elastique et submatrix
    static class  MatrixMap.Factory
    Classe permettant la creation de matrice
    static interface  MatrixMap.MapFunction<E>
    Permet de faire un traitement sur des valeurs et d'en retourner des nouvelles.
    static class  MatrixMap.Matrix<E>
    Objet matrice qui ne permet que le stockage avec des positions int dans une matrice a autant de dimension que l'on souhaite.
    static class  MatrixMap.MatrixHelper
    Classe contenant des méthodes statiques pour aider a la manipulation des matrices
    static class  MatrixMap.MatrixIterator<E>  
    static class  MatrixMap.MatrixMapElastic<E>
    Implantation particuliere de matrice, qui lorsqu'on lui passe des dimension qui n'existe pas, elle les ajoutes dans les semantiques.
    static class  MatrixMap.MatrixMapFixed<E>
    Implantation de MatrixMap dont les dimensions sont fixees a la creation Les dimensions ne change plus par la suite
    static interface  MatrixMap.MatrixMapIterator<E>
    Iterateur de matrice
    static class  MatrixMap.MatrixMapIteratorImpl<E>  
    static class  MatrixMap.SemanticList<T>
    Collection particuliere utilisee pour la stockage des semantiques.
    static class  MatrixMap.SubMatrix<E>
    Pour l'instant une sous matrice a obligatoirement le meme nombre de dimension que la matrice qu'elle contient.
    static class  MatrixMap.Vector<E>
    Permet de stocker des données à une position lineaire et de la redemander.
  • Method Summary

    Modifier and Type Method Description
    MatrixMap<E> copy()
    Copy la matrice pour pouvoir la modifier sans perdre les donnees initiales.
    boolean equals​(MatrixMap mat)
    Verifie que deux matrices sont completement equals (dimension, semantique, nom, valeur, ...)
    boolean equalsValues​(MatrixMap<E> mat)
    Verifie si les matrices sont egales en ne regardant que les valeurs et pas les semantiques
    MatrixMap<E> extend​(java.lang.Object... sems)
    Permet de retourner une nouvelle matrice ayant les semantiques passées en parametre.
    int[] getDim()  
    int getDim​(int d)  
    int getDimCount()  
    java.lang.String getDimensionName​(int dim)  
    java.lang.String[] getDimensionNames()  
    java.lang.String getName()  
    MatrixMap.SemanticList getSemantic​(int dim)  
    MatrixMap.SemanticList[] getSemantics()  
    MatrixMap<E> getSubMatrix​(int dim, java.lang.Object... elem)
    Permet de prendre une sous matrice dans la matrice courante.
    MatrixMap<E> getSubMatrix​(int dim, java.lang.Object start, int nb)
    Permet de prendre une sous matrice dans la matrice courante.
    MatrixMap<E> getSubMatrix​(java.lang.Object[]... elems)
    Permet de prendre une sous matrice dans la matrice courante.
    E getValue​(java.lang.Object... coordinates)
    Retourne l'element a une certaine position en utilisant les semantiques
    E getValueIndex​(int... coordinates)
    Retourne l'element a une certaine position en utilisant des indices ex: 2,3,1
    boolean isValidCoordinates​(java.lang.Object[] semantics)
    Indique si les semantiques passées en argument sont valable pour la matrice courante
    MatrixMap.MatrixMapIterator<E> iterator()  
    MatrixMap<E> map​(MatrixMap.MapFunction<E> f)
    Applique sur chaque element de la matrice la fonction f
    MatrixMap paste​(MatrixMap<E> mat)
    Copie une matrice dans la matrice actuelle.
    MatrixMap<E> reduce()
    Reduit la matrice de sorte que toutes les dimensions qui n'ont qu'un élement soit supprimée.
    MatrixMap<E> reduce​(int minNbDim)
    Reduit la matrice de sorte que toutes les dimensions qui n'ont qu'un élement soit supprimée.
    MatrixMap<E> reduceDims​(int... dims)
    Reduit le matrice seulement sur les dimensions passées en argument.
    void setDimensionName​(int dim, java.lang.String name)  
    void setDimensionNames​(java.lang.String[] names)  
    void setName​(java.lang.String name)  
    void setSemantic​(int dim, java.util.List sem)  
    void setValue​(E value, java.lang.Object... coordinates)
    Modifie l'element a une certaine position en utilisant les semantiques
    void setValueIndex​(E value, int... coordinates)
    Modifie l'element a une certaine position en utilisant des indices ex: 2,3,1
    java.lang.String toStringGeneric()
    Representation string de la matrice quelque soit le nombre de dimension

    Methods inherited from interface java.lang.Iterable

    forEach, spliterator
  • Method Details

    • iterator

      Specified by:
      iterator in interface java.lang.Iterable<E>
    • copy

      MatrixMap<E> copy()
      Copy la matrice pour pouvoir la modifier sans perdre les donnees initiales.
      Returns:
      new matrix
    • getSemantics

      MatrixMap.SemanticList[] getSemantics()
    • getSemantic

      MatrixMap.SemanticList getSemantic​(int dim)
    • setSemantic

      void setSemantic​(int dim, java.util.List sem)
    • setName

      void setName​(java.lang.String name)
    • getName

      java.lang.String getName()
    • getDimensionNames

      java.lang.String[] getDimensionNames()
    • setDimensionNames

      void setDimensionNames​(java.lang.String[] names)
    • setDimensionName

      void setDimensionName​(int dim, java.lang.String name)
    • getDimensionName

      java.lang.String getDimensionName​(int dim)
    • getDimCount

      int getDimCount()
    • getDim

      int[] getDim()
    • getDim

      int getDim​(int d)
    • map

      Applique sur chaque element de la matrice la fonction f
      Parameters:
      f - la fonction a appliquer
      Returns:
      Retourne la matrice elle meme. Les modifications sont faites directement dessus
    • getValueIndex

      E getValueIndex​(int... coordinates)
      Retourne l'element a une certaine position en utilisant des indices ex: 2,3,1
      Parameters:
      coordinates - FIXME
      Returns:
      FIXME
    • setValueIndex

      void setValueIndex​(E value, int... coordinates)
      Modifie l'element a une certaine position en utilisant des indices ex: 2,3,1
      Parameters:
      value - la nouvelle valeur
      coordinates - FIXME
    • getValue

      E getValue​(java.lang.Object... coordinates)
      Retourne l'element a une certaine position en utilisant les semantiques
      Parameters:
      coordinates - FIXME
      Returns:
      FIXME
    • setValue

      void setValue​(E value, java.lang.Object... coordinates)
      Modifie l'element a une certaine position en utilisant les semantiques
      Parameters:
      value - la nouvelle valeur
      coordinates - FIXME
    • equals

      boolean equals​(MatrixMap mat)
      Verifie que deux matrices sont completement equals (dimension, semantique, nom, valeur, ...)
      Parameters:
      mat - FIXME
      Returns:
      FIXME
    • equalsValues

      boolean equalsValues​(MatrixMap<E> mat)
      Verifie si les matrices sont egales en ne regardant que les valeurs et pas les semantiques
      Parameters:
      mat - FIXME
      Returns:
      equality on values
    • toStringGeneric

      java.lang.String toStringGeneric()
      Representation string de la matrice quelque soit le nombre de dimension
      Returns:
      FIXME
    • isValidCoordinates

      boolean isValidCoordinates​(java.lang.Object[] semantics)
      Indique si les semantiques passées en argument sont valable pour la matrice courante
      Parameters:
      semantics - FIXME
      Returns:
      FIXME
    • paste

      MatrixMap paste​(MatrixMap<E> mat)
      Copie une matrice dans la matrice actuelle. La matrice à copier à le même nombre de dimension. Si la matrice à copier est trop grande seul les éléments pouvant être copier le seront.
      Parameters:
      mat - la matrice à copier
      Returns:
      return la matrice courante.
    • getSubMatrix

      MatrixMap<E> getSubMatrix​(int dim, java.lang.Object start, int nb)
      Permet de prendre une sous matrice dans la matrice courante. La sous matrice a le même nombre de dimensions mais sur une des dimensions on ne prend que certain élément.
      Parameters:
      dim - la dimension dans lequel on veut une sous matrice
      start - la position dans dim d'ou il faut partir pour prendre la sous matrice. 0 ≤ start < dim.size si start est négatif alors la position de départ est calculé par rapport à la fin de la dimension, pour avoir le dernier élément il faut passer -1
      nb - le nombre d'élément à prendre dans la dimension si nb est inférieur ou égal à 0 alors cela indique qu'il faut prendre tous les éléments jusqu'à la fin de la dimension.
      Returns:
      new matrix
    • getSubMatrix

      MatrixMap<E> getSubMatrix​(int dim, java.lang.Object... elem)
      Permet de prendre une sous matrice dans la matrice courante. La sous matrice a le même nombre de dimensions mais sur une des dimensions on ne prend que certain élément.
      Parameters:
      dim - la dimension dans lequel on veut une sous matrice
      elem - les éléments dans la dimension à conserver
      Returns:
      new matrix
    • getSubMatrix

      MatrixMap<E> getSubMatrix​(java.lang.Object[]... elems)
      Permet de prendre une sous matrice dans la matrice courante.

      Réalise plusieurs appels à getSubMatrix(int, Object...) suivant l'implémentation.

      Parameters:
      elems - les éléments dans la dimension à conserver
      Returns:
      new matrix
    • reduce

      MatrixMap<E> reduce()
      Reduit la matrice de sorte que toutes les dimensions qui n'ont qu'un élement soit supprimée. Au pire cette méthode retourne une matrice à une seule dimension à un seul élément.
      Returns:
      une nouvelle matrice plus petite que la matrice actuelle ou egal s'il n'y a aucune dimension à supprimer
    • reduceDims

      MatrixMap<E> reduceDims​(int... dims)
      Reduit le matrice seulement sur les dimensions passées en argument. Si une des dimensions passées en arguement n'a pas qu'un seul élément, cette dimension n'est pas prise en compte.
      Parameters:
      dims - les dimensions sur lequel il faut faire la reduction
      Returns:
      une nouvelle matrice
    • reduce

      MatrixMap<E> reduce​(int minNbDim)
      Reduit la matrice de sorte que toutes les dimensions qui n'ont qu'un élement soit supprimée. Au pire cette méthode retourne une matrice à une seule dimension à un seul élément.
      Parameters:
      minNbDim - le nombre minimum de dimension que l'on souhaite pour la matrice résultat
      Returns:
      une nouvelle matrice plus petite que la matrice actuelle ou egal s'il n'y a aucune dimension à supprimer
    • extend

      MatrixMap<E> extend​(java.lang.Object... sems)
      Permet de retourner une nouvelle matrice ayant les semantiques passées en parametre. La nouvelle matrice contient les données de l'ancienne matrice par copie en fonction des semantiques
      Parameters:
      sems - FIXME
      Returns:
      FIXME