Class AngleConverter
java.lang.Object
org.apache.sis.internal.converter.AngleConverter
- All Implemented Interfaces:
Serializable,Function<Angle,,Double> ObjectConverter<Angle,Double>
Handles conversions between
Angle and Double.
Immutability and thread safety
This class is immutable and thus inherently thread-safe. The sameINSTANCE can be passed between threads without synchronization.- Since:
- 0.3
- Version:
- 0.3
- Author:
- Martin Desruisseaux (Geomatys)
- See Also:
-
Nested Class Summary
Nested Classes -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionConverts the given angle.final booleanPerforms the comparisons documented inObject.equals(Object)with an additional check: if both objects to compare areSystemConverter, then also requires the two objects to be of the same class.Returns the source class given at construction time.Returns the target class given at construction time.final inthashCode()Returns a hash code value for thisClassPair.inverse()Returns the inverse converter.Declares that the converter is bijective.protected final ObjectReturns the singleton instance on deserialization, if any.toString()Returns a string representation for this entry.unique()Returns the unique instance.
-
Constructor Details
-
AngleConverter
public AngleConverter()Creates a new converter.
-
-
Method Details
-
unique
Returns the unique instance.- Returns:
- unique instance.
- See Also:
-
inverse
Returns the inverse converter.- Specified by:
inversein interfaceObjectConverter<Angle,Double> - Returns:
AngleConverter.Inverse.- See Also:
-
properties
Declares that the converter is bijective.- Returns:
- injective and surjective function properties (among others).
-
apply
Converts the given angle.- Parameters:
object- the angle to convert.- Returns:
- angular value in degrees.
-
getSourceClass
Returns the source class given at construction time.- Specified by:
getSourceClassin interfaceObjectConverter<S,T> - Returns:
- the type of objects to convert.
-
getTargetClass
Returns the target class given at construction time.- Specified by:
getTargetClassin interfaceObjectConverter<S,T> - Returns:
- the type of converted objects.
-
equals
Performs the comparisons documented inObject.equals(Object)with an additional check: if both objects to compare areSystemConverter, then also requires the two objects to be of the same class. We do that in order to differentiate the "ordinary" converters from theFallbackConverter.Implementation note
This is admittedly a little bit convolved. A cleaner approach would have been to not allow theConverterRegisterhash map to contain anything else thanClassPairkeys, but the current strategy of using the same instance for keys and values reduces a little bit the number of objects to create in the JVM. Another cleaner approach would have been to compareObjectConverters in a separated method, but users invokingequalson our system converters could be surprised.Our
equals(Object)definition have the following implications regarding the way to use theConverterRegistry.convertersmap:- When searching for a converter of the same class than the key (as in the
ConverterRegistry.findEquals(SystemConverter)method), then there is no restriction on the key that can be given to theMap.get(K)method. TheMapis "normal". - When searching for a converter for a pair of source and target classes
(as in
ConverterRegistry.find(Class, Class)), the key shall be an instance ofClassPairinstance (not a subclass).
- Parameters:
other- the object to compare with thisSystemConverter.- Returns:
trueif the given object is aClassPairor a converter of the same class thanthis, and both have the same source and target classes.
- When searching for a converter of the same class than the key (as in the
-
readResolve
Returns the singleton instance on deserialization, if any. If no instance already exist in the virtual machine, we do not cache the instance (for now) for security reasons.- Returns:
- the object to use after deserialization.
- Throws:
ObjectStreamException- if the serialized object defines an unknown data type.
-
hashCode
public final int hashCode()Returns a hash code value for thisClassPair. SeeObject.equals(Object)javadoc for information on the scope of this method. -
toString
Returns a string representation for this entry. Used for formatting error messages.
-