org.nuiton.util
Class MatrixMap.AbstractMatrixMap<E>

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

public abstract static class MatrixMap.AbstractMatrixMap<E>
extends Object
implements MatrixMap<E>

Classe abstraite permettant de facilement implanter les matrice fixe, elastique et submatrix


Nested Class Summary
 
Nested classes/interfaces inherited from interface org.nuiton.util.MatrixMap
MatrixMap.AbstractMatrixMap<E>, MatrixMap.Factory, MatrixMap.MapFunction<E>, MatrixMap.Matrix<E>, MatrixMap.MatrixHelper, MatrixMap.MatrixIterator<E>, MatrixMap.MatrixMapElastic<E>, MatrixMap.MatrixMapFixed<E>, MatrixMap.MatrixMapIterator<E>, MatrixMap.MatrixMapIteratorImpl<E>, MatrixMap.SemanticList<T>, MatrixMap.SubMatrix<E>, MatrixMap.Vector<E>
 
Field Summary
protected  int[] dim
           
protected  String[] dimNames
           
protected  String name
           
protected  MatrixMap.SemanticList[] semantics
           
 
Constructor Summary
protected MatrixMap.AbstractMatrixMap(int[] dim)
           
  MatrixMap.AbstractMatrixMap(List... semantics)
           
  MatrixMap.AbstractMatrixMap(MatrixMap<E> matrix)
           
protected MatrixMap.AbstractMatrixMap(String name, int[] dim)
           
protected MatrixMap.AbstractMatrixMap(String name, int[] dim, String[] dimNames)
           
  MatrixMap.AbstractMatrixMap(String name, List... semantics)
           
  MatrixMap.AbstractMatrixMap(String name, String[] dimNames, List... semantics)
           
 
Method Summary
 MatrixMap clone()
           
 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 equals(Object o)
           
 boolean equalsValues(MatrixMap mat)
          Verifie si les matrices sont egales en ne regardant que les valeurs et pas les semantiques
 MatrixMap<E> extend(Object... sems)
          Permet de retourner une nouvelle matrice ayant les semantiques passées en parametre.
 int[] getDim()
           
 int getDim(int d)
           
 int getDimCount()
           
 String getDimensionName(int dim)
           
 String[] getDimensionNames()
           
 String getName()
           
 MatrixMap.SemanticList getSemantic(int dim)
           
 MatrixMap.SemanticList[] getSemantics()
           
 MatrixMap<E> getSubMatrix(int[]... elems)
          Permet de prendre une sous matrice dans la matrice courante.
 MatrixMap<E> getSubMatrix(int dim, int[] elem)
          Permet de prendre une sous matrice dans la matrice courante.
 MatrixMap<E> getSubMatrix(int dim, int start, int nb)
          Permet de prendre une sous matrice dans la matrice courante.
 MatrixMap<E> getSubMatrix(int dim, Object... elem)
          Permet de prendre une sous matrice dans la matrice courante.
 MatrixMap<E> getSubMatrix(int dim, Object start, int nb)
          Permet de prendre une sous matrice dans la matrice courante.
 MatrixMap<E> getSubMatrix(Object[]... elems)
          Permet de prendre une sous matrice dans la matrice courante.
 MatrixMap<E> getSubMatrixOnSemantic(int dim, Object... elem)
          Add to desambiguas some call with xpath engine, but do the same thing getSubMatrix(int, Object[])
 E getValue(Object... coordinates)
          Retourne l'element a une certaine position en utilisant les semantiques
protected  void init(int[] dim)
           
 boolean isValidCoordinates(int[] dim)
           
 boolean isValidCoordinates(Object[] semantics)
          Indique si les semantiques passées en argument sont valable pour la matrice courante
 MatrixMap<E> map(MatrixMap.MapFunction<E> f)
          Retourne la matrice elle meme.
protected  MatrixMap<E> paste(int[] origin, MatrixMap<E> mat)
           
 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é
 MatrixMap pasteIndex(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.
protected  MatrixMap<E> reduce(List<String> dimName, List<List> sem, int[] correspondance)
          Create new matrice from the current matrix.
 MatrixMap<E> reduceDims(int... dims)
          Reduit le matrice seulement sur les dimensions passées en argument.
 void setDimensionName(int dim, String name)
           
 void setDimensionNames(String[] names)
           
 void setName(String name)
           
 void setSemantic(int dim, List sem)
           
 void setValue(E value, Object... coordinates)
          Modifie l'element a une certaine position en utilisant les semantiques
 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
 String toStringGeneric()
          Representation string de la matrice quelque soit le nombre de dimension
 
Methods inherited from class java.lang.Object
finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.nuiton.util.MatrixMap
getValueIndex, iterator, setValueIndex
 

Field Detail

name

protected String name

dimNames

protected String[] dimNames

dim

protected int[] dim

semantics

protected MatrixMap.SemanticList[] semantics
Constructor Detail

MatrixMap.AbstractMatrixMap

protected MatrixMap.AbstractMatrixMap(int[] dim)

MatrixMap.AbstractMatrixMap

public MatrixMap.AbstractMatrixMap(List... semantics)

MatrixMap.AbstractMatrixMap

protected MatrixMap.AbstractMatrixMap(String name,
                                      int[] dim)

MatrixMap.AbstractMatrixMap

protected MatrixMap.AbstractMatrixMap(String name,
                                      int[] dim,
                                      String[] dimNames)

MatrixMap.AbstractMatrixMap

public MatrixMap.AbstractMatrixMap(String name,
                                   List... semantics)

MatrixMap.AbstractMatrixMap

public MatrixMap.AbstractMatrixMap(String name,
                                   String[] dimNames,
                                   List... semantics)

MatrixMap.AbstractMatrixMap

public MatrixMap.AbstractMatrixMap(MatrixMap<E> matrix)
Method Detail

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 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,
                        List sem)
Specified by:
setSemantic in interface MatrixMap<E>

setName

public void setName(String name)
Specified by:
setName in interface MatrixMap<E>

getName

public String getName()
Specified by:
getName in interface MatrixMap<E>

getDimensionNames

public String[] getDimensionNames()
Specified by:
getDimensionNames in interface MatrixMap<E>

setDimensionNames

public void setDimensionNames(String[] names)
Specified by:
setDimensionNames in interface MatrixMap<E>

setDimensionName

public void setDimensionName(int dim,
                             String name)
Specified by:
setDimensionName in interface MatrixMap<E>

getDimensionName

public 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(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>
Returns:

setValue

public void setValue(E value,
                     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

equals

public boolean equals(Object o)
Overrides:
equals in class 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>
Returns:

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 -
Returns:
equality on values

toString

public 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 Object
Returns:

toStringGeneric

public String toStringGeneric()
Representation string de la matrice quelque soit le nombre de dimension

Specified by:
toStringGeneric in interface MatrixMap<E>
Returns:

isValidCoordinates

public boolean isValidCoordinates(int[] dim)

isValidCoordinates

public boolean isValidCoordinates(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>
Returns:

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,
                                 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,
                                           Object... elem)
Add to desambiguas some call with xpath engine, but do the same thing getSubMatrix(int, Object[])

Parameters:
dim -
elem -
Returns:
new matrix

getSubMatrix

public MatrixMap<E> getSubMatrix(int dim,
                                 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(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:
elem - 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(List<String> dimName,
                              List<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(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>
Returns:


Copyright © 2004-2012 CodeLutin. All Rights Reserved.