org.nuiton.util
Interface MatrixMap<E>

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

public interface MatrixMap<E>
extends 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 Last update: $Date: 2011-07-31 15:25:21 +0200 (Sun, 31 Jul 2011) $ by : $Author: tchemit $
Version:
$Revision: 2155 $
Author:
poussin

Nested Class Summary
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
 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(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 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.
 E getValue(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(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, 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
 void setValueIndex(E value, int... coordinates)
          Modifie l'element a une certaine position en utilisant des indices ex: 2,3,1
 String toStringGeneric()
          Representation string de la matrice quelque soit le nombre de dimension
 

Method Detail

iterator

MatrixMap.MatrixMapIterator<E> iterator()
Specified by:
iterator in interface 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,
                 List sem)

setName

void setName(String name)

getName

String getName()

getDimensionNames

String[] getDimensionNames()

setDimensionNames

void setDimensionNames(String[] names)

setDimensionName

void setDimensionName(int dim,
                      String name)

getDimensionName

String getDimensionName(int dim)

getDimCount

int getDimCount()

getDim

int[] getDim()

getDim

int getDim(int d)

map

MatrixMap<E> map(MatrixMap.MapFunction<E> f)
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 -
Returns:

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 -

getValue

E getValue(Object... coordinates)
Retourne l'element a une certaine position en utilisant les semantiques

Parameters:
coordinates -
Returns:

setValue

void setValue(E value,
              Object... coordinates)
Modifie l'element a une certaine position en utilisant les semantiques

Parameters:
value - la nouvelle valeur
coordinates -

equals

boolean equals(MatrixMap mat)
Verifie que deux matrices sont completement equals (dimension, semantique, nom, valeur, ...)

Parameters:
mat -
Returns:

equalsValues

boolean equalsValues(MatrixMap<E> mat)
Verifie si les matrices sont egales en ne regardant que les valeurs et pas les semantiques

Parameters:
mat -
Returns:
equality on values

toStringGeneric

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

Returns:

isValidCoordinates

boolean isValidCoordinates(Object[] semantics)
Indique si les semantiques passées en argument sont valable pour la matrice courante

Parameters:
semantics -
Returns:

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,
                          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,
                          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(Object[]... elems)
Permet de prendre une sous matrice dans la matrice courante. Réalise plusieurs appels à getSubMatrix(int, Object...) suivant l'implémentation.

Parameters:
elem - 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(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 -
Returns:


Copyright © 2004-2011 CodeLutin. All Rights Reserved.