Skip to content

Commit 753836d

Browse files
authored
Scijava/scijava javadoc parser/javadoc to yaml (#79)
* Parse docs with our own annotation processor * Name javadoc'd Op params after name in method * Fix YAML issues * Make minor fixes * Restore IterableInterval copier Without it, it's really difficult to match the request in the tests. Since it isn't hurting anything to have it, we might as well keep it. * Convert command line arg to boolean-like Since we're storing far less information now, I think it's a lot easier to just have an opt-in toggle, and I don't see anyone wanting to only parse some packages. * Rename to SciJava Ops Indexer @ctrueden and @hinerm and I decided that we should specialize this module on Ops, because we don't yet have a use case beyond Ops. * "Op-ify" the yaml This makes the logic more complex - let's clean it up in the following commits * Rename annotation processor option * Move inner class HACK out of SciJava Common * Rename and add documentation to OpImplData * Cleanup JavadocAnnotationProcessor * Clean up OpImplData A lot (i.e. all) of the fields are shared, so let's move them upstream * Enable YAML Ops to infer their type * Require correct no. params for implNote ops * Validate Ops declared in javadoc * Add Op version to the parser * Fix indentation * Rename Annotation Processor * Add comment explaining the false return * Combine OpImplNoteParser and YamlJavadocBuilder * Remove commented out log message * Update Services * Add LICENSE for adapted Therapi code * Remove InvalidOpJavadocException Wasn't being used * Various small clean-up changes * Format module-info.java * Clean up OpDependencyMemberParsers * Remove TODO in YAML version parsing * Throw IAE when Op yaml has no name * Partition name parser into its own method * Remove hints from method * Remove SciJava Parse2 dependency It wasn't used * OpFieldImplData: Document parseAdditionalTags * OpImplData: Javadoc for parsing additional tags * OpImplNoteParser: Convert Field to Method No real reason to keep it as a field * OpMethodImplData: simplify * ProcessingUtils: Add documentation * Write README for the Ops Indexer * Improve ImplNote parser regex
1 parent 6d351ef commit 753836d

File tree

111 files changed

+2404
-2531
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

111 files changed

+2404
-2531
lines changed

.github/build.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
#!/bin/sh
22
curl -fsLO https://raw.githubusercontent.com/scijava/scijava-scripts/master/ci-build.sh
3-
mvn -Djavadoc.skip -pl scijava/scijava-taglets clean install
3+
mvn -Djavadoc.skip -pl scijava/scijava-taglets,scijava/scijava-ops-indexer -am clean install
44
sh ci-build.sh

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

Lines changed: 1 addition & 112 deletions
Original file line numberDiff line numberDiff line change
@@ -26,120 +26,9 @@
2626
* POSSIBILITY OF SUCH DAMAGE.
2727
* #L%
2828
*/
29-
module net.imagej.ops2 {
29+
open module net.imagej.ops2 {
3030
exports net.imagej.ops2;
3131

32-
// -- Open plugins to scijava-ops, therapi
33-
opens net.imagej.ops2.adapt to therapi.runtime.javadoc, org.scijava.ops.engine;
34-
opens net.imagej.ops2.adapt.complexLift to therapi.runtime.javadoc, org.scijava.ops.engine;
35-
opens net.imagej.ops2.coloc to therapi.runtime.javadoc, org.scijava.ops.engine;
36-
opens net.imagej.ops2.coloc.icq to therapi.runtime.javadoc, org.scijava.ops.engine;
37-
opens net.imagej.ops2.coloc.kendallTau to therapi.runtime.javadoc, org.scijava.ops.engine;
38-
opens net.imagej.ops2.coloc.maxTKendallTau to therapi.runtime.javadoc, org.scijava.ops.engine;
39-
opens net.imagej.ops2.coloc.pearsons to therapi.runtime.javadoc, org.scijava.ops.engine;
40-
opens net.imagej.ops2.coloc.pValue to therapi.runtime.javadoc, org.scijava.ops.engine;
41-
opens net.imagej.ops2.convert to therapi.runtime.javadoc, org.scijava.ops.engine;
42-
opens net.imagej.ops2.convert.clip to therapi.runtime.javadoc, org.scijava.ops.engine;
43-
opens net.imagej.ops2.convert.copy to therapi.runtime.javadoc, org.scijava.ops.engine;
44-
opens net.imagej.ops2.copy to therapi.runtime.javadoc, org.scijava.ops.engine;
45-
opens net.imagej.ops2.create to therapi.runtime.javadoc, org.scijava.ops.engine;
46-
opens net.imagej.ops2.deconvolve to therapi.runtime.javadoc, org.scijava.ops.engine;
47-
opens net.imagej.ops2.deconvolve.accelerate to therapi.runtime.javadoc, org.scijava.ops.engine;
48-
opens net.imagej.ops2.eval to therapi.runtime.javadoc, org.scijava.ops.engine;
49-
opens net.imagej.ops2.features.haralick to therapi.runtime.javadoc, org.scijava.ops.engine;
50-
opens net.imagej.ops2.features.haralick.helper to therapi.runtime.javadoc, org.scijava.ops.engine;
51-
opens net.imagej.ops2.features.hog to therapi.runtime.javadoc, org.scijava.ops.engine;
52-
opens net.imagej.ops2.features.lbp2d to therapi.runtime.javadoc, org.scijava.ops.engine;
53-
opens net.imagej.ops2.features.tamura2d to therapi.runtime.javadoc, org.scijava.ops.engine;
54-
opens net.imagej.ops2.features.zernike to therapi.runtime.javadoc, org.scijava.ops.engine;
55-
opens net.imagej.ops2.filter to therapi.runtime.javadoc, org.scijava.ops.engine;
56-
opens net.imagej.ops2.filter.addNoise to therapi.runtime.javadoc, org.scijava.ops.engine;
57-
opens net.imagej.ops2.filter.bilateral to therapi.runtime.javadoc, org.scijava.ops.engine;
58-
opens net.imagej.ops2.filter.convolve to therapi.runtime.javadoc, org.scijava.ops.engine;
59-
opens net.imagej.ops2.filter.correlate to therapi.runtime.javadoc, org.scijava.ops.engine;
60-
opens net.imagej.ops2.filter.derivative to therapi.runtime.javadoc, org.scijava.ops.engine;
61-
opens net.imagej.ops2.filter.derivativeGauss to therapi.runtime.javadoc, org.scijava.ops.engine;
62-
opens net.imagej.ops2.filter.dog to therapi.runtime.javadoc, org.scijava.ops.engine;
63-
opens net.imagej.ops2.filter.fft to therapi.runtime.javadoc, org.scijava.ops.engine;
64-
opens net.imagej.ops2.filter.fftSize to therapi.runtime.javadoc, org.scijava.ops.engine;
65-
opens net.imagej.ops2.filter.gauss to therapi.runtime.javadoc, org.scijava.ops.engine;
66-
opens net.imagej.ops2.filter.hessian to therapi.runtime.javadoc, org.scijava.ops.engine;
67-
opens net.imagej.ops2.filter.ifft to therapi.runtime.javadoc, org.scijava.ops.engine;
68-
opens net.imagej.ops2.filter.pad to therapi.runtime.javadoc, org.scijava.ops.engine;
69-
opens net.imagej.ops2.filter.sigma to therapi.runtime.javadoc, org.scijava.ops.engine;
70-
opens net.imagej.ops2.filter.sobel to therapi.runtime.javadoc, org.scijava.ops.engine;
71-
opens net.imagej.ops2.filter.tubeness to therapi.runtime.javadoc, org.scijava.ops.engine;
72-
opens net.imagej.ops2.filter.vesselness to therapi.runtime.javadoc, org.scijava.ops.engine;
73-
opens net.imagej.ops2.geom to therapi.runtime.javadoc, org.scijava.ops.engine;
74-
opens net.imagej.ops2.geom.geom2d to org.scijava, therapi.runtime.javadoc, org.scijava.ops.engine;
75-
opens net.imagej.ops2.geom.geom3d to therapi.runtime.javadoc, org.scijava.ops.engine;
76-
opens net.imagej.ops2.identity to therapi.runtime.javadoc, org.scijava.ops.engine;
77-
opens net.imagej.ops2.image.ascii to therapi.runtime.javadoc, org.scijava.ops.engine;
78-
opens net.imagej.ops2.image.cooccurrenceMatrix to therapi.runtime.javadoc, org.scijava.ops.engine;
79-
opens net.imagej.ops2.image.distancetransform to therapi.runtime.javadoc, org.scijava.ops.engine;
80-
opens net.imagej.ops2.image.fill to therapi.runtime.javadoc, org.scijava.ops.engine;
81-
opens net.imagej.ops2.image.histogram to therapi.runtime.javadoc, org.scijava.ops.engine;
82-
opens net.imagej.ops2.image.integral to therapi.runtime.javadoc, org.scijava.ops.engine;
83-
opens net.imagej.ops2.image.invert to therapi.runtime.javadoc, org.scijava.ops.engine;
84-
opens net.imagej.ops2.image.normalize to therapi.runtime.javadoc, org.scijava.ops.engine;
85-
opens net.imagej.ops2.image.watershed to therapi.runtime.javadoc, org.scijava.ops.engine;
86-
opens net.imagej.ops2.imagemoments to therapi.runtime.javadoc, org.scijava.ops.engine;
87-
opens net.imagej.ops2.imagemoments.centralmoments to therapi.runtime.javadoc, org.scijava.ops.engine;
88-
opens net.imagej.ops2.imagemoments.hu to therapi.runtime.javadoc, org.scijava.ops.engine;
89-
opens net.imagej.ops2.imagemoments.moments to therapi.runtime.javadoc, org.scijava.ops.engine;
90-
opens net.imagej.ops2.imagemoments.normalizedcentralmoments to therapi.runtime.javadoc, org.scijava.ops.engine;
91-
opens net.imagej.ops2.labeling to therapi.runtime.javadoc, org.scijava.ops.engine;
92-
opens net.imagej.ops2.labeling.cca to therapi.runtime.javadoc, org.scijava.ops.engine;
93-
opens net.imagej.ops2.linalg.rotate to therapi.runtime.javadoc, org.scijava.ops.engine;
94-
opens net.imagej.ops2.logic to therapi.runtime.javadoc, org.scijava.ops.engine;
95-
opens net.imagej.ops2.map.neighborhood to therapi.runtime.javadoc, org.scijava.ops.engine;
96-
opens net.imagej.ops2.math to therapi.runtime.javadoc, org.scijava.ops.engine;
97-
opens net.imagej.ops2.math.multiply to therapi.runtime.javadoc, org.scijava.ops.engine;
98-
opens net.imagej.ops2.morphology to therapi.runtime.javadoc, org.scijava.ops.engine;
99-
opens net.imagej.ops2.morphology.thin to therapi.runtime.javadoc, org.scijava.ops.engine;
100-
opens net.imagej.ops2.project to therapi.runtime.javadoc, org.scijava.ops.engine;
101-
opens net.imagej.ops2.segment.detectJunctions to therapi.runtime.javadoc, org.scijava.ops.engine;
102-
opens net.imagej.ops2.segment.detectRidges to therapi.runtime.javadoc, org.scijava.ops.engine;
103-
opens net.imagej.ops2.slice to therapi.runtime.javadoc, org.scijava.ops.engine;
104-
opens net.imagej.ops2.stats to therapi.runtime.javadoc, org.scijava.ops.engine;
105-
opens net.imagej.ops2.stats.regression.leastSquares to therapi.runtime.javadoc, org.scijava.ops.engine;
106-
opens net.imagej.ops2.thread.chunker to therapi.runtime.javadoc, org.scijava.ops.engine;
107-
opens net.imagej.ops2.threshold to therapi.runtime.javadoc, org.scijava.ops.engine;
108-
opens net.imagej.ops2.threshold.apply to therapi.runtime.javadoc, org.scijava.ops.engine;
109-
opens net.imagej.ops2.threshold.huang to therapi.runtime.javadoc, org.scijava.ops.engine;
110-
opens net.imagej.ops2.threshold.ij1 to therapi.runtime.javadoc, org.scijava.ops.engine;
111-
opens net.imagej.ops2.threshold.intermodes to therapi.runtime.javadoc, org.scijava.ops.engine;
112-
opens net.imagej.ops2.threshold.isoData to therapi.runtime.javadoc, org.scijava.ops.engine;
113-
opens net.imagej.ops2.threshold.li to therapi.runtime.javadoc, org.scijava.ops.engine;
114-
opens net.imagej.ops2.threshold.localBernsen to therapi.runtime.javadoc, org.scijava.ops.engine;
115-
opens net.imagej.ops2.threshold.localContrast to therapi.runtime.javadoc, org.scijava.ops.engine;
116-
opens net.imagej.ops2.threshold.localMean to therapi.runtime.javadoc, org.scijava.ops.engine;
117-
opens net.imagej.ops2.threshold.localMedian to therapi.runtime.javadoc, org.scijava.ops.engine;
118-
opens net.imagej.ops2.threshold.localMidGrey to therapi.runtime.javadoc, org.scijava.ops.engine;
119-
opens net.imagej.ops2.threshold.localNiblack to therapi.runtime.javadoc, org.scijava.ops.engine;
120-
opens net.imagej.ops2.threshold.localPhansalkar to therapi.runtime.javadoc, org.scijava.ops.engine;
121-
opens net.imagej.ops2.threshold.localSauvola to therapi.runtime.javadoc, org.scijava.ops.engine;
122-
opens net.imagej.ops2.threshold.maxEntropy to therapi.runtime.javadoc, org.scijava.ops.engine;
123-
opens net.imagej.ops2.threshold.maxLikelihood to therapi.runtime.javadoc, org.scijava.ops.engine;
124-
opens net.imagej.ops2.threshold.mean to therapi.runtime.javadoc, org.scijava.ops.engine;
125-
opens net.imagej.ops2.threshold.minError to therapi.runtime.javadoc, org.scijava.ops.engine;
126-
opens net.imagej.ops2.threshold.minimum to therapi.runtime.javadoc, org.scijava.ops.engine;
127-
opens net.imagej.ops2.threshold.moments to therapi.runtime.javadoc, org.scijava.ops.engine;
128-
opens net.imagej.ops2.threshold.otsu to therapi.runtime.javadoc, org.scijava.ops.engine;
129-
opens net.imagej.ops2.threshold.percentile to therapi.runtime.javadoc, org.scijava.ops.engine;
130-
opens net.imagej.ops2.threshold.renyiEntropy to therapi.runtime.javadoc, org.scijava.ops.engine;
131-
opens net.imagej.ops2.threshold.rosin to therapi.runtime.javadoc, org.scijava.ops.engine;
132-
opens net.imagej.ops2.threshold.shanbhag to therapi.runtime.javadoc, org.scijava.ops.engine;
133-
opens net.imagej.ops2.threshold.triangle to therapi.runtime.javadoc, org.scijava.ops.engine;
134-
opens net.imagej.ops2.threshold.yen to therapi.runtime.javadoc, org.scijava.ops.engine;
135-
opens net.imagej.ops2.topology to therapi.runtime.javadoc, org.scijava.ops.engine;
136-
opens net.imagej.ops2.topology.eulerCharacteristic to therapi.runtime.javadoc, org.scijava.ops.engine;
137-
opens net.imagej.ops2.transform to therapi.runtime.javadoc, org.scijava.ops.engine;
138-
opens net.imagej.ops2.types to therapi.runtime.javadoc, org.scijava.ops.engine, org.scijava.types;
139-
opens net.imagej.ops2.types.adapt to therapi.runtime.javadoc, org.scijava.ops.engine;
140-
opens net.imagej.ops2.types.maxValue to therapi.runtime.javadoc, org.scijava.ops.engine;
141-
opens net.imagej.ops2.types.minValue to therapi.runtime.javadoc, org.scijava.ops.engine;
142-
14332
requires java.scripting;
14433
requires net.imagej.mesh2;
14534
requires net.imglib2;

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

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -62,161 +62,161 @@ public final class ConvertTypes<C extends ComplexType<C>, T extends IntegerType<
6262

6363
/**
6464
* @input input
65-
* @output output
65+
* @container output
6666
* @implNote op names='convert.bit'
6767
*/
6868
public final Computers.Arity1<C, BitType> complexToBit = (input, output) -> output.set(input.getRealDouble() != 0);
6969

7070
/**
7171
* @input input
72-
* @output output
72+
* @container output
7373
* @implNote op names='convert.bit'
7474
*/
7575
public final Computers.Arity1<T, BitType> integerToBit = (input, output) -> output.set(input.getIntegerLong() != 0);
7676

7777
/**
7878
* @input input
79-
* @output output
79+
* @container output
8080
* @implNote op names='convert.uint2'
8181
*/
8282
public final Computers.Arity1<C, Unsigned2BitType> complexToUint2 = (input, output) -> output.set((long) input.getRealDouble());
8383

8484
/**
8585
* @input input
86-
* @output output
86+
* @container output
8787
* @implNote op names='convert.uint2'
8888
*/
8989
public final Computers.Arity1<T, Unsigned2BitType> integerToUint2 = (input, output) -> output.set(input.getIntegerLong());
9090

9191
/**
9292
* @input input
93-
* @output output
93+
* @container output
9494
* @implNote op names='convert.uint4'
9595
*/
9696
public final Computers.Arity1<C, Unsigned4BitType> complexToUint4 = (input, output) -> output.set((long) input.getRealDouble());
9797

9898
/**
9999
* @input input
100-
* @output output
100+
* @container output
101101
* @implNote op names='convert.uint4'
102102
*/
103103
public final Computers.Arity1<T, Unsigned4BitType> integerToUint4 = (input, output) -> output.set(input.getIntegerLong());
104104

105105
/**
106106
* @input input
107-
* @output output
107+
* @container output
108108
* @implNote op names='convert.byte'
109109
*/
110110
public final Computers.Arity1<C, ByteType> complexToInt8 = (input, output) -> output.set((byte) input.getRealDouble());
111111

112112
/**
113113
* @input input
114-
* @output output
114+
* @container output
115115
* @implNote op names='convert.byte'
116116
*/
117117
public final Computers.Arity1<T, ByteType> integerToInt8 = (input, output) -> output.set((byte) input.getIntegerLong());
118118

119119
/**
120120
* @input input
121-
* @output output
121+
* @container output
122122
* @implNote op names='convert.uint8'
123123
*/
124124
public final Computers.Arity1<C, UnsignedByteType> complexToUint8 = (input, output) -> output.set((int) input.getRealDouble());
125125

126126
/**
127127
* @input input
128-
* @output output
128+
* @container output
129129
* @implNote op names='convert.uint8'
130130
*/
131131
public final Computers.Arity1<T, UnsignedByteType> integerToUint8 = (input, output) -> output.set(input.getInteger());
132132

133133
/**
134134
* @input input
135-
* @output output
135+
* @container output
136136
* @implNote op names='convert.uint12'
137137
*/
138138
public final Computers.Arity1<C, Unsigned12BitType> complexToUint12 = (input, output) -> output.set((long) input.getRealDouble());
139139

140140
/**
141141
* @input input
142-
* @output output
142+
* @container output
143143
* @implNote op names='convert.uint12'
144144
*/
145145
public final Computers.Arity1<T, Unsigned12BitType> integerToUint12 = (input, output) -> output.set(input.getIntegerLong());
146146

147147
/**
148148
* @input input
149-
* @output output
149+
* @container output
150150
* @implNote op names='convert.int16'
151151
*/
152152
public final Computers.Arity1<C, ShortType> complexToInt16 = (input, output) -> output.set((short) input.getRealDouble());
153153

154154
/**
155155
* @input input
156-
* @output output
156+
* @container output
157157
* @implNote op names='convert.int16'
158158
*/
159159
public final Computers.Arity1<T, ShortType> integerToInt16 = (input, output) -> output.set((short) input.getIntegerLong());
160160

161161
/**
162162
* @input input
163-
* @output output
163+
* @container output
164164
* @implNote op names='convert.uint16'
165165
*/
166166
public final Computers.Arity1<C, UnsignedShortType> complexToUint16 = (input, output) -> output.set((int) input.getRealDouble());
167167

168168
/**
169169
* @input input
170-
* @output output
170+
* @container output
171171
* @implNote op names='convert.uint16'
172172
*/
173173
public final Computers.Arity1<T, UnsignedShortType> integerToUint16 = (input, output) -> output.set(input.getInteger());
174174

175175
/**
176176
* @input input
177-
* @output output
177+
* @container output
178178
* @implNote op names='convert.int32'
179179
*/
180180
public final Computers.Arity1<C, IntType> complexToInt32 = (input, output) -> output.set((int) input.getRealDouble());
181181

182182
/**
183183
* @input input
184-
* @output output
184+
* @container output
185185
* @implNote op names='convert.int32'
186186
*/
187187
public final Computers.Arity1<T, IntType> integerToInt32 = (input, output) -> output.set(input.getInteger());
188188

189189
/**
190190
* @input input
191-
* @output output
191+
* @container output
192192
* @implNote op names='convert.uint32'
193193
*/
194194
public final Computers.Arity1<C, UnsignedIntType> complexToUint32 = (input, output) -> output.set((long) input.getRealDouble());
195195

196196
/**
197197
* @input input
198-
* @output output
198+
* @container output
199199
* @implNote op names='convert.uint32'
200200
*/
201201
public final Computers.Arity1<T, UnsignedIntType> integerToUint32 = (input, output) -> output.set(input.getIntegerLong());
202202

203203
/**
204204
* @input input
205-
* @output output
205+
* @container output
206206
* @implNote op names='convert.int64'
207207
*/
208208
public final Computers.Arity1<C, LongType> complexToInt64 = (input, output) -> output.set((long) input.getRealDouble());
209209

210210
/**
211211
* @input input
212-
* @output output
212+
* @container output
213213
* @implNote op names='convert.int64'
214214
*/
215215
public final Computers.Arity1<T, LongType> integerToInt64 = (input, output) -> output.set(input.getIntegerLong());
216216

217217
/**
218218
* @input input
219-
* @output output
219+
* @container output
220220
* @implNote op names='convert.uint64'
221221
*/
222222
public final Computers.Arity1<C, UnsignedLongType> complexToUint64 = (input, output) -> {
@@ -231,7 +231,7 @@ public final class ConvertTypes<C extends ComplexType<C>, T extends IntegerType<
231231

232232
/**
233233
* @input input
234-
* @output output
234+
* @container output
235235
* @implNote op names='convert.uint128'
236236
*/
237237
public final Computers.Arity1<C, Unsigned128BitType> complexToUint128 = (input, output) -> {
@@ -246,36 +246,36 @@ public final class ConvertTypes<C extends ComplexType<C>, T extends IntegerType<
246246

247247
/**
248248
* @input input
249-
* @output output
249+
* @container output
250250
* @implNote op names='convert.uint128'
251251
*/
252252
public final Computers.Arity1<T, Unsigned128BitType> integerToUint128 = (input, output) -> output.set(input.getBigInteger());
253253

254254
/**
255255
* @input input
256-
* @output output
256+
* @container output
257257
* @implNote op names='convert.float32'
258258
*/
259259
public final Computers.Arity1<C, FloatType> complexToFloat32 = (input, output) -> output.set(input.getRealFloat());
260260

261261
/**
262262
* @input input
263-
* @output output
263+
* @container output
264264
* @implNote op names='convert.cfloat32'
265265
*/
266266
public final Computers.Arity1<C, ComplexFloatType> complexToCfloat32 = (input, output) -> output.set(input.getRealFloat(),
267267
input.getImaginaryFloat());
268268

269269
/**
270270
* @input input
271-
* @output output
271+
* @container output
272272
* @implNote op names='convert.float64'
273273
*/
274274
public final Computers.Arity1<C, DoubleType> complexToFloat64 = (input, output) -> output.set(input.getRealDouble());
275275

276276
/**
277277
* @input input
278-
* @output output
278+
* @container output
279279
* @implNote op names='convert.cfloat64'
280280
*/
281281
public final Computers.Arity1<C, ComplexDoubleType> complexToCfloat64 = (input, output) -> output.set(input.getRealDouble(),

0 commit comments

Comments
 (0)