Skip to content

Commit 8f7778d

Browse files
committed
Eliminate deprecated ConversionUtils casting usage
There is now the Types utility class instead.
1 parent 4aefc55 commit 8f7778d

File tree

7 files changed

+25
-29
lines changed

7 files changed

+25
-29
lines changed

src/main/java/org/scijava/convert/AbstractConverter.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@
3838
import org.scijava.object.ObjectService;
3939
import org.scijava.plugin.AbstractHandlerPlugin;
4040
import org.scijava.plugin.Parameter;
41-
import org.scijava.util.ConversionUtils;
4241
import org.scijava.util.Types;
4342

4443
/**
@@ -111,8 +110,8 @@ public boolean canConvert(final Class<?> src, final Class<?> dest) {
111110
if (src == null) return false;
112111
final Class<?> saneSrc = Types.box(src);
113112
final Class<?> saneDest = Types.box(dest);
114-
return ConversionUtils.canCast(saneSrc, getInputType()) &&
115-
ConversionUtils.canCast(getOutputType(), saneDest);
113+
return Types.isAssignable(saneSrc, getInputType()) &&
114+
Types.isAssignable(getOutputType(), saneDest);
116115
}
117116

118117
@Override

src/main/java/org/scijava/convert/CastingConverter.java

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,6 @@
3333

3434
import org.scijava.Priority;
3535
import org.scijava.plugin.Plugin;
36-
import org.scijava.util.ClassUtils;
37-
import org.scijava.util.ConversionUtils;
3836
import org.scijava.util.Types;
3937

4038
/**
@@ -45,19 +43,15 @@
4543
@Plugin(type = Converter.class, priority = Priority.EXTREMELY_HIGH)
4644
public class CastingConverter extends AbstractConverter<Object, Object> {
4745

48-
@SuppressWarnings("deprecation")
4946
@Override
5047
public boolean canConvert(final Object src, final Class<?> dest) {
51-
return ClassUtils.canCast(src, dest);
48+
return Types.isInstance(src, dest);
5249
}
5350

5451
@Override
5552
public boolean canConvert(final Class<?> src, final Class<?> dest) {
5653
// OK if the existing object can be casted
57-
if (ConversionUtils.canCast(src, dest))
58-
return true;
59-
60-
return false;
54+
return dest != null && Types.isAssignable(src, dest);
6155
}
6256

6357
@SuppressWarnings("unchecked")
@@ -73,7 +67,7 @@ public <T> T convert(final Object src, final Class<T> dest) {
7367
// very quickly in various subclassing cases, generic parameters
7468
// resolved vs. propagated, etc.
7569
final Class<?> c = Types.raw(dest);
76-
return (T) ConversionUtils.cast(src, c);
70+
return (T) Types.cast(src, c);
7771
}
7872

7973
@Override

src/main/java/org/scijava/convert/DefaultConverter.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,9 @@ private Constructor<?> getConstructor(final Class<?> type,
209209
{
210210
for (final Constructor<?> ctor : type.getConstructors()) {
211211
final Class<?>[] params = ctor.getParameterTypes();
212-
if (params.length == 1 && ConversionUtils.canCast(argType, params[0])) {
212+
if (params.length == 1 && //
213+
Types.isAssignable(Types.box(argType), Types.box(params[0])))
214+
{
213215
return ctor;
214216
}
215217
}
@@ -221,7 +223,7 @@ private boolean isArray(final Type type) {
221223
}
222224

223225
private boolean isCollection(final Type type) {
224-
return ConversionUtils.canCast(Types.raw(type), Collection.class);
226+
return Types.isAssignable(Types.raw(type), Collection.class);
225227
}
226228

227229
private Object
@@ -267,8 +269,8 @@ private Collection<Object> createCollection(final Class<?> type) {
267269
if (type.isInterface() || Modifier.isAbstract(type.getModifiers())) {
268270
// We don't have a concrete class. If it's a set or a list, we use
269271
// the typical default implementation. Otherwise we won't convert.
270-
if (ConversionUtils.canCast(type, List.class)) return new ArrayList<>();
271-
if (ConversionUtils.canCast(type, Set.class)) return new HashSet<>();
272+
if (Types.isAssignable(type, List.class)) return new ArrayList<>();
273+
if (Types.isAssignable(type, Set.class)) return new HashSet<>();
272274
return null;
273275
}
274276

@@ -312,7 +314,7 @@ public boolean canConvert(final Class<?> src, final Class<?> dest) {
312314
final Class<?> saneDest = Types.box(dest);
313315

314316
// OK for numerical conversions
315-
if (ConversionUtils.canCast(Types.box(src), Number.class) && //
317+
if (Types.isAssignable(Types.box(src), Number.class) && //
316318
(Types.isByte(dest) || Types.isDouble(dest) || Types.isFloat(dest) ||
317319
Types.isInteger(dest) || Types.isLong(dest) || Types.isShort(dest)))
318320
{
@@ -322,7 +324,7 @@ public boolean canConvert(final Class<?> src, final Class<?> dest) {
322324
// OK if string
323325
if (saneDest == String.class) return true;
324326

325-
if (ConversionUtils.canCast(src, String.class)) {
327+
if (Types.isAssignable(src, String.class)) {
326328
// OK if source type is string and destination type is character
327329
// (in this case, the first character of the string would be used)
328330
if (saneDest == Character.class) return true;

src/main/java/org/scijava/module/AbstractModuleInfo.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@
3939
import java.util.Map;
4040

4141
import org.scijava.AbstractUIDetails;
42-
import org.scijava.util.ConversionUtils;
4342
import org.scijava.util.Types;
4443

4544
/**
@@ -170,7 +169,7 @@ private <T> ModuleItem<T> castItem(final ModuleItem<?> item,
170169
final Class<?> itemType = item.getType();
171170
// if (!type.isAssignableFrom(itemType)) {
172171
final Class<?> saneItemType = Types.box(itemType);
173-
if (!ConversionUtils.canCast(type, saneItemType)) {
172+
if (!Types.isAssignable(type, saneItemType)) {
174173
throw new IllegalArgumentException("Type " + type.getName() +
175174
" is incompatible with item of type " + itemType.getName());
176175
}

src/main/java/org/scijava/util/ClassUtils.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -665,22 +665,22 @@ public static boolean canConvert(final Object value, final Class<?> type) {
665665
return ConversionUtils.canConvert(value, type);
666666
}
667667

668-
/** @deprecated use {@link ConversionUtils#cast(Object, Class)} */
668+
/** @deprecated use {@link Types#cast(Object, Class)} */
669669
@Deprecated
670670
public static <T> T cast(final Object obj, final Class<T> type) {
671-
return ConversionUtils.cast(obj, type);
671+
return Types.cast(obj, type);
672672
}
673673

