sis-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From desruisse...@apache.org
Subject svn commit: r1416563 - /sis/branches/JDK7/sis-utility/src/main/java/org/apache/sis/xml/ReferenceResolver.java
Date Mon, 03 Dec 2012 15:38:10 GMT
Author: desruisseaux
Date: Mon Dec  3 15:38:09 2012
New Revision: 1416563

URL: http://svn.apache.org/viewvc?rev=1416563&view=rev
Log:
Removed the resolve(..., NilReason) method, since it seems quite weird to "resolve" a missing
value in a reference resolver.
We will see later if users really need to "resolve" NilObject.

Modified:
    sis/branches/JDK7/sis-utility/src/main/java/org/apache/sis/xml/ReferenceResolver.java

Modified: sis/branches/JDK7/sis-utility/src/main/java/org/apache/sis/xml/ReferenceResolver.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/sis-utility/src/main/java/org/apache/sis/xml/ReferenceResolver.java?rev=1416563&r1=1416562&r2=1416563&view=diff
==============================================================================
--- sis/branches/JDK7/sis-utility/src/main/java/org/apache/sis/xml/ReferenceResolver.java
(original)
+++ sis/branches/JDK7/sis-utility/src/main/java/org/apache/sis/xml/ReferenceResolver.java
Mon Dec  3 15:38:09 2012
@@ -128,24 +128,27 @@ public class ReferenceResolver {
     }
 
     /**
-     * Returns an object of the given type for the given {@code nilReason} attributes. The
default
-     * implementation returns an immutable object which implement the {@link NilObject} interface
-     * and the given {@code type}. The {@link NilObject#getNilReason()} method will return
the
-     * given reason, and all other methods (except the ones inherited from the {@link Object}
-     * class) will return {@code null} or an empty collection as appropriate.
+     * Returns {@code true} if the marshaller can use a {@code xlink:href} reference to the
given
+     * metadata instead than writing the full element. This method is invoked when a metadata
to be
+     * marshalled has a {@link XLink} identifier. Because those metadata may be defined externally,
+     * SIS can not know if the metadata shall be fully marshalled or not.
+     * Such information needs to be provided by the application.
+     *
+     * <p>The default implementation conservatively returns {@code false} in every
cases.
+     * Subclasses can override this method if they know whether the receiver will be able
+     * to resolve such references.</p>
      *
      * @param  <T>     The compile-time type of the {@code type} argument.
      * @param  context Context (GML version, locale, <i>etc.</i>) of the (un)marshalling
process.
-     * @param  type    The type of object to be unmarshalled as an <strong>interface</strong>.
+     * @param  type    The type of object to be marshalled as an <strong>interface</strong>.
      *                 This is usually a <a href="http://www.geoapi.org">GeoAPI</a>
interface.
-     * @param  nilReason The {@code nilReason} attribute.
-     * @return An object of the given type for the given {@code nilReason} attribute, or
{@code null} if none.
+     * @param  object  The object to be marshalled.
+     * @param  link    The reference of the object to be marshalled.
+     * @return {@code true} if the marshaller can use the {@code xlink:href} attribute
+     *         instead than marshalling the given metadata.
      */
-    @SuppressWarnings("unchecked")
-    public <T> T resolve(final MarshalContext context, final Class<T> type, final
NilReason nilReason) {
-        ensureNonNull("type", type);
-        ensureNonNull("nilReason", nilReason);
-        return nilReason.createNilObject(type);
+    public <T> boolean canSubstituteByReference(final MarshalContext context, final
Class<T> type, final T object, final XLink link) {
+        return false;
     }
 
     /**
@@ -155,7 +158,9 @@ public class ReferenceResolver {
      * SIS can not know if the metadata shall be fully marshalled or not.
      * Such information needs to be provided by the application.
      *
-     * <p>The default implementation conservatively returns {@code false} in every
cases.</p>
+     * <p>The default implementation conservatively returns {@code false} in every
cases.
+     * Subclasses can override this method if they know whether the receiver will be able
+     * to resolve such references.</p>
      *
      * @param  <T>     The compile-time type of the {@code type} argument.
      * @param  context Context (GML version, locale, <i>etc.</i>) of the (un)marshalling
process.



Mime
View raw message