private void configureContext(Context context) {
   Set<Model> models = AnnotationUtils.getAnnotations(context.getClass(), Model.class);
   GraphWalker annotation = context.getClass().getAnnotation(GraphWalker.class);
   if (!models.isEmpty()) {
     Path path = Paths.get(models.iterator().next().file());
     ContextFactoryScanner.get(reflections, path).create(path, context);
   }
   if (!"".equals(annotation.value())) {
     context.setPathGenerator(GeneratorFactory.parse(annotation.value()));
   } else {
     context.setPathGenerator(PathGeneratorFactory.createPathGenerator(annotation));
   }
   if (!"".equals(annotation.start())) {
     context.setNextElement(getElement(context.getModel(), annotation.start()));
   }
 }
 public String generate(Path path) {
   ContextFactory factory = ContextFactoryScanner.get(path);
   SourceFile sourceFile = new SourceFile(path);
   return generate(sourceFile, factory.create(path).getModel());
 }