Map<String, Set<Type>> inputTypes = Maps.newHashMap();
Map<String, Set<Type>> outputTypes = Maps.newHashMap();
Map<String, String> properties = Maps.newHashMap(flowletSpec.getProperties());
Reflections.visit(flowlet, TypeToken.of(flowlet.getClass()),
new PropertyFieldExtractor(properties),
new OutputEmitterFieldExtractor(outputTypes),
new ProcessMethodExtractor(inputTypes));
this.inputTypes = immutableCopyOf(inputTypes);
this.outputTypes = immutableCopyOf(outputTypes);