You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sis.apache.org by de...@apache.org on 2013/05/03 18:31:03 UTC
svn commit: r1478867 [2/2] - in /sis/branches/JDK6: ./
sis-metadata/src/main/java/org/apache/sis/metadata/
sis-metadata/src/test/java/org/apache/sis/metadata/
sis-metadata/src/test/java/org/apache/sis/metadata/iso/citation/
sis-metadata/src/test/java/o...
Modified: sis/branches/JDK6/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyAccessorTest.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyAccessorTest.java?rev=1478867&r1=1478866&r2=1478867&view=diff
==============================================================================
--- sis/branches/JDK6/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyAccessorTest.java [UTF-8] (original)
+++ sis/branches/JDK6/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyAccessorTest.java [UTF-8] Fri May 3 16:31:02 2013
@@ -19,6 +19,7 @@ package org.apache.sis.metadata;
import java.util.Set;
import java.util.List;
import java.util.Arrays;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.Locale;
import java.util.Date;
@@ -52,6 +53,9 @@ import org.junit.Test;
import static java.util.Collections.singleton;
import static org.opengis.test.Assert.*;
import static org.apache.sis.test.TestUtilities.getSingleton;
+import static org.apache.sis.metadata.PropertyAccessor.APPEND;
+import static org.apache.sis.metadata.PropertyAccessor.RETURN_NULL;
+import static org.apache.sis.metadata.PropertyAccessor.RETURN_PREVIOUS;
/**
@@ -194,6 +198,7 @@ public final strictfp class PropertyAcce
/**
* Tests the {@link PropertyAccessor#descriptor(int)} method.
+ * This method delegates to some {@link PropertyInformationTest} methods.
*/
@Test
@DependsOnMethod("testConstructor")
@@ -204,7 +209,17 @@ public final strictfp class PropertyAcce
}
/**
- * Tests the {@link PropertyAccessor#get(int, Object)} method.
+ * Tests the {@link PropertyAccessor#get(int, Object)} method on the {@link HardCodedCitations#ISO}
+ * constant. The metadata object read by this test is:
+ *
+ * {@preformat text
+ * DefaultCitation
+ * ├─Title…………………………………… International Organization for Standardization
+ * ├─Alternate title………… ISO
+ * ├─Identifier
+ * │ └─Code…………………………… ISO
+ * └─Presentation form…… Document digital
+ * }
*/
@Test
@DependsOnMethod("testConstructor")
@@ -229,8 +244,19 @@ public final strictfp class PropertyAcce
}
/**
- * Tests the {@link PropertyAccessor#set(int, Object, Object, boolean)} method
- * with a value to be stored <cite>as-is</cite>.
+ * Tests the {@link PropertyAccessor#set(int, Object, Object, int)} method
+ * with a value to be stored <cite>as-is</cite> (without conversion).
+ * The metadata object created by this test is:
+ *
+ * {@preformat text
+ * DefaultCitation
+ * ├─Title………………………… Some title
+ * ├─Identifier
+ * │ ├─Code………………… Some ISBN code
+ * │ └─Authority
+ * │ └─Title…… ISBN
+ * └─ISBN…………………………… Some ISBN code
+ * }
*/
@Test
@DependsOnMethod("testGet")
@@ -242,21 +268,53 @@ public final strictfp class PropertyAcce
newValue = new SimpleInternationalString("Some title");
index = accessor.indexOf("title", true);
- assertNull("title", accessor.set(index, instance, newValue, true));
+ assertNull("title", accessor.set(index, instance, newValue, RETURN_PREVIOUS));
assertSame("title", newValue, accessor.get(index, instance));
assertSame("title", newValue, instance.getTitle());
newValue = "Some ISBN code";
index = accessor.indexOf("ISBN", true);
- assertNull("ISBN", accessor.set(index, instance, newValue, true));
+ assertNull("ISBN", accessor.set(index, instance, newValue, RETURN_PREVIOUS));
assertSame("ISBN", newValue, accessor.get(index, instance));
assertSame("ISBN", newValue, instance.getISBN());
}
/**
- * Tests the {@link PropertyAccessor#set(int, Object, Object, boolean)} method
+ * Tests the {@link PropertyAccessor#set(int, Object, Object, int)} method with a {@code null} value.
+ * Setting a property to {@code null} is equivalent to removing that property value.
+ * The metadata object used by this test (before removal) is:
+ *
+ * {@preformat text
+ * DefaultCitation
+ * └─Title………………………… Some title
+ * }
+ */
+ @Test
+ @DependsOnMethod("testSet")
+ public void testSetNull() {
+ final DefaultCitation instance = new DefaultCitation("Some title");
+ final PropertyAccessor accessor = createPropertyAccessor();
+ final InternationalString title = instance.getTitle();
+ final int index = accessor.indexOf("title", true);
+
+ assertEquals("Some title", title.toString()); // Sanity check before to continue.
+ assertNull("title", accessor.set(index, instance, null, RETURN_NULL));
+ assertNull("title", instance.getTitle());
+
+ instance.setTitle(title);
+ assertSame("title", title, accessor.set(index, instance, null, RETURN_PREVIOUS));
+ assertNull("title", instance.getTitle());
+ }
+
+ /**
+ * Tests the {@link PropertyAccessor#set(int, Object, Object, int)} method
* with a value that will need to be converted. The conversion will be from
- * {@link String} to {@link InternationalString}.
+ * {@link String} to {@link InternationalString}. The created metadata object is:
+ *
+ * {@preformat text
+ * DefaultCitation
+ * └─Title……………… Some title
+ * }
*/
@Test
@DependsOnMethod("testSet")
@@ -265,55 +323,110 @@ public final strictfp class PropertyAcce
final DefaultCitation instance = new DefaultCitation();
final PropertyAccessor accessor = createPropertyAccessor();
final int index = accessor.indexOf("title", true);
- final Object oldValue = accessor.set(index, instance, expected, true);
+ final Object oldValue = accessor.set(index, instance, expected, RETURN_PREVIOUS);
final Object value = accessor.get(index, instance);
- assertNull("title", oldValue);
+ assertNull ("title", oldValue);
assertInstanceOf("title", InternationalString.class, value);
- assertSame("title", expected, value.toString());
- assertSame("title", value, instance.getTitle());
+ assertSame ("title", expected, value.toString());
+ assertSame ("title", value, instance.getTitle());
+ }
+
+ /**
+ * Tests the {@link PropertyAccessor#set(int, Object, Object, int)} method when the value
+ * is a collection. The new collection shall replace the previous one (no merge expected).
+ * The metadata object created by this test after the replacement is:
+ *
+ * {@preformat text
+ * DefaultCitation
+ * ├─Title……………………………………………………… Ignored title
+ * ├─Alternate title (1 of 2)…… New title 1
+ * └─Alternate title (2 of 2)…… New title 2
+ * }
+ *
+ * @see #testSetInAppendMode()
+ */
+ @Test
+ @DependsOnMethod("testSet")
+ public void testSetCollection() {
+ final DefaultCitation instance = new DefaultCitation("Ignored title");
+ final List<InternationalString> oldTitles = Arrays.<InternationalString>asList(
+ new SimpleInternationalString("Old title 1"),
+ new SimpleInternationalString("Old title 2"));
+ final List<InternationalString> newTitles = Arrays.<InternationalString>asList(
+ new SimpleInternationalString("New title 1"),
+ new SimpleInternationalString("New title 2"));
+
+ // Set the alternate titles.
+ instance.setAlternateTitles(oldTitles);
+ final PropertyAccessor accessor = createPropertyAccessor();
+ final int index = accessor.indexOf("alternateTitles", true);
+ final Object oldValue = accessor.set(index, instance, newTitles, RETURN_PREVIOUS);
+ final Object newValue = accessor.get(index, instance);
+
+ // Verify the values.
+ assertEquals("set(…, RETURN_PREVIOUS)", oldTitles, oldValue);
+ assertEquals("get(…)", newTitles, newValue);
+ assertSame ("alternateTitles", newValue, instance.getAlternateTitles());
+ assertEquals("title", "Ignored title", instance.getTitle().toString());
}
/**
- * Tests the {@link PropertyAccessor#set(int, Object, Object, boolean)} method
+ * Tests the {@link PropertyAccessor#set(int, Object, Object, int)} method
* when adding elements in a collection, without conversion of type.
+ * The metadata object created by this test is:
+ *
+ * {@preformat text
+ * DefaultCitation
+ * ├─Title……………………………………………………… Ignored title
+ * ├─Alternate title (1 of 2)…… An other title
+ * └─Alternate title (2 of 2)…… Yet an other title
+ * }
*/
@Test
@DependsOnMethod("testSet")
- public void testSetInCollection() {
- testSetInCollection(false);
+ public void testSetIntoCollection() {
+ testSetIntoCollection(false);
}
/**
- * Tests the {@link PropertyAccessor#set(int, Object, Object, boolean)} method
+ * Tests the {@link PropertyAccessor#set(int, Object, Object, int)} method
* when adding elements in a collection, with conversion of type.
+ * The metadata object created by this test is:
+ *
+ * {@preformat text
+ * DefaultCitation
+ * ├─Title……………………………………………………… Ignored title
+ * ├─Alternate title (1 of 2)…… An other title
+ * └─Alternate title (2 of 2)…… Yet an other title
+ * }
*/
@Test
- @DependsOnMethod("testSet")
- public void testSetInCollectionWithConversion() {
- testSetInCollection(true);
+ @DependsOnMethod("testSetIntoCollection")
+ public void testSetIntoCollectionWithConversion() {
+ testSetIntoCollection(true);
}
/**
- * Tests the {@link PropertyAccessor#set(int, Object, Object, boolean)} method
+ * Tests the {@link PropertyAccessor#set(int, Object, Object, int)} method
* when adding elements in a collection, with or without conversion of type.
*/
- private void testSetInCollection(final boolean conversion) {
+ private static void testSetIntoCollection(final boolean conversion) {
final String text1 = "An other title";
final String text2 = "Yet an other title";
final InternationalString title1 = new SimpleInternationalString(text1);
final InternationalString title2 = new SimpleInternationalString(text2);
- final DefaultCitation instance = new DefaultCitation();
+ final DefaultCitation instance = new DefaultCitation("Ignored title");
final PropertyAccessor accessor = createPropertyAccessor();
final int index = accessor.indexOf("alternateTitles", true);
// Insert the first value. Old collection shall be empty.
- Object oldValue = accessor.set(index, instance, conversion ? text1 : title1, true);
+ Object oldValue = accessor.set(index, instance, conversion ? text1 : title1, RETURN_PREVIOUS);
assertInstanceOf("alternateTitles", Collection.class, oldValue);
assertTrue("alternateTitles", ((Collection<?>) oldValue).isEmpty());
// Insert the second value. Old collection shall contains the first value.
- oldValue = accessor.set(index, instance, conversion ? text2 : title2, true);
+ oldValue = accessor.set(index, instance, conversion ? text2 : title2, RETURN_PREVIOUS);
assertInstanceOf("alternateTitles", Collection.class, oldValue);
oldValue = getSingleton((Collection<?>) oldValue);
assertSame("alternateTitles", text1, oldValue.toString());
@@ -324,26 +437,64 @@ public final strictfp class PropertyAcce
// Check final collection content.
final List<InternationalString> expected = Arrays.asList(title1, title2);
assertEquals("alternateTitles", expected, accessor.get(index, instance));
+ assertEquals("title", "Ignored title", instance.getTitle().toString());
}
/**
- * Tests the {@link PropertyAccessor#shallowCopy(Object, Object)} method.
+ * Tests the {@link PropertyAccessor#set(int, Object, Object, int)} method in
+ * {@link PropertyAccessor#APPEND} mode. In this mode, new collections
+ * are added into existing collections instead than replacing them.
+ * The metadata object created by this test after the merge is:
+ *
+ * {@preformat text
+ * DefaultCitation
+ * ├─Title……………………………………………………… Added title
+ * ├─Alternate title (1 of 4)…… Old title 1
+ * ├─Alternate title (2 of 4)…… Old title 2
+ * ├─Alternate title (3 of 4)…… New title 1
+ * └─Alternate title (4 of 4)…… New title 2
+ * }
+ *
+ * @see #testSetCollection()
*/
- @Test
- public void testShallowCopy() {
- final DefaultCitation original = HardCodedCitations.ISO;
- final DefaultCitation copy = new DefaultCitation();
+ public void testSetInAppendMode() {
+ final DefaultCitation instance = new DefaultCitation();
+ final List<InternationalString> oldTitles = Arrays.<InternationalString>asList(
+ new SimpleInternationalString("Old title 1"),
+ new SimpleInternationalString("Old title 2"));
+ final List<InternationalString> newTitles = Arrays.<InternationalString>asList(
+ new SimpleInternationalString("New title 1"),
+ new SimpleInternationalString("New title 2"));
+ final List<InternationalString> merged = new ArrayList<InternationalString>(oldTitles);
+ assertTrue(merged.addAll(newTitles));
+
+ // Set the title.
+ instance.setAlternateTitles(oldTitles);
final PropertyAccessor accessor = createPropertyAccessor();
- assertTrue("The copy should have modified the destination.", accessor.shallowCopy(original, copy));
- assertEquals("International Organization for Standardization", copy.getTitle().toString());
+ final int titleIndex = accessor.indexOf("title", true);
+ Object titleChanged = accessor.set(titleIndex, instance, "Added title", APPEND);
- Collection<?> values = copy.getAlternateTitles();
- assertNotSame("Collections shall have been copied.", original.getAlternateTitles(), values);
- assertEquals("ISO", getSingleton(values).toString());
-
- values = copy.getPresentationForms();
- assertNotSame("Collections shall have been copied.", original.getPresentationForms(), values);
- assertEquals(PresentationForm.DOCUMENT_DIGITAL, getSingleton(values));
+ // Set the alternate titles.
+ final int index = accessor.indexOf("alternateTitles", true);
+ final Object changed = accessor.set(index, instance, newTitles, APPEND);
+ final Object newValue = accessor.get(index, instance);
+
+ // Verify the values.
+ assertEquals("set(…, APPEND)", Boolean.TRUE, titleChanged);
+ assertEquals("set(…, APPEND)", Boolean.TRUE, changed);
+ assertEquals("get(…)", merged, newValue);
+ assertSame ("alternateTitles", newValue, instance.getAlternateTitles());
+ assertEquals("title", "Added title", instance.getTitle().toString());
+
+ // Test setting again the title to the same value.
+ titleChanged = accessor.set(titleIndex, instance, "Added title", APPEND);
+ assertEquals("set(…, APPEND)", Boolean.FALSE, titleChanged);
+ assertEquals("title", "Added title", instance.getTitle().toString());
+
+ // Test setting the title to a different value.
+ titleChanged = accessor.set(titleIndex, instance, "Different title", APPEND);
+ assertNull("set(…, APPEND)", titleChanged); // Operation shall be refused.
+ assertEquals("title", "Added title", instance.getTitle().toString());
}
/**
@@ -372,7 +523,7 @@ public final strictfp class PropertyAcce
HardCodedCitations.assertIdentifiersFor("EPSG", (Collection<?>) target);
// Set the identifiers to null, which should clear the collection.
- assertEquals("Expected the previous value.", source, accessor.set(index, citation, null, true));
+ assertEquals("Expected the previous value.", source, accessor.set(index, citation, null, RETURN_PREVIOUS));
final Object value = accessor.get(index, citation);
assertNotNull("Should have replaced null by an empty collection.", value);
assertTrue("Should have replaced null by an empty collection.", ((Collection<?>) value).isEmpty());
Modified: sis/branches/JDK6/sis-metadata/src/test/java/org/apache/sis/metadata/iso/citation/DefaultCitationDateTest.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/sis-metadata/src/test/java/org/apache/sis/metadata/iso/citation/DefaultCitationDateTest.java?rev=1478867&r1=1478866&r2=1478867&view=diff
==============================================================================
--- sis/branches/JDK6/sis-metadata/src/test/java/org/apache/sis/metadata/iso/citation/DefaultCitationDateTest.java [UTF-8] (original)
+++ sis/branches/JDK6/sis-metadata/src/test/java/org/apache/sis/metadata/iso/citation/DefaultCitationDateTest.java [UTF-8] Fri May 3 16:31:02 2013
@@ -41,7 +41,7 @@ public final strictfp class DefaultCitat
* @see <a href="http://jira.geotoolkit.org/browse/GEOTK-170">GEOTK-170</a>
*/
@Test
- public void testShallowCopy() {
+ public void testCopyConstructor() {
final CitationDate original = new CitationDate() {
@Override public Date getDate() {return new Date(1305716658508L);}
@Override public DateType getDateType() {return DateType.CREATION;}
Modified: sis/branches/JDK6/sis-metadata/src/test/java/org/apache/sis/test/suite/MetadataTestSuite.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/sis-metadata/src/test/java/org/apache/sis/test/suite/MetadataTestSuite.java?rev=1478867&r1=1478866&r2=1478867&view=diff
==============================================================================
--- sis/branches/JDK6/sis-metadata/src/test/java/org/apache/sis/test/suite/MetadataTestSuite.java [UTF-8] (original)
+++ sis/branches/JDK6/sis-metadata/src/test/java/org/apache/sis/test/suite/MetadataTestSuite.java [UTF-8] Fri May 3 16:31:02 2013
@@ -44,6 +44,7 @@ import org.junit.BeforeClass;
org.apache.sis.metadata.ValueMapTest.class,
org.apache.sis.metadata.MetadataTreeChildrenTest.class,
org.apache.sis.metadata.MetadataTreeNodeTest.class,
+ org.apache.sis.metadata.MetadataTreeTableTest.class,
org.apache.sis.metadata.MetadataStandardTest.class,
org.apache.sis.metadata.PrunerTest.class,
org.apache.sis.metadata.iso.AllMetadataTest.class
Modified: sis/branches/JDK6/sis-utility/src/main/java/org/apache/sis/util/ObjectConverters.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/sis-utility/src/main/java/org/apache/sis/util/ObjectConverters.java?rev=1478867&r1=1478866&r2=1478867&view=diff
==============================================================================
--- sis/branches/JDK6/sis-utility/src/main/java/org/apache/sis/util/ObjectConverters.java [UTF-8] (original)
+++ sis/branches/JDK6/sis-utility/src/main/java/org/apache/sis/util/ObjectConverters.java [UTF-8] Fri May 3 16:31:02 2013
@@ -94,10 +94,33 @@ public final class ObjectConverters exte
public static <S,T> ObjectConverter<? super S, ? extends T> find(final Class<S> source, final Class<T> target)
throws UnconvertibleObjectException
{
+ ArgumentChecks.ensureNonNull("source", source);
+ ArgumentChecks.ensureNonNull("target", target);
return SystemRegistry.INSTANCE.find(source, target);
}
/**
+ * Converts the given value to the given type. This convenience method shall be used only for
+ * rare conversions. For converting many instances between the same source and target classes,
+ * consider invoking {@link #find(Class, Class)} instead in order to reuse the same converter
+ * for all values to convert.
+ *
+ * @param <T> The type of the {@code target} class.
+ * @param value The value to convert, or {@code null}.
+ * @param target The target class.
+ * @return The converted value (may be {@code null}).
+ * @throws UnconvertibleObjectException if the given value can not be converted.
+ */
+ @SuppressWarnings({"unchecked","rawtypes"})
+ public static <T> T convert(Object value, final Class<T> target) throws UnconvertibleObjectException {
+ ArgumentChecks.ensureNonNull("target", target);
+ if (!target.isInstance(value) && value != null) {
+ value = ((ObjectConverter) SystemRegistry.INSTANCE.find(value.getClass(), target)).convert(value);
+ }
+ return (T) value;
+ }
+
+ /**
* Returns a set whose elements are derived <cite>on-the-fly</cite> from the given set.
* Conversions from the original elements to the derived elements are performed when needed
* by invoking the {@link ObjectConverter#convert(Object)} method on the given converter.
Modified: sis/branches/JDK6/sis-utility/src/main/java/org/apache/sis/util/collection/DefaultTreeTable.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/sis-utility/src/main/java/org/apache/sis/util/collection/DefaultTreeTable.java?rev=1478867&r1=1478866&r2=1478867&view=diff
==============================================================================
--- sis/branches/JDK6/sis-utility/src/main/java/org/apache/sis/util/collection/DefaultTreeTable.java [UTF-8] (original)
+++ sis/branches/JDK6/sis-utility/src/main/java/org/apache/sis/util/collection/DefaultTreeTable.java [UTF-8] Fri May 3 16:31:02 2013
@@ -543,8 +543,9 @@ public class DefaultTreeTable implements
/**
* Adds a new child in the {@linkplain #getChildren() children list}.
- * The default implementation delegates to {@code Node(Node)} constructor,
- * which has the following implications:
+ * The default implementation first checks that this node is not a leaf,
+ * then delegates to the {@code Node(Node)} constructor.
+ * That constructor call has the following implications:
*
* <ul>
* <li>The new node inherits the columns of this node, on the assumption that
@@ -553,9 +554,14 @@ public class DefaultTreeTable implements
* </ul>
*
* Subclasses may override this method with different behavior.
+ *
+ * @throws UnsupportedOperationException If this node {@linkplain #isLeaf() is a leaf}.
*/
@Override
public Node newChild() {
+ if (isLeaf()) {
+ throw new UnsupportedOperationException(Errors.format(Errors.Keys.NodeIsLeaf_1, this));
+ }
return new Node(this);
}
Modified: sis/branches/JDK6/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.java?rev=1478867&r1=1478866&r2=1478867&view=diff
==============================================================================
--- sis/branches/JDK6/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.java [UTF-8] (original)
+++ sis/branches/JDK6/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.java [UTF-8] Fri May 3 16:31:02 2013
@@ -331,6 +331,11 @@ public final class Errors extends Indexe
public static final int NodeHasNoParent_1 = 34;
/**
+ * Node “{0}” is a leaf.
+ */
+ public static final int NodeIsLeaf_1 = 90;
+
+ /**
* No “{0}” node found.
*/
public static final int NodeNotFound_1 = 39;
Modified: sis/branches/JDK6/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.properties
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.properties?rev=1478867&r1=1478866&r2=1478867&view=diff
==============================================================================
--- sis/branches/JDK6/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.properties [ISO-8859-1] (original)
+++ sis/branches/JDK6/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.properties [ISO-8859-1] Fri May 3 16:31:02 2013
@@ -75,6 +75,7 @@ NegativeArgument_2 = Argume
NodeChildOfItself_1 = Node \u201c{0}\u201d can not be a child of itself.
NodeHasAnotherParent_1 = Node \u201c{0}\u201d already has another parent.
NodeHasNoParent_1 = Node \u201c{0}\u201d has no parent.
+NodeIsLeaf_1 = Node \u201c{0}\u201d is a leaf.
NodeNotFound_1 = No \u201c{0}\u201d node found.
NonEquilibratedParenthesis_2 = Missing a \u2018{1}\u2019 parenthesis in \u201c{0}\u201d.
NonInvertibleConversion = Conversion is not invertible.
Modified: sis/branches/JDK6/sis-utility/src/main/java/org/apache/sis/util/resources/Errors_fr.properties
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/sis-utility/src/main/java/org/apache/sis/util/resources/Errors_fr.properties?rev=1478867&r1=1478866&r2=1478867&view=diff
==============================================================================
--- sis/branches/JDK6/sis-utility/src/main/java/org/apache/sis/util/resources/Errors_fr.properties [ISO-8859-1] (original)
+++ sis/branches/JDK6/sis-utility/src/main/java/org/apache/sis/util/resources/Errors_fr.properties [ISO-8859-1] Fri May 3 16:31:02 2013
@@ -65,6 +65,7 @@ NegativeArgument_2 = L\u201
NodeChildOfItself_1 = Le n\u0153ud \u201c{0}\u201d ne peut pas \u00eatre un enfant de lui-m\u00eame.
NodeHasAnotherParent_1 = Le n\u0153ud \u201c{0}\u201d a d\u00e9j\u00e0 un autre parent.
NodeHasNoParent_1 = Le n\u0153ud \u201c{0}\u201d n\u2019a pas de parent.
+NodeIsLeaf_1 = Le n\u0153ud \u201c{0}\u201d est une feuille.
NodeNotFound_1 = Aucun n\u0153ud \u201c{0}\u201d n\u2019a \u00e9t\u00e9 trouv\u00e9.
NonEquilibratedParenthesis_2 = Il manque une parenth\u00e8se \u2018{1}\u2019 dans \u201c{0}\u201d.
NonInvertibleConversion = La conversion n\u2019est pas inversible.