Class MatrixMap.AbstractMatrixMap<E>

java.lang.Object
org.nuiton.util.MatrixMap.AbstractMatrixMap<E>
Type Parameters:
E - FIXME
All Implemented Interfaces:
java.lang.Iterable<E>, MatrixMap<E>
Direct Known Subclasses:
MatrixMap.MatrixMapFixed, MatrixMap.SubMatrix
Enclosing interface:
MatrixMap<E>

public abstract static class MatrixMap.AbstractMatrixMap<E>
extends java.lang.Object
implements MatrixMap<E>
Classe abstraite permettant de facilement implanter les matrice fixe, elastique et submatrix
  • Field Details

  • Constructor Details

  • Method Details

    • init

      protected void init​(int[] dim)
    • copy

      public MatrixMap<E> copy()
      Copy la matrice pour pouvoir la modifier sans perdre les donnees initiales.
      Specified by:
      copy in interface MatrixMap<E>
      Returns:
      new matrix
    • clone

      public MatrixMap clone()
      Overrides:
      clone in class java.lang.Object
    • getSemantics

      public MatrixMap.SemanticList[] getSemantics()
      Specified by:
      getSemantics in interface MatrixMap<E>
    • getSemantic

      public MatrixMap.SemanticList getSemantic​(int dim)
      Specified by:
      getSemantic in interface MatrixMap<E>
    • setSemantic

      public void setSemantic​(int dim, java.util.List sem)
      Specified by:
      setSemantic in interface MatrixMap<E>
    • setName

      public void setName​(java.lang.String name)
      Specified by:
      setName in interface MatrixMap<E>
    • getName

      public java.lang.String getName()
      Specified by:
      getName in interface MatrixMap<E>
    • getDimensionNames

      public java.lang.String[] getDimensionNames()
      Specified by:
      getDimensionNames in interface MatrixMap<E>
    • setDimensionNames

      public void setDimensionNames​(java.lang.String[] names)
      Specified by:
      setDimensionNames in interface MatrixMap<E>
    • setDimensionName

      public void setDimensionName​(int dim, java.lang.String name)
      Specified by:
      setDimensionName in interface MatrixMap<E>
    • getDimensionName

      public java.lang.String getDimensionName​(int dim)
      Specified by:
      getDimensionName in interface MatrixMap<E>
    • getDimCount

      public int getDimCount()
      Specified by:
      getDimCount in interface MatrixMap<E>
    • getDim

      public int[] getDim()
      Specified by:
      getDim in interface MatrixMap<E>
    • getDim

      public int getDim​(int d)
      Specified by:
      getDim in interface MatrixMap<E>
    • map

      public MatrixMap<E> map​(MatrixMap.MapFunction<E> f)
      Retourne la matrice elle meme. Les modifications sont faites directement dessus
      Specified by:
      map in interface MatrixMap<E>
      Parameters:
      f - la fonction a appliquer
      Returns:
      Retourne la matrice elle meme. Les modifications sont faites directement dessus
    • getValue

      public E getValue​(java.lang.Object... coordinates)
      Description copied from interface: MatrixMap
      Retourne l'element a une certaine position en utilisant les semantiques
      Specified by:
      getValue in interface MatrixMap<E>
      Parameters:
      coordinates - FIXME
      Returns:
      FIXME
    • setValue

      public void setValue​(E value, java.lang.Object... coordinates)
      Description copied from interface: MatrixMap
      Modifie l'element a une certaine position en utilisant les semantiques
      Specified by:
      setValue in interface MatrixMap<E>
      Parameters:
      value - la nouvelle valeur
      coordinates - FIXME
    • equals

      public boolean equals​(java.lang.Object o)
      Overrides:
      equals in class java.lang.Object
    • equals

      public boolean equals​(MatrixMap mat)
      Description copied from interface: MatrixMap
      Verifie que deux matrices sont completement equals (dimension, semantique, nom, valeur, ...)
      Specified by:
      equals in interface MatrixMap<E>
      Parameters:
      mat - FIXME
      Returns:
      FIXME
    • equalsValues

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

      public java.lang.String toString()
      Si la matrice est 1D
       MaMatrice(matrix1D) [
       MaDimName: Dim1, Dim2, Dim3,
                    v1,   v2,   v3
       ]
       

      Si la matrice est 2D

       MaMatrice(matrix2D) [
                  MaDimX
       MaDimY     Dim1, Dim2, Dim3,
       DimA       v1,     v2,   v3
       DimB       v4,     v5,   v6
       DimC       v7,     v8,   v9
       ]
       

      Pour les autres types de matrice la methode toStringGeneric() est utilise

      Overrides:
      toString in class java.lang.Object
      Returns:
      FIXME
    • toStringGeneric

      public java.lang.String toStringGeneric()
      Representation string de la matrice quelque soit le nombre de dimension
      Specified by:
      toStringGeneric in interface MatrixMap<E>
      Returns:
      FIXME
    • isValidCoordinates

      public boolean isValidCoordinates​(int[] dim)
    • isValidCoordinates

      public boolean isValidCoordinates​(java.lang.Object[] semantics)
      Description copied from interface: MatrixMap
      Indique si les semantiques passées en argument sont valable pour la matrice courante
      Specified by:
      isValidCoordinates in interface MatrixMap<E>
      Parameters:
      semantics - FIXME
      Returns:
      FIXME
    • pasteIndex

      public MatrixMap pasteIndex​(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.
    • paste

      protected MatrixMap<E> paste​(int[] origin, MatrixMap<E> mat)
    • paste

      public MatrixMap<E> paste​(MatrixMap<E> mat)
      Modifie la matrice actuel en metant les valeurs de mat passé en parametre La copie se fait en fonction de la semantique, si un element dans une dimension n'est pas trouvé, alors il est passé
      Specified by:
      paste in interface MatrixMap<E>
      Parameters:
      mat - la matrice à copier
      Returns:
      return la matrice courante.
    • getSubMatrix

      public MatrixMap<E> getSubMatrix​(int dim, int 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 si dim est négatif alors la dimension est prise à partir de la fin par exemple si l'on veut la derniere dimension il faut passer -1 pour dim
      start - la position dans dim d'ou il faut partir pour prendre la sous matrice.
      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

      public 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.
      Specified by:
      getSubMatrix in interface MatrixMap<E>
      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
    • getSubMatrixOnSemantic

      public MatrixMap<E> getSubMatrixOnSemantic​(int dim, java.lang.Object... elem)
      Add to desambiguas some call with xpath engine, but do the same thing getSubMatrix(int, Object[])
      Parameters:
      dim - FIXME
      elem - FIXME
      Returns:
      new matrix
    • getSubMatrix

      public 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.
      Specified by:
      getSubMatrix in interface MatrixMap<E>
      Parameters:
      dim - la dimension dans lequel on veut une sous matrice
      elem - les éléments dans la dimension à conserver
      Returns:
      new matrix
    • getSubMatrix

      public 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.

      Specified by:
      getSubMatrix in interface MatrixMap<E>
      Parameters:
      elems - les éléments dans la dimension à conserver
      Returns:
      new matrix
    • getSubMatrix

      public MatrixMap<E> getSubMatrix​(int dim, int[] 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 indices des éléments dans la dimension à conserver
      Returns:
      new matrix
    • getSubMatrix

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

      Réalise plusieurs appels a getSubMatrix(int, int[]) suivant l'implementation.

      Parameters:
      elems - les indices des éléments pour chaque dimension à conserver
      Returns:
      new matrix
    • reduce

      public 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.
      Specified by:
      reduce in interface MatrixMap<E>
      Returns:
      une nouvelle matrice plus petite que la matrice actuelle ou egal s'il n'y a aucune dimension à supprimer
    • reduceDims

      public 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.
      Specified by:
      reduceDims in interface MatrixMap<E>
      Parameters:
      dims - les dimensions sur lequel il faut faire la reduction
      Returns:
      une nouvelle matrice
    • reduce

      public 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.
      Specified by:
      reduce in interface MatrixMap<E>
      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
    • reduce

      protected MatrixMap<E> reduce​(java.util.List<java.lang.String> dimName, java.util.List<java.util.List> sem, int[] correspondance)
      Create new matrice from the current matrix.
      Parameters:
      dimName - dimension name for new matrix
      sem - semantic for new matrix
      correspondance - array to do the link between current matrix and returned matrix
      Returns:
      new matrix
    • extend

      public MatrixMap<E> extend​(java.lang.Object... sems)
      Description copied from interface: MatrixMap
      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
      Specified by:
      extend in interface MatrixMap<E>
      Parameters:
      sems - FIXME
      Returns:
      FIXME