Skip to content

Commit c1d3d53

Browse files
committed
Convert OpCollections to Therapi Discovery
First, the parameters were converted to custom taglets (manually, sob). Then the following perl commands were used to convert OpField annotations into implNotes: perl -0777 -i -pe "s/(\s*)\*\/(\s*)\@OpField\(\s*names\s*=\s*\"([^\"]*)\"\s*,\s*params\s*=\s*\"[^\"]*\"\s*,\s*priority\s*=\s*([^\)]*)\)/\1* \@implNote op names='\3', priority='\4'\1*\/\2\@FlopField/igs" **/*.java perl -0777 -i -pe "s/(\s*)\*\/(\s*)\@OpField\(\s*names\s*=\s*\"([^\"]*)\"\s*,\s*params\s*=\s*\"[^\"]*\"[^\)]*\)/\1* \@implNote op names='\3'\1*\/\2\@FlopField/igs" **/*.java Then I realized I had left my @FlopField indicator string in, yielding the usage of the sed command: sed -i -e '/@FlopField/d' **/*.java Now I continue: perl -0777 -i -pe "s/(\s*)\*\/(\s*)\@OpField\(\s*names\s*=\s*\"([^\"]*)\"[^\)]*\)/\1* \@implNote op names='\3'\1*\//igs" **/*.java Of course, there are some with @SuppressWarnings annotations *sigh* perl -0777 -i -pe "s/(\s*)\*\/(\s*)\@OpField\(\s*names\s*=\s*\"([^\"]*)\"[^\)]*\)/\1* \@implNote op names='\3'\1*\//igs" **/*.java Continuing on: perl -0777 -i -pe "s/([\t ]*)\@OpField\(\s*names\s*=\s*\"([^\"]*)\"\s*,\s*priority\s*=\s*([^\)]*)\s*\)/\1\/**\n\1 * \@implNote op names='\2', priority='\3'\n\1 *\//igs" **/*.java perl -0777 -i -pe "s/([\t ]*)\@OpField\(\s*names\s*=\s*\"([^\"]*)\"[^\)]*\)/\1\/**\n\1 * \@implNote op names='\2'\n\1 *\//igs" **/*.java Finally, we rename the priorities to their decimal value. See last commmit for method
1 parent 32282c2 commit c1d3d53

32 files changed

+2232
-458
lines changed

imagej/imagej-ops2/src/main/java/module-info.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@
142142
provides org.scijava.types.TypeExtractor with
143143
net.imagej.ops2.types.ImgFactoryTypeExtractor,
144144
net.imagej.ops2.types.ImgLabelingTypeExtractor,
145+
net.imagej.ops2.types.NativeImgTypeExtractor,
145146
net.imagej.ops2.types.LabelingMappingTypeExtractor,
146147
net.imagej.ops2.types.OutOfBoundsConstantValueFactoryTypeExtractor,
147148
net.imagej.ops2.types.OutOfBoundsFactoryTypeExtractor,

imagej/imagej-ops2/src/main/java/net/imagej/ops2/convert/ConvertTypes.java

Lines changed: 145 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -64,73 +64,165 @@
6464
@Plugin(type = OpCollection.class)
6565
public final class ConvertTypes<C extends ComplexType<C>, T extends IntegerType<T>> {
6666

67-
@OpField(names = "convert.bit", params = "input, output")
67+
/**
68+
* @input input
69+
* @output output
70+
* @implNote op names='convert.bit'
71+
*/
6872
public final Computers.Arity1<C, BitType> complexToBit = (input, output) -> output.set(input.getRealDouble() != 0);
6973

70-
@OpField(names = "convert.bit", params = "input, output")
74+
/**
75+
* @input input
76+
* @output output
77+
* @implNote op names='convert.bit'
78+
*/
7179
public final Computers.Arity1<T, BitType> integerToBit = (input, output) -> output.set(input.getIntegerLong() != 0);
7280

73-
@OpField(names = "convert.uint2", params = "input, output")
81+
/**
82+
* @input input
83+
* @output output
84+
* @implNote op names='convert.uint2'
85+
*/
7486
public final Computers.Arity1<C, Unsigned2BitType> complexToUint2 = (input, output) -> output.set((long) input.getRealDouble());
7587

76-
@OpField(names = "convert.uint2", params = "input, output")
88+
/**
89+
* @input input
90+
* @output output
91+
* @implNote op names='convert.uint2'
92+
*/
7793
public final Computers.Arity1<T, Unsigned2BitType> integerToUint2 = (input, output) -> output.set(input.getIntegerLong());
7894

79-
@OpField(names = "convert.uint4", params = "input, output")
95+
/**
96+
* @input input
97+
* @output output
98+
* @implNote op names='convert.uint4'
99+
*/
80100
public final Computers.Arity1<C, Unsigned4BitType> complexToUint4 = (input, output) -> output.set((long) input.getRealDouble());
81101

