Author: echatellier Date: 2009-10-08 15:23:44 +0200 (Thu, 08 Oct 2009) New Revision: 179 Modified: trunk/src/main/java/org/nuiton/math/matrix/AbstractMatrixND.java trunk/src/main/java/org/nuiton/math/matrix/BasicMatrix.java trunk/src/main/java/org/nuiton/math/matrix/MatrixFactory.java trunk/src/main/java/org/nuiton/math/matrix/MatrixHelper.java trunk/src/main/java/org/nuiton/math/matrix/MatrixND.java trunk/src/main/java/org/nuiton/math/matrix/MatrixStringEncoder.java trunk/src/main/java/org/nuiton/math/matrix/gui/MatrixPanelEditor.java trunk/src/main/java/org/nuiton/math/matrix/gui/MatrixPopupMenu.java trunk/src/main/resources/i18n/nuiton-matrix-en_GB.properties trunk/src/main/resources/i18n/nuiton-matrix-fr_FR.properties trunk/src/test/java/org/nuiton/math/matrix/MatrixNDTest.java Log: Add some generics. Rename i18n string. Modified: trunk/src/main/java/org/nuiton/math/matrix/AbstractMatrixND.java =================================================================== --- trunk/src/main/java/org/nuiton/math/matrix/AbstractMatrixND.java 2009-09-29 17:07:57 UTC (rev 178) +++ trunk/src/main/java/org/nuiton/math/matrix/AbstractMatrixND.java 2009-10-08 13:23:44 UTC (rev 179) @@ -499,7 +499,7 @@ } @Override - public List<Object> toList() { + public List<?> toList() { List<Object> result = new ArrayList<Object>(); // [3,2,5,4] for (MatrixIterator i = iterator(); i.next();) { @@ -523,11 +523,11 @@ } @Override - public void fromList(List<Object> list) { + public void fromList(List<?> list) { // on suppose que les listes sont bien formé, c-a-d qu'elles sont // toutes de la meme dimension pour une dimension donnée. ArrayIntList dim = new ArrayIntList(); - List<Object> tmp = list; + List<?> tmp = list; while (tmp.get(tmp.size() - 1) instanceof List) { dim.add(tmp.size()); tmp = (List<Object>) tmp.get(tmp.size() - 1); @@ -892,7 +892,7 @@ * returned matrix * @return new matrix */ - protected MatrixND reduce(List<Object> dimName, List<Object> sem, + protected MatrixND reduce(List<?> dimName, List<Object> sem, int[] correspondance) { // on converti les listes en tableau en inversant l'ordre car on // a fait un parcours en sens inverse Modified: trunk/src/main/java/org/nuiton/math/matrix/BasicMatrix.java =================================================================== --- trunk/src/main/java/org/nuiton/math/matrix/BasicMatrix.java 2009-09-29 17:07:57 UTC (rev 178) +++ trunk/src/main/java/org/nuiton/math/matrix/BasicMatrix.java 2009-10-08 13:23:44 UTC (rev 179) @@ -209,7 +209,7 @@ for (int i = 0; i < dim.length; i++) { if (dim[i] <= 0) { throw new IllegalArgumentException(I18n._( - "lutinmatrix.invalid.size", Integer.valueOf(i), Integer + "nuitonmatrix.invalid.size", Integer.valueOf(i), Integer .valueOf(dim[i]))); } } @@ -224,7 +224,7 @@ protected void checkDim(int dim) { if (dim < 0 || dim >= getNbDim()) { throw new IndexOutOfBoundsException(I18n._( - "lutinmatrix.invalid.size", dim, getNbDim())); + "nuitonmatrix.invalid.size", dim, getNbDim())); } } @@ -243,7 +243,7 @@ } if (!result) { throw new NoSuchElementException(I18n._( - "lutinmatrix.invalid.element", Arrays.toString(pos), Arrays + "nuitonmatrix.invalid.element", Arrays.toString(pos), Arrays .toString(dim))); } } Modified: trunk/src/main/java/org/nuiton/math/matrix/MatrixFactory.java =================================================================== --- trunk/src/main/java/org/nuiton/math/matrix/MatrixFactory.java 2009-09-29 17:07:57 UTC (rev 178) +++ trunk/src/main/java/org/nuiton/math/matrix/MatrixFactory.java 2009-10-08 13:23:44 UTC (rev 179) @@ -170,7 +170,7 @@ return matrix; } - public MatrixND create(List<Object>[] semantics) { + public MatrixND create(List<?>[] semantics) { return new MatrixNDImpl(this, semantics); } Modified: trunk/src/main/java/org/nuiton/math/matrix/MatrixHelper.java =================================================================== --- trunk/src/main/java/org/nuiton/math/matrix/MatrixHelper.java 2009-09-29 17:07:57 UTC (rev 178) +++ trunk/src/main/java/org/nuiton/math/matrix/MatrixHelper.java 2009-10-08 13:23:44 UTC (rev 179) @@ -73,7 +73,7 @@ * @param s la chaine representant les listes de liste * @return une liste de liste ... de Double */ - public static List<Object> convertStringToList(String s) { + public static List<?> convertStringToList(String s) { List<Object> result = null; Stack<List<Object>> stack = new Stack<List<Object>>(); StringBuffer number = new StringBuffer(20); // initial to 20 char Modified: trunk/src/main/java/org/nuiton/math/matrix/MatrixND.java =================================================================== --- trunk/src/main/java/org/nuiton/math/matrix/MatrixND.java 2009-09-29 17:07:57 UTC (rev 178) +++ trunk/src/main/java/org/nuiton/math/matrix/MatrixND.java 2009-10-08 13:23:44 UTC (rev 179) @@ -667,14 +667,14 @@ * * @return list matrix representation */ - public List<Object> toList(); + public List<?> toList(); /** * Permet de charger une matrice a partir d'une representation List * * @param list la matrice sous forme de List de list ... de double */ - public void fromList(List<Object> list); + public void fromList(List<?> list); /** * Determine si la matrice supporte l'import et l'export CSV Modified: trunk/src/main/java/org/nuiton/math/matrix/MatrixStringEncoder.java =================================================================== --- trunk/src/main/java/org/nuiton/math/matrix/MatrixStringEncoder.java 2009-09-29 17:07:57 UTC (rev 178) +++ trunk/src/main/java/org/nuiton/math/matrix/MatrixStringEncoder.java 2009-10-08 13:23:44 UTC (rev 179) @@ -105,11 +105,11 @@ int[] dim = getDimFromString(dimString); String[] dimNames = getDimensionNamesFromString(dimNamesString); - List<Object>[] semantics = getSemanticsFromString(semanticsString); + List<?>[] semantics = getSemanticsFromString(semanticsString); matrix = MatrixFactory.getInstance().create(name, semantics, dimNames); - List<Object> data = MatrixHelper.convertStringToList(dataString); + List<?> data = MatrixHelper.convertStringToList(dataString); matrix.fromList(data); } else { throw new IllegalArgumentException("Can't parse \"" + str @@ -228,14 +228,14 @@ * @param str la chaine representant la semantique * @return semantics list */ - public List<Object>[] getSemanticsFromString(String str) { + public List<?>[] getSemanticsFromString(String str) { String localStr = str.trim(); if (localStr.startsWith("[") && localStr.endsWith("]")) { localStr = localStr.substring(1, localStr.length() - 1); // remove [ and ] } String[] sems = StringUtil.split(localStr, ","); - List<Object>[] result = new List[sems.length]; + List<?>[] result = new List[sems.length]; for (int i = 0; i < sems.length; i++) { result[i] = splitObjects(sems[i]); @@ -253,7 +253,7 @@ * @param str la chaine representant * @return semantics list */ - public List<Object> splitObjects(String str) { + public List<?> splitObjects(String str) { List<Object> result = new LinkedList<Object>(); String localStr = str.trim(); if (localStr.startsWith("[") && localStr.endsWith("]")) { Modified: trunk/src/main/java/org/nuiton/math/matrix/gui/MatrixPanelEditor.java =================================================================== --- trunk/src/main/java/org/nuiton/math/matrix/gui/MatrixPanelEditor.java 2009-09-29 17:07:57 UTC (rev 178) +++ trunk/src/main/java/org/nuiton/math/matrix/gui/MatrixPanelEditor.java 2009-10-08 13:23:44 UTC (rev 179) @@ -188,13 +188,13 @@ @Override public JButton getButtonEdit() { if (bEdit == null) { - bEdit = new JButton(I18n._("lutinmatrix.create.matrix.button")); + bEdit = new JButton(I18n._("nuitonmatrix.create.matrix.button")); bEdit.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { String dim; - dim = JOptionPane.showInputDialog(null, I18n._("lutinmatrix.create.matrix.message"), I18n._("lutinmatrix.create.matrix.title"), + dim = JOptionPane.showInputDialog(null, I18n._("nuitonmatrix.create.matrix.message"), I18n._("nuitonmatrix.create.matrix.title"), JOptionPane.DEFAULT_OPTION); if (dim != null) { Modified: trunk/src/main/java/org/nuiton/math/matrix/gui/MatrixPopupMenu.java =================================================================== --- trunk/src/main/java/org/nuiton/math/matrix/gui/MatrixPopupMenu.java 2009-09-29 17:07:57 UTC (rev 178) +++ trunk/src/main/java/org/nuiton/math/matrix/gui/MatrixPopupMenu.java 2009-10-08 13:23:44 UTC (rev 179) @@ -92,7 +92,7 @@ sendToFile = getSendToFile(); withSemantics = new JCheckBoxMenuItem( - _("lutinmatrix.menu.option.semantics"), false); + _("nuitonmatrix.menu.option.semantics"), false); add(sendToClipBoard); add(sendToFile); @@ -105,15 +105,15 @@ */ public JMenu getSendToClipBoard() { if (sendToClipBoard == null) { - sendToClipBoard = new JMenu(_("lutinmatrix.menu.action")); + sendToClipBoard = new JMenu(_("nuitonmatrix.menu.action")); JMenuItem sendToClipBoardAllCopy = new JMenuItem( - _("lutinmatrix.menu.action.copy")); + _("nuitonmatrix.menu.action.copy")); JMenuItem sendToClipBoardAllPaste = new JMenuItem( - _("lutinmatrix.menu.action.paste")); + _("nuitonmatrix.menu.action.paste")); JMenuItem sendToClipBoardSelectionCopy = new JMenuItem( - _("lutinmatrix.menu.action.copy.selection")); + _("nuitonmatrix.menu.action.copy.selection")); JMenuItem sendToClipBoardCurrentPaste = new JMenuItem( - _("lutinmatrix.menu.action.paste.position")); + _("nuitonmatrix.menu.action.paste.position")); sendToClipBoard.add(sendToClipBoardAllCopy); sendToClipBoard.add(sendToClipBoardAllPaste); @@ -139,15 +139,15 @@ */ public JMenu getSendToFile() { if (sendToFile == null) { - sendToFile = new JMenu(_("lutinmatrix.menu.csv")); + sendToFile = new JMenu(_("nuitonmatrix.menu.csv")); JMenuItem sendToFileAllCopy = new JMenuItem( - _("lutinmatrix.menu.csv.export.file")); + _("nuitonmatrix.menu.csv.export.file")); JMenuItem sendToFileAllPaste = new JMenuItem( - _("lutinmatrix.menu.csv.import.file")); + _("nuitonmatrix.menu.csv.import.file")); JMenuItem sendToFileSelectionCopy = new JMenuItem( - _("lutinmatrix.menu.csv.export.selection")); + _("nuitonmatrix.menu.csv.export.selection")); JMenuItem sendToFileCurrentPaste = new JMenuItem( - _("lutinmatrix.menu.csv.import.position")); + _("nuitonmatrix.menu.csv.import.position")); sendToFile.add(sendToFileAllCopy); sendToFile.add(sendToFileAllPaste); @@ -396,8 +396,8 @@ matrixEditor.repaint(); } catch (Exception e) { JOptionPane.showMessageDialog(matrixEditor, - _("lutinmatrix.error.clipboard.write"), - _("lutinmatrix.error"), JOptionPane.ERROR_MESSAGE); + _("nuitonmatrix.error.clipboard.write"), + _("nuitonmatrix.error"), JOptionPane.ERROR_MESSAGE); e.printStackTrace(); } } @@ -411,8 +411,8 @@ matrixEditor.repaint(); } catch (Exception e) { JOptionPane.showMessageDialog(matrixEditor, - _("lutinmatrix.error.clipboard.read"), - _("lutinmatrix.error"), JOptionPane.ERROR_MESSAGE); + _("nuitonmatrix.error.clipboard.read"), + _("nuitonmatrix.error"), JOptionPane.ERROR_MESSAGE); e.printStackTrace(); } } @@ -429,8 +429,8 @@ matrixEditor.repaint(); } catch (Exception e) { JOptionPane.showMessageDialog(matrixEditor, - _("lutinmatrix.error.clipboard.write"), - _("lutinmatrix.error"), JOptionPane.ERROR_MESSAGE); + _("nuitonmatrix.error.clipboard.write"), + _("nuitonmatrix.error"), JOptionPane.ERROR_MESSAGE); e.printStackTrace(); } } @@ -445,8 +445,8 @@ matrixEditor.repaint(); } catch (Exception e) { JOptionPane.showMessageDialog(matrixEditor, - _("lutinmatrix.error.clipboard.read"), - _("lutinmatrix.error"), JOptionPane.ERROR_MESSAGE); + _("nuitonmatrix.error.clipboard.read"), + _("nuitonmatrix.error"), JOptionPane.ERROR_MESSAGE); e.printStackTrace(); } } @@ -521,7 +521,7 @@ } } catch (Exception e) { JOptionPane.showMessageDialog(matrixEditor, - _("lutinmatrix.error.file.write"), _("lutinmatrix.error"), + _("nuitonmatrix.error.file.write"), _("nuitonmatrix.error"), JOptionPane.ERROR_MESSAGE); e.printStackTrace(); } @@ -538,7 +538,7 @@ } } catch (Exception e) { JOptionPane.showMessageDialog(matrixEditor, - _("lutinmatrix.error.file.read"), _("lutinmatrix.error"), + _("nuitonmatrix.error.file.read"), _("nuitonmatrix.error"), JOptionPane.ERROR_MESSAGE); e.printStackTrace(); } @@ -554,7 +554,7 @@ } } catch (Exception e) { JOptionPane.showMessageDialog(matrixEditor, - _("lutinmatrix.error.file.write"), _("lutinmatrix.error"), + _("nuitonmatrix.error.file.write"), _("nuitonmatrix.error"), JOptionPane.ERROR_MESSAGE); e.printStackTrace(); } @@ -572,7 +572,7 @@ } } catch (Exception e) { JOptionPane.showMessageDialog(matrixEditor, - _("lutinmatrix.error.file.read"), _("lutinmatrix.error"), + _("nuitonmatrix.error.file.read"), _("nuitonmatrix.error"), JOptionPane.ERROR_MESSAGE); e.printStackTrace(); } Modified: trunk/src/main/resources/i18n/nuiton-matrix-en_GB.properties =================================================================== --- trunk/src/main/resources/i18n/nuiton-matrix-en_GB.properties 2009-09-29 17:07:57 UTC (rev 178) +++ trunk/src/main/resources/i18n/nuiton-matrix-en_GB.properties 2009-10-08 13:23:44 UTC (rev 179) @@ -1,21 +1,21 @@ -lutinmatrix.create.matrix.button=New matrix -lutinmatrix.create.matrix.message=Matrix size (separate by ';') -lutinmatrix.create.matrix.title=New matrix -lutinmatrix.error=Error -lutinmatrix.error.clipboard.read=Cannot read clipboard -lutinmatrix.error.clipboard.write=Cannot write clipboard -lutinmatrix.error.file.read=Cannot read file -lutinmatrix.error.file.write=Cannot write file -lutinmatrix.invalid.element=Invalid element %s in matrix %s -lutinmatrix.invalid.size=Invalid size\: 0 <\= %d <\= %d -lutinmatrix.menu.action=Copy/Paste -lutinmatrix.menu.action.copy=Copy -lutinmatrix.menu.action.copy.selection=Copy selection -lutinmatrix.menu.action.paste=Paste -lutinmatrix.menu.action.paste.position=Paste at current position -lutinmatrix.menu.csv=Import/Export file CSV -lutinmatrix.menu.csv.export.file=Export to file -lutinmatrix.menu.csv.export.selection=Export selection -lutinmatrix.menu.csv.import.file=Import from file -lutinmatrix.menu.csv.import.position=Import at current position -lutinmatrix.menu.option.semantics=Export/Copy with semantics +nuitonmatrix.create.matrix.button=New matrix +nuitonmatrix.create.matrix.message=Matrix size (separate by ';') +nuitonmatrix.create.matrix.title=New matrix +nuitonmatrix.error=Error +nuitonmatrix.error.clipboard.read=Cannot read clipboard +nuitonmatrix.error.clipboard.write=Cannot write clipboard +nuitonmatrix.error.file.read=Cannot read file +nuitonmatrix.error.file.write=Cannot write file +nuitonmatrix.invalid.element=Invalid element %s in matrix %s +nuitonmatrix.invalid.size=Invalid size\: 0 <\= %d <\= %d +nuitonmatrix.menu.action=Copy/Paste +nuitonmatrix.menu.action.copy=Copy +nuitonmatrix.menu.action.copy.selection=Copy selection +nuitonmatrix.menu.action.paste=Paste +nuitonmatrix.menu.action.paste.position=Paste at current position +nuitonmatrix.menu.csv=Import/Export file CSV +nuitonmatrix.menu.csv.export.file=Export to file +nuitonmatrix.menu.csv.export.selection=Export selection +nuitonmatrix.menu.csv.import.file=Import from file +nuitonmatrix.menu.csv.import.position=Import at current position +nuitonmatrix.menu.option.semantics=Export/Copy with semantics Modified: trunk/src/main/resources/i18n/nuiton-matrix-fr_FR.properties =================================================================== --- trunk/src/main/resources/i18n/nuiton-matrix-fr_FR.properties 2009-09-29 17:07:57 UTC (rev 178) +++ trunk/src/main/resources/i18n/nuiton-matrix-fr_FR.properties 2009-10-08 13:23:44 UTC (rev 179) @@ -1,21 +1,21 @@ -lutinmatrix.create.matrix.button=Cr\u00E9er une matrice -lutinmatrix.create.matrix.message=Dimensions de la matrice (s\u00E9par\u00E9es par ';') -lutinmatrix.create.matrix.title=Cr\u00E9er une matrice -lutinmatrix.error=Erreur -lutinmatrix.error.clipboard.read=Donn\u00E9e corrompu dans le bloc note -lutinmatrix.error.clipboard.write=Impossible d'\u00E9crire dans le bloc note -lutinmatrix.error.file.read=Impossible de lire le fichier -lutinmatrix.error.file.write=Impossible d'\u00E9crire dans le fichier -lutinmatrix.invalid.element=L'\u00E9l\u00E9ment demand\u00E9 %s n'existe pas dans la matrice %s -lutinmatrix.invalid.size=La dimension demand\u00E9e n'est pas correcte\: 0 <\= %d <\= %d -lutinmatrix.menu.action=Copier/Coller -lutinmatrix.menu.action.copy=Copier -lutinmatrix.menu.action.copy.selection=Copier la s\u00E9lection -lutinmatrix.menu.action.paste=Coller -lutinmatrix.menu.action.paste.position=Coller \u00E0 la position courante -lutinmatrix.menu.csv=Importer/Exporter fichier CSV -lutinmatrix.menu.csv.export.file=Exporter dans un fichier -lutinmatrix.menu.csv.export.selection=Exporter la s\u00E9lection -lutinmatrix.menu.csv.import.file=Importer depuis un fichier -lutinmatrix.menu.csv.import.position=Importer \u00E0 la position courante -lutinmatrix.menu.option.semantics=Exporter/Copier avec la s\u00E9mantique +nuitonmatrix.create.matrix.button=Cr\u00E9er une matrice +nuitonmatrix.create.matrix.message=Dimensions de la matrice (s\u00E9par\u00E9es par ';') +nuitonmatrix.create.matrix.title=Cr\u00E9er une matrice +nuitonmatrix.error=Erreur +nuitonmatrix.error.clipboard.read=Donn\u00E9e corrompu dans le bloc note +nuitonmatrix.error.clipboard.write=Impossible d'\u00E9crire dans le bloc note +nuitonmatrix.error.file.read=Impossible de lire le fichier +nuitonmatrix.error.file.write=Impossible d'\u00E9crire dans le fichier +nuitonmatrix.invalid.element=L'\u00E9l\u00E9ment demand\u00E9 %s n'existe pas dans la matrice %s +nuitonmatrix.invalid.size=La dimension demand\u00E9e n'est pas correcte\: 0 <\= %d <\= %d +nuitonmatrix.menu.action=Copier/Coller +nuitonmatrix.menu.action.copy=Copier +nuitonmatrix.menu.action.copy.selection=Copier la s\u00E9lection +nuitonmatrix.menu.action.paste=Coller +nuitonmatrix.menu.action.paste.position=Coller \u00E0 la position courante +nuitonmatrix.menu.csv=Importer/Exporter fichier CSV +nuitonmatrix.menu.csv.export.file=Exporter dans un fichier +nuitonmatrix.menu.csv.export.selection=Exporter la s\u00E9lection +nuitonmatrix.menu.csv.import.file=Importer depuis un fichier +nuitonmatrix.menu.csv.import.position=Importer \u00E0 la position courante +nuitonmatrix.menu.option.semantics=Exporter/Copier avec la s\u00E9mantique Modified: trunk/src/test/java/org/nuiton/math/matrix/MatrixNDTest.java =================================================================== --- trunk/src/test/java/org/nuiton/math/matrix/MatrixNDTest.java 2009-09-29 17:07:57 UTC (rev 178) +++ trunk/src/test/java/org/nuiton/math/matrix/MatrixNDTest.java 2009-10-08 13:23:44 UTC (rev 179) @@ -26,9 +26,9 @@ import java.util.Stack; import org.apache.commons.lang.time.DurationFormatUtils; -import org.nuiton.util.StringUtil; import org.junit.Assert; import org.junit.Test; +import org.nuiton.util.StringUtil; /** * MatrixNDTest.java @@ -718,7 +718,7 @@ mat1.setValue(0, 0, 0, 1.0E-7); mat1.setValue(1, 1, 0, 2); mat1.setValue(2, 1, 0, 5.0E-7); - List<Object> l = mat1.toList(); + List l = mat1.toList(); System.out.println(l); MatrixND mat2 = getFactory().create(new int[] { 3, 2, 1 }); @@ -730,9 +730,9 @@ Assert.assertEquals(mat1, mat2); String s = String.valueOf(l); - List<Object> l2 = convertStringToList2(s); - List<Object> l1 = convertStringToList1(s); - List<Object> l0 = convertStringToList0(s); + List l2 = convertStringToList2(s); + List l1 = convertStringToList1(s); + List l0 = convertStringToList0(s); System.out.println(l); System.out.println(l2); @@ -879,4 +879,20 @@ return result; } + @Test + public void testSemanticsArraySynthax() throws Exception { + + List<String>[] semantics = new ArrayList[3]; + semantics[0] = new ArrayList<String>(); + semantics[0].add("a"); + semantics[1] = new ArrayList<String>(); + semantics[1].add("b"); + semantics[2] = new ArrayList<String>(); + semantics[2].add("c"); + MatrixND mat = getFactory().create(semantics); + + // this don't work in 2.0.0 + // List<String> a = mat.getSemantics()[0]; + mat.setSemantic(0, new ArrayList<String>()); + } }