Package org.nuiton.util
Class MatrixMap.MatrixMapElastic<E>
java.lang.Object
org.nuiton.util.MatrixMap.MatrixMapElastic<E>
- Type Parameters:
E- FIXME
- All Implemented Interfaces:
java.lang.Iterable<E>,MatrixMap<E>
public static class MatrixMap.MatrixMapElastic<E> extends java.lang.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
Fields Modifier and Type Field Description protected MatrixMap<E>internalMatrixMap -
Constructor Summary
Constructors Constructor Description MatrixMapElastic()MatrixMapElastic(MatrixMap<E> m) -
Method Summary
Modifier and Type Method Description MatrixMap<E>copy()Copy la matrice pour pouvoir la modifier sans perdre les donnees initiales.booleanequals(java.lang.Object obj)booleanequals(MatrixMap mat)Verifie que deux matrices sont completement equals (dimension, semantique, nom, valeur, ...)booleanequalsValues(MatrixMap<E> mat)Verifie si les matrices sont egales en ne regardant que les valeurs et pas les semantiquesMatrixMap<E>extend(java.lang.Object... sems)Permet de retourner une nouvelle matrice ayant les semantiques passées en parametre.int[]getDim()intgetDim(int d)intgetDimCount()java.lang.StringgetDimensionName(int dim)java.lang.String[]getDimensionNames()MatrixMap<E>getInternalMatrixMap()java.lang.StringgetName()MatrixMap.SemanticListgetSemantic(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.EgetValue(java.lang.Object... coordinates)Retourne l'element a une certaine position en utilisant les semantiquesEgetValueIndex(int... coordinates)Retourne l'element a une certaine position en utilisant des indices ex: 2,3,1booleanisValidCoordinates(java.lang.Object[] semantics)Indique si les semantiques passées en argument sont valable pour la matrice couranteMatrixMap.MatrixMapIterator<E>iterator()MatrixMap<E>map(MatrixMap.MapFunction<E> f)Applique sur chaque element de la matrice la fonction fMatrixMappaste(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.voidsetDimensionName(int dim, java.lang.String name)voidsetDimensionNames(java.lang.String[] names)voidsetInternalMatrixMap(MatrixMap<E> internalMatrixMap)voidsetName(java.lang.String name)voidsetSemantic(int dim, java.util.List sem)voidsetValue(E value, java.lang.Object... coordinates)Modifie l'element a une certaine position en utilisant les semantiquesvoidsetValueIndex(E value, int... coordinates)Modifie l'element a une certaine position en utilisant des indices ex: 2,3,1java.lang.StringtoString()java.lang.StringtoStringGeneric()Representation string de la matrice quelque soit le nombre de dimension
-
Field Details
-
Constructor Details
-
MatrixMapElastic
public MatrixMapElastic() -
MatrixMapElastic
-
-
Method Details
-
getInternalMatrixMap
-
setInternalMatrixMap
-
iterator
-
copy
Description copied from interface:MatrixMapCopy la matrice pour pouvoir la modifier sans perdre les donnees initiales. -
getSemantics
- Specified by:
getSemanticsin interfaceMatrixMap<E>
-
getSemantic
- Specified by:
getSemanticin interfaceMatrixMap<E>
-
setSemantic
public void setSemantic(int dim, java.util.List sem)- Specified by:
setSemanticin interfaceMatrixMap<E>
-
setName
public void setName(java.lang.String name) -
getName
public java.lang.String getName() -
getDimensionNames
public java.lang.String[] getDimensionNames()- Specified by:
getDimensionNamesin interfaceMatrixMap<E>
-
setDimensionNames
public void setDimensionNames(java.lang.String[] names)- Specified by:
setDimensionNamesin interfaceMatrixMap<E>
-
setDimensionName
public void setDimensionName(int dim, java.lang.String name)- Specified by:
setDimensionNamein interfaceMatrixMap<E>
-
getDimensionName
public java.lang.String getDimensionName(int dim)- Specified by:
getDimensionNamein interfaceMatrixMap<E>
-
getDimCount
public int getDimCount()- Specified by:
getDimCountin interfaceMatrixMap<E>
-
getDim
public int[] getDim() -
getDim
public int getDim(int d) -
map
Description copied from interface:MatrixMapApplique sur chaque element de la matrice la fonction f -
getValueIndex
Description copied from interface:MatrixMapRetourne l'element a une certaine position en utilisant des indices ex: 2,3,1- Specified by:
getValueIndexin interfaceMatrixMap<E>- Parameters:
coordinates- FIXME- Returns:
- FIXME
-
setValueIndex
Description copied from interface:MatrixMapModifie l'element a une certaine position en utilisant des indices ex: 2,3,1- Specified by:
setValueIndexin interfaceMatrixMap<E>- Parameters:
value- la nouvelle valeurcoordinates- FIXME
-
getValue
Description copied from interface:MatrixMapRetourne l'element a une certaine position en utilisant les semantiques -
setValue
Description copied from interface:MatrixMapModifie l'element a une certaine position en utilisant les semantiques -
equals
public boolean equals(java.lang.Object obj)- Overrides:
equalsin classjava.lang.Object
-
equals
Description copied from interface:MatrixMapVerifie que deux matrices sont completement equals (dimension, semantique, nom, valeur, ...) -
equalsValues
Description copied from interface:MatrixMapVerifie si les matrices sont egales en ne regardant que les valeurs et pas les semantiques- Specified by:
equalsValuesin interfaceMatrixMap<E>- Parameters:
mat- FIXME- Returns:
- equality on values
-
toString
public java.lang.String toString()- Overrides:
toStringin classjava.lang.Object
-
toStringGeneric
public java.lang.String toStringGeneric()Description copied from interface:MatrixMapRepresentation string de la matrice quelque soit le nombre de dimension- Specified by:
toStringGenericin interfaceMatrixMap<E>- Returns:
- FIXME
-
isValidCoordinates
public boolean isValidCoordinates(java.lang.Object[] semantics)Description copied from interface:MatrixMapIndique si les semantiques passées en argument sont valable pour la matrice courante- Specified by:
isValidCoordinatesin interfaceMatrixMap<E>- Parameters:
semantics- FIXME- Returns:
- FIXME
-
paste
Description copied from interface:MatrixMapCopie 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. -
getSubMatrix
Description copied from interface:MatrixMapPermet 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:
getSubMatrixin interfaceMatrixMap<E>- Parameters:
dim- la dimension dans lequel on veut une sous matricestart- 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 -1nb- 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
Description copied from interface:MatrixMapPermet 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:
getSubMatrixin interfaceMatrixMap<E>- Parameters:
dim- la dimension dans lequel on veut une sous matriceelem- les éléments dans la dimension à conserver- Returns:
- new matrix
-
getSubMatrix
Description copied from interface:MatrixMapPermet de prendre une sous matrice dans la matrice courante.Réalise plusieurs appels à
MatrixMap.getSubMatrix(int, Object...)suivant l'implémentation.- Specified by:
getSubMatrixin interfaceMatrixMap<E>- Parameters:
elems- les éléments dans la dimension à conserver- Returns:
- new matrix
-
reduce
Description copied from interface:MatrixMapReduit 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. -
reduceDims
Description copied from interface:MatrixMapReduit 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:
reduceDimsin interfaceMatrixMap<E>- Parameters:
dims- les dimensions sur lequel il faut faire la reduction- Returns:
- une nouvelle matrice
-
reduce
Description copied from interface:MatrixMapReduit 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. -
extend
Description copied from interface:MatrixMapPermet 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
-