82-
@OpField(names = "convert.uint4", params = "input, output")
102+
/**
103+
* @input input
104+
* @output output
105+
* @implNote op names='convert.uint4'
106+
*/
83107
public final Computers.Arity1<T, Unsigned4BitType> integerToUint4 = (input, output) -> output.set(input.getIntegerLong());
84108

85-
@OpField(names = "convert.byte", params = "input, output")
109+
/**
110+
* @input input
111+
* @output output
112+
* @implNote op names='convert.byte'
113+
*/
86114
public final Computers.Arity1<C, ByteType> complexToInt8 = (input, output) -> output.set((byte) input.getRealDouble());
87115

88-
@OpField(names = "convert.byte", params = "input, output")
116+
/**
117+
* @input input
118+
* @output output
119+
* @implNote op names='convert.byte'
120+
*/
89121
public final Computers.Arity1<T, ByteType> integerToInt8 = (input, output) -> output.set((byte) input.getIntegerLong());
90122

91-
@OpField(names = "convert.uint8", params = "input, output")
123+
/**
124+
* @input input
125+
* @output output
126+
* @implNote op names='convert.uint8'
127+
*/
92128
public final Computers.Arity1<C, UnsignedByteType> complexToUint8 = (input, output) -> output.set((int) input.getRealDouble());
93129

94-
@OpField(names = "convert.uint8", params = "input, output")
130+
/**
131+
* @input input
132+
* @output output
133+
* @implNote op names='convert.uint8'
134+
*/
95135
public final Computers.Arity1<T, UnsignedByteType> integerToUint8 = (input, output) -> output.set(input.getInteger());
96136

97-
@OpField(names = "convert.uint12", params = "input, output")
137+
/**
138+
* @input input
139+
* @output output
140+
* @implNote op names='convert.uint12'
141+
*/
98142
public final Computers.Arity1<C, Unsigned12BitType> complexToUint12 = (input, output) -> output.set((long) input.getRealDouble());
99143

100-
@OpField(names = "convert.uint12", params = "input, output")
144+
/**
145+
* @input input
146+
* @output output
147+
* @implNote op names='convert.uint12'
148+
*/
101149
public final Computers.Arity1<T, Unsigned12BitType> integerToUint12 = (input, output) -> output.set(input.getIntegerLong());
102150

103-
@OpField(names = "convert.int16", params = "input, output")
151+
/**
152+
* @input input
153+
* @output output
154+
* @implNote op names='convert.int16'
155+
*/
104156
public final Computers.Arity1<C, ShortType> complexToInt16 = (input, output) -> output.set((short) input.getRealDouble());
105157

106-
@OpField(names = "convert.int16", params = "input, output")
158+
/**
159+
* @input input
160+
* @output output
161+
* @implNote op names='convert.int16'
162+
*/
107163
public final Computers.Arity1<T, ShortType> integerToInt16 = (input, output) -> output.set((short) input.getIntegerLong());
108164

109-
@OpField(names = "convert.uint16", params = "input, output")
165+
/**
166+
* @input input
167+
* @output output
168+
* @implNote op names='convert.uint16'
169+
*/
110170
public final Computers.Arity1<C, UnsignedShortType> complexToUint16 = (input, output) -> output.set((int) input.getRealDouble());
111171

112-
@OpField(names = "convert.uint16", params = "input, output")
172+
/**
173+
* @input input
174+
* @output output
175+
* @implNote op names='convert.uint16'
176+
*/
113177
public final Computers.Arity1<T, UnsignedShortType> integerToUint16 = (input, output) -> output.set(input.getInteger());
114178

115-
@OpField(names = "convert.int32", params = "input, output")
179+
/**
180+
* @input input
181+
* @output output
182+
* @implNote op names='convert.int32'
183+
*/
116184
public final Computers.Arity1<C, IntType> complexToInt32 = (input, output) -> output.set((int) input.getRealDouble());
117185

118-
@OpField(names = "convert.int32", params = "input, output")
186+
/**
187+
* @input input
188+
* @output output
189+
* @implNote op names='convert.int32'
190+
*/
119191
public final Computers.Arity1<T, IntType> integerToInt32 = (input, output) -> output.set(input.getInteger());
120192

121-
@OpField(names = "convert.uint32", params = "input, output")
193+
/**
194+
* @input input
195+
* @output output
196+
* @implNote op names='convert.uint32'
197+
*/
122198
public final Computers.Arity1<C, UnsignedIntType> complexToUint32 = (input, output) -> output.set((long) input.getRealDouble());
123199

124-
@OpField(names = "convert.uint32", params = "input, output")
200+
/**
201+
* @input input
202+
* @output output
203+
* @implNote op names='convert.uint32'
204+
*/
125205
public final Computers.Arity1<T, UnsignedIntType> integerToUint32 = (input, output) -> output.set(input.getIntegerLong());
126206