674-
/** @deprecated use {@link ConversionUtils#canCast(Class, Class)} */
674+
/** @deprecated use {@link Types#isAssignable(Type, Type)} */
675675
@Deprecated
676676
public static boolean canCast(final Class<?> c, final Class<?> type) {
677-
return ConversionUtils.canCast(c, type);
677+
return Types.isAssignable(c, type);
678678
}
679679

680-
/** @deprecated use {@link ConversionUtils#canCast(Object, Class)} */
680+
/** @deprecated use {@link Types#isInstance(Object, Class)} */
681681
@Deprecated
682682
public static boolean canCast(final Object obj, final Class<?> type) {
683-
return ConversionUtils.canCast(obj, type);
683+
return Types.isInstance(obj, type);
684684
}
685685

686686
/** @deprecated use {@link Types#box(Class)} */

src/main/java/org/scijava/util/NumberUtils.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ private NumberUtils() {
5656
*/
5757
public static Number toNumber(final Object value, final Class<?> type) {
5858
final Object num = ConversionUtils.convert(value, type);
59-
return num == null ? null : ConversionUtils.cast(num, Number.class);
59+
return num == null ? null : Types.cast(num, Number.class);
6060
}
6161

6262
public static BigDecimal asBigDecimal(final Number n) {

src/main/java/org/scijava/util/ObjectArray.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@
3535
import java.util.Arrays;
3636
import java.util.Collection;
3737

38+
import org.scijava.util.Types;
39+
3840
/**
3941
* An extensible, generic array of {@code Object} elements. Note that this class
4042
* is a {@link PrimitiveArray} but of course Objects are not primitives.
@@ -184,7 +186,7 @@ public boolean contains(final Object o) {
184186
@Override
185187
public boolean remove(final Object o) {
186188
if (!compatibleClass(o)) return false;
187-
final E value = ConversionUtils.cast(o, objectClass);
189+
final E value = Types.cast(o, objectClass);
188190
return removeValue(value);
189191
}
190192

@@ -216,7 +218,7 @@ public boolean removeAll(final Collection<?> c) {
216218
boolean changed = false;
217219
for (final Object o : c) {
218220
if (!compatibleClass(o)) continue;
219-
final E value = ConversionUtils.cast(o, objectClass);
221+
final E value = Types.cast(o, objectClass);
220222
final boolean result = removeValue(value);
221223
if (result) changed = true;
222224
}

0 commit comments

Comments
 (0)