Author: desruisseaux
Date: Sat Dec 15 10:02:23 2012
New Revision: 1422213
URL: http://svn.apache.org/viewvc?rev=1422213&view=rev
Log:
Initial port of AbstractDirectPosition.
Added:
sis/branches/JDK7/sis-referencing/src/main/java/org/apache/sis/geometry/
sis/branches/JDK7/sis-referencing/src/main/java/org/apache/sis/geometry/AbstractDirectPosition.java
(with props)
sis/branches/JDK7/sis-referencing/src/main/java/org/apache/sis/geometry/package-info.java
(with props)
Modified:
sis/branches/JDK7/sis-referencing/pom.xml
sis/branches/JDK7/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.java
sis/branches/JDK7/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.properties
sis/branches/JDK7/sis-utility/src/main/java/org/apache/sis/util/resources/Errors_fr.properties
Modified: sis/branches/JDK7/sis-referencing/pom.xml
URL:
http://svn.apache.org/viewvc/sis/branches/JDK7/sis-referencing/pom.xml?rev=1422213&r1=1422212&r2=1422213&view=diff
==============================================================================
--- sis/branches/JDK7/sis-referencing/pom.xml (original)
+++ sis/branches/JDK7/sis-referencing/pom.xml Sat Dec 15 10:02:23 2012
@@ -33,11 +33,32 @@
<artifactId>sis-referencing</artifactId>
<packaging>bundle</packaging>
- <name>Apache SIS core</name>
+ <name>Apache SIS referencing</name>
<url>http://incubator.apache.org/sis/</url>
+
+ <!-- ===========================================================
+ Dependencies
+ =========================================================== -->
<dependencies>
<dependency>
+ <groupId>org.apache.sis</groupId>
+ <artifactId>sis-utility</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.opengis</groupId>
+ <artifactId>geoapi-pending</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.opengis</groupId>
+ <artifactId>geoapi-conformance</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>net.jcip</groupId>
+ <artifactId>jcip-annotations</artifactId>
+ </dependency>
+ <dependency>
<groupId>org.geonames</groupId>
<artifactId>georss-rome</artifactId>
</dependency>
Added:
sis/branches/JDK7/sis-referencing/src/main/java/org/apache/sis/geometry/AbstractDirectPosition.java
URL:
http://svn.apache.org/viewvc/sis/branches/JDK7/sis-referencing/src/main/java/org/apache/sis/geometry/AbstractDirectPosition.java?rev=1422213&view=auto
==============================================================================
---
sis/branches/JDK7/sis-referencing/src/main/java/org/apache/sis/geometry/AbstractDirectPosition.java
(added)
+++
sis/branches/JDK7/sis-referencing/src/main/java/org/apache/sis/geometry/AbstractDirectPosition.java
Sat Dec 15 10:02:23 2012
@@ -0,0 +1,348 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.sis.geometry;
+
+import java.util.Arrays;
+import java.util.Objects;
+import org.opengis.geometry.DirectPosition;
+import org.opengis.geometry.MismatchedDimensionException;
+import org.opengis.geometry.MismatchedReferenceSystemException;
+import org.opengis.referencing.crs.CoordinateReferenceSystem;
+import org.apache.sis.util.Utilities;
+import org.apache.sis.util.CharSequences;
+import org.apache.sis.util.resources.Errors;
+
+import static java.lang.Double.doubleToLongBits;
+import static org.apache.sis.util.Arrays.resize;
+import static org.apache.sis.util.StringBuilders.trimFractionalPart;
+
+
+/**
+ * Base class for {@linkplain DirectPosition direct position} implementations.
+ * This base class provides default implementations for {@link #toString()},
+ * {@link #equals(Object)} and {@link #hashCode()} methods.
+ *
+ * <p>This class do not holds any state. The decision to implement {@link
java.io.Serializable}
+ * or {@link Cloneable} interfaces is left to implementors.</p>
+ *
+ * @author Martin Desruisseaux (IRD, Geomatys)
+ * @since 0.3 (derived from geotk-2.4)
+ * @version 0.3
+ * @module
+ */
+public abstract class AbstractDirectPosition implements DirectPosition {
+ /**
+ * Constructs a direct position.
+ */
+ protected AbstractDirectPosition() {
+ }
+
+ /**
+ * Returns always {@code this}, the direct position for this
+ * {@linkplain org.opengis.geometry.coordinate.Position position}.
+ */
+ @Override
+ public DirectPosition getDirectPosition() {
+ return this;
+ }
+
+ /**
+ * Sets this direct position to the given position. If the given position
is
+ * {@code null}, then all ordinate values are set to {@link Double#NaN
NaN}.
+ *
+ * <p>If this position and the given position have a non-null CRS, then
the default implementation
+ * requires the CRS to be {@linkplain Utilities#equalsIgnoreMetadata
equals (ignoring metadata)},
+ * otherwise a {@link MismatchedReferenceSystemException} is thrown.
However subclass may choose
+ * to assign the CRS of this position to the CRS of the given position.</p>
+ *
+ * @param position The new position, or {@code null}.
+ * @throws MismatchedDimensionException If the given position doesn't have
the expected dimension.
+ * @throws MismatchedReferenceSystemException If the given position
doesn't use the expected CRS.
+ */
+ public void setLocation(final DirectPosition position)
+ throws MismatchedDimensionException,
MismatchedReferenceSystemException
+ {
+ final int dimension = getDimension();
+ if (position != null) {
+ ensureDimensionMatch("position", position.getDimension(),
dimension);
+ final CoordinateReferenceSystem crs =
getCoordinateReferenceSystem();
+ if (crs != null) {
+ final CoordinateReferenceSystem other =
position.getCoordinateReferenceSystem();
+ if (other != null && !Utilities.equalsIgnoreMetadata(crs,
other)) {
+ throw new
MismatchedReferenceSystemException(Errors.format(Errors.Keys.MismatchedCRS));
+ }
+ }
+ for (int i=0; i<dimension; i++) {
+ setOrdinate(i, position.getOrdinate(i));
+ }
+ } else {
+ for (int i=0; i<dimension; i++) {
+ setOrdinate(i, Double.NaN);
+ }
+ }
+ }
+
+ /**
+ * Returns a sequence of numbers that hold the coordinate of this position
in its
+ * reference system.
+ *
+ * @return The coordinates.
+ */
+ @Override
+ public double[] getCoordinate() {
+ final double[] ordinates = new double[getDimension()];
+ for (int i=0; i<ordinates.length; i++) {
+ ordinates[i] = getOrdinate(i);
+ }
+ return ordinates;
+ }
+
+ /**
+ * Ensures that the given CRS, if non-null, has the expected number of
dimensions.
+ *
+ * @param crs The coordinate reference system to check, or {@code null}.
+ * @param expected The expected number of dimensions.
+ * @throws MismatchedDimensionException if the CRS dimension is not valid.
+ */
+ static void ensureDimensionMatch(final CoordinateReferenceSystem crs,
+ final int expected) throws MismatchedDimensionException
+ {
+ if (crs != null) {
+ final int dimension = crs.getCoordinateSystem().getDimension();
+ if (dimension != expected) {
+ throw new
MismatchedDimensionException(Errors.format(Errors.Keys.MismatchedDimension_3,
+ crs.getName().getCode(), dimension, expected));
+ }
+ }
+ }
+
+ /**
+ * Ensures that the given number of dimensions is equals to the expected
value.
+ *
+ * @param name The name of the argument to check.
+ * @param dimension The object dimension.
+ * @param expectedDimension The Expected dimension for the object.
+ * @throws MismatchedDimensionException if the object doesn't have the
expected dimension.
+ */
+ static void ensureDimensionMatch(final String name, final int dimension,
+ final int expectedDimension) throws MismatchedDimensionException
+ {
+ if (dimension != expectedDimension) {
+ throw new
MismatchedDimensionException(Errors.format(Errors.Keys.MismatchedDimension_3,
+ name, dimension, expectedDimension));
+ }
+ }
+
+ /**
+ * Formats this position in the <cite>Well Known Text</cite> (WKT) format.
+ * The returned string is like below, where {@code xâ}, {@code xâ},
{@code xâ}, <i>etc.</i>
+ * are the {@linkplain #getOrdinate(int) ordinate} values at index 0, 1,
2, <i>etc.</i>:
+ *
+ * {@preformat wkt
+ * POINT(xâ, xâ, xâ, â¦)
+ * }
+ *
+ * The output of this method can be parsed by the by the {@link
GeneralDirectPosition} constructor.
+ *
+ * @return This position as a {@code POINT} in <cite>Well Known
Text</cite> (WKT) format.
+ */
+ @Override
+ public String toString() {
+ return toString(this);
+ }
+
+ /**
+ * Formats a {@code POINT} element from a given direct position.
+ * This method formats the given position in the <cite>Well Known
Text</cite> (WKT) format.
+ * The returned string is like below, where {@code xâ}, {@code xâ},
{@code xâ}, <i>etc.</i>
+ * are the {@linkplain #getOrdinate(int) ordinate} values at index 0, 1,
2, <i>etc.</i>:
+ *
+ * {@preformat wkt
+ * POINT(xâ, xâ, xâ, â¦)
+ * }
+ *
+ * The output of this method can be parsed by the by the {@link
GeneralDirectPosition} constructor.
+ *
+ * @param position The position to format.
+ * @return The position as a {@code POINT} in <cite>Well Known Text</cite>
(WKT) format.
+ *
+ * @see GeneralDirectPosition#GeneralDirectPosition(String)
+ * @see org.apache.sis.measure.CoordinateFormat
+ * @see org.apache.sis.io.wkt
+ */
+ public static String toString(final DirectPosition position) {
+ final StringBuilder buffer = new StringBuilder(32).append("POINT(");
+ final int dimension = position.getDimension();
+ for (int i=0; i<dimension; i++) {
+ if (i != 0) {
+ buffer.append(' ');
+ }
+ trimFractionalPart(buffer.append(position.getOrdinate(i)));
+ }
+ return buffer.append(')').toString();
+ }
+
+ /**
+ * Parses the given WKT.
+ *
+ * @param wkt The WKT to parse.
+ * @return The ordinates, or {@code null) if none.
+ * @throws NumberFormatException If a number can not be parsed.
+ * @throws IllegalArgumentException If the parenthesis are not balanced.
+ */
+ static double[] parse(final CharSequence wkt) throws
NumberFormatException, IllegalArgumentException {
+ /*
+ * Ignore leading and trailing whitespaces, including line feeds.
After this step,
+ * line feeds in the middle of a POINT element are considered errors.
+ */
+ int length = CharSequences.skipTrailingWhitespaces(wkt, 0,
wkt.length());
+ int i = CharSequences.skipLeadingWhitespaces(wkt, 0, length);
+ int c;
+ /*
+ * Skip the leading identifier (typically "POINT" or "POINT ZM") and
the following
+ * whitespaces, if any. If we reach the end of string before to find a
character which
+ * is neither a space character or an identifier part, then return
null.
+ */
+ while (true) {
+ if (i >= length) return null;
+ c = Character.codePointAt(wkt, i);
+ if (Character.isUnicodeIdentifierStart(c)) {
+ do {
+ i += Character.charCount(c);
+ if (i >= length) return null;
+ c = Character.codePointAt(wkt, i);
+ } while (Character.isUnicodeIdentifierPart(c));
+ }
+ if (!Character.isSpaceChar(c)) break;
+ i += Character.charCount(c);
+ }
+ /*
+ * Skip the opening parenthesis, and the following whitespaces if any.
+ * If we find an opening parenthesis, search for the closing
parenthesis.
+ */
+ if (c == '(' || c == '[') {
+ i += Character.charCount(c);
+ final char close = (c == '(') ? ')' : ']';
+ final int pos = CharSequences.lastIndexOf(wkt, close, i, length);
+ if (pos != --length) {
+ final int key;
+ final Object[] args;
+ if (pos < 0) {
+ key = Errors.Keys.NonEquilibratedParenthesis_2;
+ args = new Object[] {wkt, close};
+ } else {
+ key = Errors.Keys.UnparsableStringForClass_3;
+ args = new Object[] {"POINT", wkt, wkt.subSequence(pos+1,
length+1)};
+ }
+ throw new IllegalArgumentException(Errors.format(key, args));
+ }
+ }
+ /*
+ * Index i is either at the beginning of a number or at the closing
parenthesis.
+ * Now process every space-separated ordinates until we reach the
closing parenthesis
+ * or the end of string.
+ */
+ double[] ordinates = new double[2];
+ int dimension = 0;
+parse: while (i < length) {
+ final int start = i;
+ do {
+ i += Character.charCount(c);
+ if (i >= length) {
+ c = 0;
+ break;
+ }
+ c = Character.codePointAt(wkt, i);
+ } while (!Character.isSpaceChar(c));
+ final double value = Double.parseDouble(wkt.subSequence(start,
i).toString());
+ if (dimension == ordinates.length) {
+ ordinates = Arrays.copyOf(ordinates, dimension*2);
+ }
+ ordinates[dimension++] = value;
+ /*
+ * Skip whitespaces. If we reach the end of string without finding
+ * the closing parenthesis, check if we were suppose to have any.
+ */
+ while (Character.isSpaceChar(c)) {
+ i += Character.charCount(c);
+ if (i >= length) {
+ break parse;
+ }
+ c = Character.codePointAt(wkt, i);
+ }
+ }
+ return resize(ordinates, dimension);
+ }
+
+ /**
+ * Returns a hash value for this coordinate.
+ *
+ * @return A hash code value for this position.
+ */
+ @Override
+ public int hashCode() {
+ return hashCode(this);
+ }
+
+ /**
+ * Returns a hash value for the given coordinate.
+ */
+ static int hashCode(final DirectPosition position) {
+ final int dimension = position.getDimension();
+ int code = 1;
+ for (int i=0; i<dimension; i++) {
+ final long bits = doubleToLongBits(position.getOrdinate(i));
+ code = 31 * code + (((int) bits) ^ (int) (bits >>> 32));
+ }
+ final CoordinateReferenceSystem crs =
position.getCoordinateReferenceSystem();
+ if (crs != null) {
+ code += crs.hashCode();
+ }
+ return code;
+ }
+
+ /**
+ * Returns {@code true} if the specified object is also a
+ * {@linkplain DirectPosition direct position} with equal
+ * {@linkplain #getCoordinate() coordinate} array and equal
+ * {@linkplain #getCoordinateReferenceSystem CRS}.
+ *
+ * @param object The object to compare with this position.
+ * @return {@code true} if the given object is equal to this position.
+ */
+ @Override
+ public boolean equals(final Object object) {
+ if (object instanceof DirectPosition) {
+ final DirectPosition that = (DirectPosition) object;
+ final int dimension = getDimension();
+ if (dimension == that.getDimension()) {
+ for (int i=0; i<dimension; i++) {
+ if (doubleToLongBits(getOrdinate(i)) !=
doubleToLongBits(that.getOrdinate(i))) {
+ return false;
+ }
+ }
+ if (Objects.equals(this.getCoordinateReferenceSystem(),
+ that.getCoordinateReferenceSystem()))
+ {
+ assert hashCode() == that.hashCode() : this;
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+}
Propchange:
sis/branches/JDK7/sis-referencing/src/main/java/org/apache/sis/geometry/AbstractDirectPosition.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
sis/branches/JDK7/sis-referencing/src/main/java/org/apache/sis/geometry/AbstractDirectPosition.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added:
sis/branches/JDK7/sis-referencing/src/main/java/org/apache/sis/geometry/package-info.java
URL:
http://svn.apache.org/viewvc/sis/branches/JDK7/sis-referencing/src/main/java/org/apache/sis/geometry/package-info.java?rev=1422213&view=auto
==============================================================================
---
sis/branches/JDK7/sis-referencing/src/main/java/org/apache/sis/geometry/package-info.java
(added)
+++
sis/branches/JDK7/sis-referencing/src/main/java/org/apache/sis/geometry/package-info.java
Sat Dec 15 10:02:23 2012
@@ -0,0 +1,82 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Basic geometric objects (envelopes and direct positions). Every geometry
objects are associated
+ * with a {@linkplain org.apache.sis.referencing.crs.AbstractCRS Coordinate
Reference System},
+ * which may have an arbitrary number of dimensions. However a few specialized
classes restrict
+ * the CRS to a fixed number of dimensions only. The table below summarizes
the most common
+ * objects, and list the Java2D classes that are conceptually equivalent.
+ *
+ * <table class="sis">
+ * <tr>
+ * <th>Purpose</th>
+ * <th>Any dimension</th>
+ * <th>One dimension</th>
+ * <th>Two dimensions</th>
+ * <th>Java2D equivalence</th>
+ * </tr><tr>
+ * <td>A point in a multi-dimensional space</td>
+ * <td>{@link org.apache.sis.geometry.GeneralDirectPosition}</td>
+ * <td>{@link org.apache.sis.geometry.DirectPosition1D}</td>
+ * <td>{@link org.apache.sis.geometry.DirectPosition2D}</td>
+ * <td>{@link java.awt.geom.Point2D}</td>
+ * </tr><tr>
+ * <td>A box in a multi-dimensional space</td>
+ * <td>{@link org.apache.sis.geometry.GeneralEnvelope}</td>
+ * <td></td>
+ * <td>{@link org.apache.sis.geometry.Envelope2D}</td>
+ * <td>{@link java.awt.geom.Rectangle2D}</td>
+ * </tr>
+ * </table>
+ *
+ * {@section Envelopes spanning the anti-meridian of a Geographic CRS}
+ * The Web Coverage Service (WCS) 1.1 specification uses an extended
interpretation
+ * of the bounding box definition. In a WCS 1.1 data structure, the
+ * {@linkplain org.apache.sis.geometry.GeneralEnvelope#getLowerCorner() lower
corner}
+ * defines the edges region in the directions of <em>decreasing</em>
coordinate values in the
+ * {@linkplain
org.apache.sis.geometry.GeneralEnvelope#getCoordinateReferenceSystem() envelope
CRS},
+ * while the {@linkplain
org.apache.sis.geometry.GeneralEnvelope#getUpperCorner() upper corner}
+ * defines the edges region in the directions of <em>increasing</em>
coordinate values.
+ * Those lower and upper corners are usually the algebraic
+ * {@linkplain org.apache.sis.geometry.GeneralEnvelope#getMinimum(int)
minimum} and
+ * {@linkplain org.apache.sis.geometry.GeneralEnvelope#getMaximum(int)
maximum} coordinates respectively,
+ * but not always. For example, an envelope crossing the anti-meridian could
have a lower corner
+ * longitude greater than the upper corner longitude, like the red box below
(the green box is the
+ * usual case):
+ *
+ * <center><img src="doc-files/AntiMeridian.png"></center>
+ *
+ * In SIS, every envelopes defined in this package support the extended
bounding box interpretation:
+ * for any dimension, ordinate values such that <var>upper</var> <
<var>lower</var> are handled
+ * in a special way. This handling is slightly different for two groups of
methods:
+ *
+ * <ul>
+ * <li>In calculation of envelopes spans and median positions (centers) â
handled specially only
+ * on axes having the {@link
org.opengis.referencing.cs.RangeMeaning#WRAPAROUND WRAPAROUND}
+ * range meaning.</li>
+ * <li>When checking for containment, intersections or unions â can be
handled specially for
+ * any axis, in which case the envelope represents an <em>exclusion</em>
area instead
+ * than an inclusion area.</li>
+ * </ul>
+ *
+ * @author Martin Desruisseaux (IRD, Geomatys)
+ * @since 0.3 (derived from geotk-1.2)
+ * @version 0.3
+ * @module
+ */
+package org.apache.sis.geometry;
Propchange:
sis/branches/JDK7/sis-referencing/src/main/java/org/apache/sis/geometry/package-info.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
sis/branches/JDK7/sis-referencing/src/main/java/org/apache/sis/geometry/package-info.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified:
sis/branches/JDK7/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.java
URL:
http://svn.apache.org/viewvc/sis/branches/JDK7/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.java?rev=1422213&r1=1422212&r2=1422213&view=diff
==============================================================================
---
sis/branches/JDK7/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.java
(original)
+++
sis/branches/JDK7/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.java
Sat Dec 15 10:02:23 2012
@@ -196,6 +196,16 @@ public final class Errors extends Indexe
public static final int MandatoryAttribute_2 = 22;
/**
+ * The coordinate reference system must be the same for all objects.
+ */
+ public static final int MismatchedCRS = 57;
+
+ /**
+ * Argument â{0}â has {1} dimension{1,choice,1#|2#s}, while {2}
was expected.
+ */
+ public static final int MismatchedDimension_3 = 58;
+
+ /**
* Argument â{0}â shall not be negative. The given value was {1}.
*/
public static final int NegativeArgument_2 = 8;
@@ -226,6 +236,11 @@ public final class Errors extends Indexe
public static final int NonAngularUnit_1 = 46;
/**
+ * Missing a â{1}â parenthesis in â{0}â.
+ */
+ public static final int NonEquilibratedParenthesis_2 = 59;
+
+ /**
* â{0}â is not a linear unit.
*/
public static final int NonLinearUnit_1 = 47;
Modified:
sis/branches/JDK7/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.properties
URL:
http://svn.apache.org/viewvc/sis/branches/JDK7/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.properties?rev=1422213&r1=1422212&r2=1422213&view=diff
==============================================================================
---
sis/branches/JDK7/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.properties
(original)
+++
sis/branches/JDK7/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.properties
Sat Dec 15 10:02:23 2012
@@ -42,11 +42,14 @@ InfiniteRecursivity = Infini
InsufficientArgumentSize_3 = Argument \u2018{0}\u2019 shall contain at
least {1} elements. A number of {2} is insufficient.
KeyCollision_1 = A different value is already associated to
the \u201c{0}\u201d key.
MandatoryAttribute_2 = Attribute \u201c{0}\u201d is mandatory for
an object of type \u2018{1}\u2019.
+MismatchedCRS = The coordinate reference system must be the
same for all objects.
+MismatchedDimension_3 = Argument \u2018{0}\u2019 has {1}
dimension{1,choice,1#|2#s}, while {2} was expected.
NegativeArgument_2 = Argument \u2018{0}\u2019 shall not be
negative. The given value was {1}.
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.
NodeNotFound_1 = No \u201c{0}\u201d node found.
+NonEquilibratedParenthesis_2 = Missing a \u2018{1}\u2019 parenthesis in
\u201c{0}\u201d.
NonAngularUnit_1 = \u201c{0}\u201d is not an angular unit.
NonLinearUnit_1 = \u201c{0}\u201d is not a linear unit.
NonScaleUnit_1 = \u201c{0}\u201d is not a scale unit.
Modified:
sis/branches/JDK7/sis-utility/src/main/java/org/apache/sis/util/resources/Errors_fr.properties
URL:
http://svn.apache.org/viewvc/sis/branches/JDK7/sis-utility/src/main/java/org/apache/sis/util/resources/Errors_fr.properties?rev=1422213&r1=1422212&r2=1422213&view=diff
==============================================================================
---
sis/branches/JDK7/sis-utility/src/main/java/org/apache/sis/util/resources/Errors_fr.properties
(original)
+++
sis/branches/JDK7/sis-utility/src/main/java/org/apache/sis/util/resources/Errors_fr.properties
Sat Dec 15 10:02:23 2012
@@ -42,11 +42,14 @@ InfiniteRecursivity = R\u00e
InsufficientArgumentSize_3 = L\u2019argument \u2018{0}\u2019 doit
contenir au moins {1} \u00e9l\u00e9ments. Un nombre de {2} est insuffisant.
KeyCollision_1 = Une valeur diff\u00e9rente est
d\u00e9j\u00e0 associ\u00e9e \u00e0 la cl\u00e9 \u201c{0}\u201d.
MandatoryAttribute_2 = L\u2019attribut \u201c{0}\u201d est
obligatoire pour un objet de type \u2018{1}\u2019.
+MismatchedCRS = Le syst\u00e8me de r\u00e9f\u00e9rence des
coordonn\u00e9es doit \u00eatre le m\u00eame pour tous les objets.
+MismatchedDimension_3 = L\u2019argument \u2018{0}\u2019 a {1}
dimension{1,choice,1#|2#s}, alors qu\u2019on en attendait {2}.
NegativeArgument_2 = L\u2019argument \u2018{0}\u2019 ne doit pas
\u00eatre n\u00e9gatif. La valeur donn\u00e9e \u00e9tait {1}.
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.
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.
NonAngularUnit_1 = \u201c{0}\u201d n\u2019est pas une
unit\u00e9 d\u2019angles.
NonLinearUnit_1 = \u201c{0}\u201d n\u2019est pas une
unit\u00e9 de longueurs.
NonScaleUnit_1 = \u201c{0}\u201d n\u2019est pas une
unit\u00e9 d\u2019\u00e9chelles.