2929
3030package org .scijava .convert ;
3131
32- import java .lang .reflect .Type ;
33- import java .util .Collection ;
34- import java .util .HashSet ;
35- import java .util .LinkedHashSet ;
36- import java .util .Set ;
37-
3832import org .scijava .plugin .AbstractHandlerService ;
3933
4034/**
@@ -46,127 +40,5 @@ public abstract class AbstractConvertService //
4640 extends AbstractHandlerService <ConversionRequest , Converter <?, ?>> //
4741 implements ConvertService
4842{
49-
50- // -- ConversionService methods --
51- @ SuppressWarnings ({ "unchecked" , "rawtypes" })
52- @ Override
53- public Class <Converter <?, ?>> getPluginType () {
54- return (Class ) Converter .class ;
55- }
56-
57- @ Override
58- public Class <ConversionRequest > getType () {
59- return ConversionRequest .class ;
60- }
61-
62- @ Override
63- public Converter <?, ?> getHandler (final Object src , final Class <?> dest ) {
64- return getHandler (new ConversionRequest (src , dest ));
65- }
66-
67- @ Override
68- public Converter <?, ?> getHandler (final Class <?> src , final Class <?> dest ) {
69- return getHandler (new ConversionRequest (src , dest ));
70- }
71-
72- @ Override
73- public Converter <?, ?> getHandler (final Object src , final Type dest ) {
74- return getHandler (new ConversionRequest (src , dest ));
75- }
76-
77- @ Override
78- public Converter <?, ?> getHandler (final Class <?> src , final Type dest ) {
79- return getHandler (new ConversionRequest (src , dest ));
80- }
81-
82- @ Override
83- public boolean supports (final Object src , final Class <?> dest ) {
84- return supports (new ConversionRequest (src , dest ));
85- }
86-
87- @ Override
88- public boolean supports (final Class <?> src , final Class <?> dest ) {
89- return supports (new ConversionRequest (src , dest ));
90- }
91-
92- @ Override
93- public boolean supports (final Object src , final Type dest ) {
94- return supports (new ConversionRequest (src , dest ));
95- }
96-
97- @ Override
98- public boolean supports (final Class <?> src , final Type dest ) {
99- return supports (new ConversionRequest (src , dest ));
100- }
101-
102- @ Override
103- public Collection <Object > getCompatibleInputs (final Class <?> dest ) {
104- final Set <Object > objects = new LinkedHashSet <>();
105-
106- for (final Converter <?, ?> c : getInstances ()) {
107- if (dest .isAssignableFrom (c .getOutputType ())) {
108- c .populateInputCandidates (objects );
109- }
110- }
111-
112- return objects ;
113- }
114-
115- @ Override
116- public Object convert (final Object src , final Type dest ) {
117- return convert (new ConversionRequest (src , dest ));
118- }
119-
120- @ Override
121- public <T > T convert (final Object src , final Class <T > dest ) {
122- // NB: repeated code with convert(ConversionRequest), because the
123- // handler's convert method respects the T provided
124- final Converter <?, ?> handler = getHandler (src , dest );
125- return handler == null ? null : handler .convert (src , dest );
126- }
127-
128- @ Override
129- public Object convert (final ConversionRequest request ) {
130- final Converter <?, ?> handler = getHandler (request );
131- return handler == null ? null : handler .convert (request );
132- }
133-
134- @ Override
135- public Collection <Class <?>> getCompatibleInputClasses (final Class <?> dest ) {
136- final Set <Class <?>> compatibleClasses = new HashSet <>();
137-
138- for (final Converter <?, ?> converter : getInstances ()) {
139- addIfMatches (dest , converter .getOutputType (), converter .getInputType (), compatibleClasses );
140- }
141-
142- return compatibleClasses ;
143- }
144-
145- @ Override
146- public Collection <Class <?>> getCompatibleOutputClasses (final Class <?> source ) {
147- final Set <Class <?>> compatibleClasses = new HashSet <>();
148-
149- for (final Converter <?, ?> converter : getInstances ()) {
150- try {
151- addIfMatches (source , converter .getInputType (), converter .getOutputType (), compatibleClasses );
152- }
153- catch (final Throwable t ) {
154- log ().error ("Malfunctioning converter plugin: " + //
155- converter .getClass ().getName (), t );
156- }
157- }
158-
159- return compatibleClasses ;
160- }
161-
162- // -- Helper methods --
163-
164- /**
165- * Test two classes; if they match, a third class is added to the provided
166- * set of classes.
167- */
168- private void addIfMatches (final Class <?> c1 , final Class <?> c2 , final Class <?> toAdd , final Set <Class <?>> classes ) {
169- if (c1 == c2 )
170- classes .add (toAdd );
171- }
43+ // NB: This layer remains merely for backwards compatibility.
17244}
0 commit comments