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

java.lang.Object
  extended by org.nuiton.util.MatrixMap.MatrixMapElastic<E>
Type Parameters:
E -
All Implemented Interfaces:
Iterable<E>, MatrixMap<E>
Enclosing interface:
MatrixMap<E>

public static class MatrixMap.MatrixMapElastic<E>
extends Object
implements MatrixMap<E>

Implantation particuliere de matrice, qui lorsqu'on lui passe des dimension qui n'existe pas, elle les ajoutes dans les semantiques. Ceci n'est vrai que pour le set avec des semantiques, le set avec des indices ne rend pas la matrice elastique.

Cette classe fonctionne avec une matrice interne que l'on change lorsque l'on a besoin de modifier les dimensions. Le changement de dimension a donc un cout (creation d'une nouvelle matrice, copie des elements)

Si on cree une sous matrice, et que l'on modifie la matrice mere La sous matrice n'est pas impacter, puisqu'elle est base sur l'ancienne represention interne de la matrice elastique, les deux matrices n'ont donc plus de lien.

Les methodes reduce et extend retourne de nouvelle matrice qui ne sont pas elastique. Si on veut qu'elle le soit, il faut les reencapsuler


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  MatrixMap<E> internalMatrixMap
           
 
Constructor Summary
MatrixMap.MatrixMapElastic()
           
MatrixMap.MatrixMapElastic(MatrixMap<E> m)
           
 
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 equals(Object obj)
           
 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()
           
 MatrixMap<E> getInternalMatrixMap()
           
 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 setInternalMatrixMap(MatrixMap<E> internalMatrixMap)
           
 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 toString()
           
 String toStringGeneric()
          Representation string de la matrice quelque soit le nombre de dimension
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

internalMatrixMap

protected MatrixMap<E> internalMatrixMap
Constructor Detail

MatrixMap.MatrixMapElastic

public MatrixMap.MatrixMapElastic()

MatrixMap.MatrixMapElastic

public MatrixMap.MatrixMapElastic(MatrixMap<E> m)
Method Detail

getInternalMatrixMap

public MatrixMap<E> getInternalMatrixMap()

setInternalMatrixMap

public void setInternalMatrixMap(MatrixMap<E> internalMatrixMap)

iterator

public MatrixMap.MatrixMapIterator<E> iterator()
Specified by:
iterator in interface Iterable<E>
Specified by:
iterator in interface MatrixMap<E>

copy

public MatrixMap<E> copy()
Description copied from interface: MatrixMap
Copy la matrice pour pouvoir la modifier sans perdre les donnees initiales.

Specified by:
copy in interface MatrixMap<E>
Returns:
new matrix

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)
Description copied from interface: MatrixMap
Applique sur chaque element de la matrice la fonction f

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

getValueIndex

public E getValueIndex(int... coordinates)
Description copied from interface: MatrixMap
Retourne l'element a une certaine position en utilisant des indices ex: 2,3,1

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

setValueIndex

public void setValueIndex(E value,
                          int... coordinates)
Description copied from interface: MatrixMap
Modifie l'element a une certaine position en utilisant des indices ex: 2,3,1

Specified by:
setValueIndex in interface MatrixMap<E>
Parameters:
value - la nouvelle valeur

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 obj)
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<E> mat)
Description copied from interface: MatrixMap
Verifie si les matrices sont egales en ne regardant que les valeurs et pas les semantiques

Specified by:
equalsValues in interface MatrixMap<E>
Returns:
equality on values

toString

public String toString()
Overrides:
toString in class Object

toStringGeneric

public String toStringGeneric()
Description copied from interface: MatrixMap
Representation string de la matrice quelque soit le nombre de dimension

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

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:

paste

public MatrixMap paste(MatrixMap<E> mat)
Description copied from interface: MatrixMap
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.

Specified by:
paste in interface MatrixMap<E>
Parameters:
mat - la matrice à copier
Returns:
return la matrice courante.

getSubMatrix

public MatrixMap<E> getSubMatrix(int dim,
                                 Object start,
                                 int nb)
Description copied from interface: MatrixMap
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

getSubMatrix

public MatrixMap<E> getSubMatrix(int dim,
                                 Object... elem)
Description copied from interface: MatrixMap
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)
Description copied from interface: MatrixMap
Permet de prendre une sous matrice dans la matrice courante.

Réalise plusieurs appels à MatrixMap.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

reduce

public MatrixMap<E> reduce()
Description copied from interface: MatrixMap
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)
Description copied from interface: MatrixMap
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)
Description copied from interface: MatrixMap
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

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.