MCPcopy Create free account
hub / github.com/DeepRec-AI/DeepRec / RenderConstructor

Function RenderConstructor

tensorflow/java/src/gen/cc/op_generator.cc:276–318  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

274}
275
276void RenderConstructor(const OpSpec& op, const Type& op_class,
277 SourceWriter* writer) {
278 Variable operation =
279 Variable::Create("operation", Type::Class("Operation", "org.tensorflow"));
280 Method constructor = Method::ConstructorFor(op_class).add_argument(operation);
281 for (const ArgumentSpec& output : op.outputs()) {
282 if (output.iterable() && !output.type().wildcard()) {
283 constructor.add_annotation(
284 Annotation::Create("SuppressWarnings").attributes("\"unchecked\""));
285 break;
286 }
287 }
288 writer->BeginMethod(constructor, PRIVATE)
289 .Append("super(operation);")
290 .EndLine();
291 if (!op.outputs().empty()) {
292 writer->Append("int outputIdx = 0;").EndLine();
293 for (const ArgumentSpec& output : op.outputs()) {
294 if (output.iterable()) {
295 string var_length = output.var().name() + "Length";
296 writer->Append("int " + var_length)
297 .Append(" = operation.outputListLength(\"" + output.op_def_name() +
298 "\");")
299 .EndLine()
300 .Append(output.var().name() + " = Arrays.asList(");
301 if (!output.type().wildcard()) {
302 writer->Append("(")
303 .AppendType(output.var().type().parameters().front())
304 .Append("[])");
305 }
306 writer->Append("operation.outputList(outputIdx, " + var_length + "));")
307 .EndLine()
308 .Append("outputIdx += " + var_length + ";")
309 .EndLine();
310 } else {
311 writer
312 ->Append(output.var().name() + " = operation.output(outputIdx++);")
313 .EndLine();
314 }
315 }
316 }
317 writer->EndMethod();
318}
319
320void RenderGettersAndSetters(const OpSpec& op, SourceWriter* writer) {
321 for (const AttributeSpec& attr : op.optional_attributes()) {

Callers 1

GenerateOpFunction · 0.85

Calls 12

add_argumentMethod · 0.80
wildcardMethod · 0.80
typeMethod · 0.65
nameMethod · 0.65
CreateFunction · 0.50
outputsMethod · 0.45
iterableMethod · 0.45
AppendMethod · 0.45
emptyMethod · 0.45
varMethod · 0.45
frontMethod · 0.45
parametersMethod · 0.45

Tested by

no test coverage detected