127-
@OpField(names = "convert.int64", params = "input, output")
207+
/**
208+
* @input input
209+
* @output output
210+
* @implNote op names='convert.int64'
211+
*/
128212
public final Computers.Arity1<C, LongType> complexToInt64 = (input, output) -> output.set((long) input.getRealDouble());
129213

130-
@OpField(names = "convert.int64", params = "input, output")
214+
/**
215+
* @input input
216+
* @output output
217+
* @implNote op names='convert.int64'
218+
*/
131219
public final Computers.Arity1<T, LongType> integerToInt64 = (input, output) -> output.set(input.getIntegerLong());
132220

133-
@OpField(names = "convert.uint64", params = "input, output")
221+
/**
222+
* @input input
223+
* @output output
224+
* @implNote op names='convert.uint64'
225+
*/
134226
public final Computers.Arity1<C, UnsignedLongType> complexToUint64 = (input, output) -> {
135227
final BigDecimal bd = BigDecimal.valueOf(input.getRealDouble());
136228
final BigDecimal r = bd.remainder(BigDecimal.ONE);
@@ -141,7 +233,11 @@ public final class ConvertTypes<C extends ComplexType<C>, T extends IntegerType<
141233
}
142234
};
143235

144-
@OpField(names = "convert.uint128", params = "input, output")
236+
/**
237+
* @input input
238+
* @output output
239+
* @implNote op names='convert.uint128'
240+
*/
145241
public final Computers.Arity1<C, Unsigned128BitType> complexToUint128 = (input, output) -> {
146242
final BigDecimal bd = BigDecimal.valueOf(input.getRealDouble());
147243
final BigDecimal r = bd.remainder(BigDecimal.ONE);
@@ -152,20 +248,40 @@ public final class ConvertTypes<C extends ComplexType<C>, T extends IntegerType<
152248
}
153249
};
154250

155-
@OpField(names = "convert.uint128", params = "input, output")
251+
/**
252+
* @input input
253+
* @output output
254+
* @implNote op names='convert.uint128'
255+
*/
156256
public final Computers.Arity1<T, Unsigned128BitType> integerToUint128 = (input, output) -> output.set(input.getBigInteger());
157257

158-
@OpField(names = "convert.float32", params = "input, output")
258+
/**
259+
* @input input
260+
* @output output
261+
* @implNote op names='convert.float32'
262+
*/
159263
public final Computers.Arity1<C, FloatType> complexToFloat32 = (input, output) -> output.set(input.getRealFloat());
160264

161-
@OpField(names = "convert.cfloat32", params = "input, output")
265+
/**
266+
* @input input
267+
* @output output
268+
* @implNote op names='convert.cfloat32'
269+
*/
162270
public final Computers.Arity1<C, ComplexFloatType> complexToCfloat32 = (input, output) -> output.set(input.getRealFloat(),
163271
input.getImaginaryFloat());
164272

165-
@OpField(names = "convert.float64", params = "input, output")
273+
/**
274+
* @input input
275+
* @output output
276+
* @implNote op names='convert.float64'
277+
*/
166278
public final Computers.Arity1<C, DoubleType> complexToFloat64 = (input, output) -> output.set(input.getRealDouble());
167279

168-
@OpField(names = "convert.cfloat64", params = "input, output")
280+
/**
281+
* @input input
282+
* @output output
283+
* @implNote op names='convert.cfloat64'
284+
*/
169285
public final Computers.Arity1<C, ComplexDoubleType> complexToCfloat64 = (input, output) -> output.set(input.getRealDouble(),
170286
input.getImaginaryDouble());
171287
}

imagej/imagej-ops2/src/main/java/net/imagej/ops2/convert/Converters.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,23 @@
1313
@Plugin(type = OpCollection.class)
1414
public class Converters<I, O extends Type<O>> {
1515

16-
@OpField(names = "convert", params = "inputII, converter, outputType, outputII")
16+
/**
17+
* @input inputRAI
18+
* @input converter
19+
* @input outputType
20+
* @output outputII
21+
* @implNote op names='convert'
22+
*/
1723
public final Functions.Arity3<RandomAccessible<I>, Converter<? super I, ? super O>, O, RandomAccessible<O>> generalConverterRA = (
1824
inputRA, converter, type) -> net.imglib2.converter.Converters.convert(inputRA, converter, type);
1925

20-
@OpField(names = "convert", params = "inputII, converter, outputType, outputII")
26+
/**
27+
* @input inputII
28+
* @input converter
29+
* @input outputType
30+
* @output outputII
31+
* @implNote op names='convert'
32+
*/
2133
public final Functions.Arity3<IterableInterval<I>, Converter<? super I, ? super O>, O, IterableInterval<O>> generalConverterII = (
2234
inputII, converter, type) -> net.imglib2.converter.Converters.convert(inputII, converter, type);
2335

0 commit comments

Comments
 (0)