in compiler/frontend/beam/src/main/java/org/apache/nemo/compiler/frontend/beam/PipelineTranslator.java [76:99]
private PipelineTranslator() {
for (final Method translator : getClass().getDeclaredMethods()) {
final PrimitiveTransformTranslator primitive = translator.getAnnotation(PrimitiveTransformTranslator.class);
final CompositeTransformTranslator composite = translator.getAnnotation(CompositeTransformTranslator.class);
if (primitive != null) {
for (final Class<? extends PTransform> transform : primitive.value()) {
if (primitiveTransformToTranslator.containsKey(transform)) {
throw new RuntimeException(String.format("Translator for primitive transform %s is"
+ "already registered: %s", transform, primitiveTransformToTranslator.get(transform)));
}
primitiveTransformToTranslator.put(transform, translator);
}
}
if (composite != null) {
for (final Class<? extends PTransform> transform : composite.value()) {
if (compositeTransformToTranslator.containsKey(transform)) {
throw new RuntimeException(String.format("Translator for composite transform %s is"
+ "already registered: %s", transform, compositeTransformToTranslator.get(transform)));
}
compositeTransformToTranslator.put(transform, translator);
}
}
}
}