|
From: <de...@us...> - 2014-06-23 23:32:43
|
Revision: 8767
http://sourceforge.net/p/fudaa/svn/8767
Author: deniger
Date: 2014-06-23 23:32:35 +0000 (Mon, 23 Jun 2014)
Log Message:
-----------
Modified Paths:
--------------
trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/collection/CtuluListDouble.java
trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/GISAttribute.java
Modified: trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/collection/CtuluListDouble.java
===================================================================
--- trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/collection/CtuluListDouble.java 2014-06-23 23:32:19 UTC (rev 8766)
+++ trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/collection/CtuluListDouble.java 2014-06-23 23:32:35 UTC (rev 8767)
@@ -24,7 +24,7 @@
/**
* Une classe permettant de gerer un vecteur de double. Fonctionnalites sup: <br>
* Undo/Redo Max/min enregistrer automatiquement
- *
+ *
* @author Fred Deniger
* @version $Id: CtuluListDouble.java,v 1.1 2007-01-10 08:58:48 deniger Exp $
*/
@@ -231,9 +231,9 @@
}
/**
- * Pour creer un vecteur vide et ayant une capacite de 100 new(0,100). Pour creer un vecteur avec les 10 premiers
- * double a 0 et une capacite de 30 new(20,30)
- *
+ * Pour creer un vecteur vide et ayant une capacite de 100 new(0,100). Pour creer un vecteur avec les 10 premiers double a 0 et une capacite de 30
+ * new(20,30)
+ *
* @param _nb le nombre initial de double ajoute au vecteur
* @param _initCapacity la capacite du veceur
*/
@@ -352,9 +352,8 @@
}
/**
- * Fonction a utiliser avec pr\xE9caution: effectue des insert des values en suivant les valeurs dans l'ordre. Pour
- * fonctionner les points
- *
+ * Fonction a utiliser avec pr\xE9caution: effectue des insert des values en suivant les valeurs dans l'ordre. Pour fonctionner les points
+ *
* @param _idx les indices dans l'ordre
* @param _values les valeurs dans l'ordre
* @return true
@@ -412,6 +411,11 @@
for (int i = v.length - 1; i >= 0; i--) {
if (d[i] instanceof Number) {
v[i] = ((Number) d[i]).doubleValue();
+ } else if (d[i] instanceof CtuluCollectionDouble) {
+ CtuluCollectionDouble collection = (CtuluCollectionDouble) d[i];
+ if (collection.getSize() > 0) {
+ v[i] = collection.getValue(0);
+ }
}
}
addAll(v, _c);
@@ -503,7 +507,7 @@
/**
* Reinitialise tout depuis _m et envoie un evt.
- *
+ *
* @param _m le modele depuis lequel l'initialisation sera effectuee
*/
public void initWith(final CtuluListDouble _m) {
@@ -624,9 +628,9 @@
}
/**
- * Enleve les indices appartenant au tableau _i. Attention: aucune copie du tableau _i n'est effectuee. De plus il est
- * suppose que le tableau est correct : les indices appartiennent \xE0 [0,size()[ et tous differents.
- *
+ * Enleve les indices appartenant au tableau _i. Attention: aucune copie du tableau _i n'est effectuee. De plus il est suppose que le tableau est
+ * correct : les indices appartiennent \xE0 [0,size()[ et tous differents.
+ *
* @param _i i trie ordre naturel
* @param _c la
* @return true si modif
Modified: trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/GISAttribute.java
===================================================================
--- trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/GISAttribute.java 2014-06-23 23:32:19 UTC (rev 8766)
+++ trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/GISAttribute.java 2014-06-23 23:32:35 UTC (rev 8767)
@@ -77,6 +77,14 @@
name_ = _name;
}
+ protected boolean isKnownValue(Object initValue) {
+ if (initValue == null) {
+ return false;
+ }
+ Class c = initValue.getClass();
+ return Double.class.equals(c) || Integer.class.equals(c) || Long.class.equals(c) || String.class.equals(c) || Boolean.class.equals(c);
+ }
+
protected final Object createAtomicValues(final Object _initValues, final int _nbPt) {
// B.M. 23/03/2008 - Le nombre d'objets ne doit pas influer sur le modele d'attribut.
// if (_nbPt == 1) {
@@ -87,6 +95,8 @@
values = ((CtuluCollection) _initValues).getObjectValues();
} else if (_initValues instanceof Object[]) {
values = (Object[]) _initValues;
+ } else if (isKnownValue(_initValues)) {
+ values = new Object[]{_initValues};
}
if (values != null && values.length != _nbPt) {
final int max = Math.min(_nbPt, values.length);
@@ -98,6 +108,7 @@
values[i] = def;
}
}
+
return createAtomicModel(values, _nbPt);
}
@@ -186,7 +197,8 @@
}
@Override
- public Class getDataClass() {
+ public Class
+ getDataClass() {
return Object.class;
}
@@ -232,7 +244,8 @@
/**
* Calcul du hashcode. La surchage est necessaire, pour que 2 instances r\xE9pondant au contrat att1.equals(att2)==true aient le m\xEAme hashcode. En
- * particulier utilis\xE9 comme cl\xE9 des HashMap.<p> Nous supposons que le hashcode est unique calcul\xE9 comme ca...
+ * particulier utilis\xE9 comme cl\xE9 des HashMap.<p>
+ * Nous supposons que le hashcode est unique calcul\xE9 comme ca...
*/
@Override
public int hashCode() {
@@ -291,10 +304,12 @@
*/
@Override
public Comparator<?> getComparator() {
- if (Comparable.class.isAssignableFrom(getDataClass())) {
+ if (Comparable.class
+ .isAssignableFrom(getDataClass())) {
return new Comparator<Object>() {
@Override
- public int compare(Object o1, Object o2) {
+ public int compare(Object o1, Object o2
+ ) {
return ((Comparable) o1).compareTo(o2);
}
};
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|