Author: desruisseaux
Date: Fri Jun 7 14:31:49 2013
New Revision: 1490663
URL: http://svn.apache.org/r1490663
Log:
Replaced the "DataStore interface + AbstractDataStore" pair by a single
abstract DataStore class,
as suggested by email.
Removed:
sis/branches/JDK7/storage/sis-storage/src/main/java/org/apache/sis/storage/AbstractDataStore.java
Modified:
sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/logging/WarningListeners.java
sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/NetcdfStore.java
sis/branches/JDK7/storage/sis-storage/src/main/java/org/apache/sis/storage/DataStore.java
Modified:
sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/logging/WarningListeners.java
URL:
http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/logging/WarningListeners.java?rev=1490663&r1=1490662&r2=1490663&view=diff
==============================================================================
---
sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/logging/WarningListeners.java
[UTF-8] (original)
+++
sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/logging/WarningListeners.java
[UTF-8] Fri Jun 7 14:31:49 2013
@@ -50,7 +50,7 @@ import org.apache.sis.util.resources.Err
* @module
*
* @see WarningListener
- * @see org.apache.sis.storage.AbstractDataStore#listeners
+ * @see org.apache.sis.storage.DataStore#listeners
*/
@ThreadSafe
public class WarningListeners<S> implements Localized {
Modified:
sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/NetcdfStore.java
URL:
http://svn.apache.org/viewvc/sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/NetcdfStore.java?rev=1490663&r1=1490662&r2=1490663&view=diff
==============================================================================
---
sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/NetcdfStore.java
[UTF-8] (original)
+++
sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/NetcdfStore.java
[UTF-8] Fri Jun 7 14:31:49 2013
@@ -19,7 +19,7 @@ package org.apache.sis.storage.netcdf;
import java.io.IOException;
import org.opengis.metadata.Metadata;
import org.apache.sis.util.ArgumentChecks;
-import org.apache.sis.storage.AbstractDataStore;
+import org.apache.sis.storage.DataStore;
import org.apache.sis.storage.DataStoreException;
import org.apache.sis.storage.DataStoreConnection;
import org.apache.sis.internal.netcdf.Decoder;
@@ -36,7 +36,7 @@ import org.apache.sis.internal.netcdf.De
*
* @see NetcdfStoreProvider
*/
-public class NetcdfStore extends AbstractDataStore {
+public class NetcdfStore extends DataStore {
/**
* The object to use for decoding the NetCDF file content. There is two
different implementations,
* depending on whether we are using the embedded SIS decoder or a wrapper
around the UCAR library.
Modified:
sis/branches/JDK7/storage/sis-storage/src/main/java/org/apache/sis/storage/DataStore.java
URL:
http://svn.apache.org/viewvc/sis/branches/JDK7/storage/sis-storage/src/main/java/org/apache/sis/storage/DataStore.java?rev=1490663&r1=1490662&r2=1490663&view=diff
==============================================================================
---
sis/branches/JDK7/storage/sis-storage/src/main/java/org/apache/sis/storage/DataStore.java
[UTF-8] (original)
+++
sis/branches/JDK7/storage/sis-storage/src/main/java/org/apache/sis/storage/DataStore.java
[UTF-8] Fri Jun 7 14:31:49 2013
@@ -16,9 +16,13 @@
*/
package org.apache.sis.storage;
+import java.util.Locale;
import java.util.NoSuchElementException;
import org.opengis.metadata.Metadata;
+import org.apache.sis.util.Localized;
+import org.apache.sis.util.ArgumentChecks;
import org.apache.sis.util.logging.WarningListener;
+import org.apache.sis.util.logging.WarningListeners;
/**
@@ -30,7 +34,49 @@ import org.apache.sis.util.logging.Warni
* @version 0.3
* @module
*/
-public interface DataStore extends AutoCloseable {
+public abstract class DataStore implements Localized, AutoCloseable {
+ /**
+ * The locale to use for formatting warnings.
+ *
+ * @see #getLocale()
+ * @see #setLocale(Locale)
+ */
+ private Locale locale;
+
+ /**
+ * The set of registered {@link WarningListener}s for this data store.
+ */
+ protected final WarningListeners<DataStore> listeners;
+
+ /**
+ * Creates a new instance with initially no listener.
+ */
+ protected DataStore() {
+ locale = Locale.getDefault(Locale.Category.DISPLAY);
+ listeners = new WarningListeners<>(this);
+ }
+
+ /**
+ * The locale to use for formatting warnings and other messages. This
locale if for user interfaces
+ * only - it has no effect on the data to be read or written from/to the
data store.
+ *
+ * <p>The default value is the {@linkplain Locale#getDefault() system
default locale}.</p>
+ */
+ @Override
+ public synchronized Locale getLocale() {
+ return locale;
+ }
+
+ /**
+ * Sets the locale to use for formatting warnings and other messages.
+ *
+ * @param locale The new locale to use.
+ */
+ public synchronized void setLocale(final Locale locale) {
+ ArgumentChecks.ensureNonNull("locale", locale);
+ this.locale = locale;
+ }
+
/**
* Returns information about the dataset as a whole. The returned metadata
object, if any, can contain
* information such as the spatiotemporal extent of the dataset, contact
information about the creator
@@ -39,7 +85,7 @@ public interface DataStore extends AutoC
* @return Information about the dataset, or {@code null} if none.
* @throws DataStoreException If an error occurred while reading the data.
*/
- Metadata getMetadata() throws DataStoreException;
+ public abstract Metadata getMetadata() throws DataStoreException;
/**
* Adds a listener to be notified when a warning occurred while reading
from or writing to the storage.
@@ -67,7 +113,11 @@ public interface DataStore extends AutoC
* @param listener The listener to add.
* @throws IllegalArgumentException If the given listener is already
registered in this data store.
*/
- void addWarningListener(WarningListener<? super DataStore> listener)
throws IllegalArgumentException;
+ public void addWarningListener(final WarningListener<? super DataStore>
listener)
+ throws IllegalArgumentException
+ {
+ listeners.addWarningListener(listener);
+ }
/**
* Removes a previously registered listener.
@@ -75,7 +125,11 @@ public interface DataStore extends AutoC
* @param listener The listener to remove.
* @throws NoSuchElementException If the given listener is not registered
in this data store.
*/
- void removeWarningListener(WarningListener<? super DataStore> listener)
throws NoSuchElementException;
+ public void removeWarningListener(final WarningListener<? super DataStore>
listener)
+ throws NoSuchElementException
+ {
+ listeners.removeWarningListener(listener);
+ }
/**
* Closes this data store and releases any underlying resources.
@@ -83,5 +137,5 @@ public interface DataStore extends AutoC
* @throws DataStoreException If an error occurred while closing this data
store.
*/
@Override
- void close() throws DataStoreException;
+ public abstract void close() throws DataStoreException;
}