// Path: egtest-annotations/src/main/java/com/vocalabs/egtest/annotation/EgLanguage.java
// public enum EgLanguage {
//     /** Use the default language specified at a higher level, typically JAVA. */
//     INHERIT,
//     /** Java, copied verbatim into test code. */
//     JAVA,
// 
//     /**
//      * Produce Groovy embedded in Java. May produce simple Java rather than embedding a Groovy interpreter for simple
//      * cases such as primitives.
//      */
//     GROOVY,
// 
//     /** Produce Kotlin source code within Kotlin source files. Can't be mixed with JAVA or GROOVY within a file. */
//     KOTLIN
// }
// 
// Path: egtest-processor/src/main/java/com/vocalabs/egtest/processor/MessageHandler.java
// public class MessageHandler {
//     private final Messager messager;
//     private final boolean failOnUnsupported;
// 
//     public MessageHandler(Messager messager, boolean failOnUnsupported) {
//         this.messager = messager;
//         this.failOnUnsupported = failOnUnsupported;
//     }
// 
//     public void unsupported(Element el, Annotation a, String description) { unsupported(el, description+" "+a);}
// 
//     /**
//      * This includes all cases not promised in README.md or other documentation.
//      * @param el the element with the unsupported annotation(s)
//      * @param description the kind of thing that's unsupported, e.g. "inner classes"
//      */
//     public void unsupported(Element el, String description) {
//         Kind kind = (failOnUnsupported) ? ERROR : WARNING;
//         messager.printMessage(kind, "EgTest does not support " + description + " on " + elStr(el), el);
//     }
// 
//     private String elStr(Element el) {
//         return el+" in "+ JavaModelUtil.topLevelClass(el);
//     }
// 
//     public void note(String message) {
//         messager.printMessage(NOTE, message);
//     }
// 
//     /**
//      * Print the stack trace as well as the message.
//      * @param error a caught exception
//      */
//     public void error(Exception error) {
//         error.printStackTrace();
//         messager.printMessage(ERROR, error.getMessage());
//     }
// 
//     public void error(String message) {
//         messager.printMessage(ERROR, message);
//     }
// 
//     public void error(Element el, String message) {
//         messager.printMessage(ERROR, message, el);
//     }
// }


import com.vocalabs.egtest.annotation.EgDefaultLanguage;
import com.vocalabs.egtest.annotation.EgLanguage;
import com.vocalabs.egtest.processor.MessageHandler;
import javax.lang.model.element.Element;
import java.lang.annotation.Annotation;
import java.util.Collections;
import java.util.List;
import java.util.Set;
package com.vocalabs.egtest.processor.data;



public class DefaultLanguageReader implements AnnotationReader<EgItem<EgDefaultLanguage>> {

    public static final DefaultLanguageReader INSTANCE = new DefaultLanguageReader();

    @Override
    public Set<Class<? extends Annotation>> supportedAnnotationClasses() {
        return Collections.singleton(EgDefaultLanguage.class);
    }

    @Override
    public List<EgItem<EgDefaultLanguage>> examples(Annotation annotation, Element element, MessageHandler messageHandler) {
        return Collections.singletonList(new Item(element, (EgDefaultLanguage) annotation));
    }

    public static class Item implements EgItem<EgDefaultLanguage> {
        private final Element element;
        private final EgDefaultLanguage language;

        public Item(Element element, EgDefaultLanguage language) {
            this.language = language;
            this.element = element;
        }

        @Override
        public EgDefaultLanguage getAnnotation() {
// Path: egtest-annotations/src/main/java/com/vocalabs/egtest/annotation/EgLanguage.java
// public enum EgLanguage {
//     /** Use the default language specified at a higher level, typically JAVA. */
//     INHERIT,
//     /** Java, copied verbatim into test code. */
//     JAVA,
// 
//     /**
//      * Produce Groovy embedded in Java. May produce simple Java rather than embedding a Groovy interpreter for simple
//      * cases such as primitives.
//      */
//     GROOVY,
// 
//     /** Produce Kotlin source code within Kotlin source files. Can't be mixed with JAVA or GROOVY within a file. */
//     KOTLIN
// }
// 
// Path: egtest-processor/src/main/java/com/vocalabs/egtest/processor/MessageHandler.java
// public class MessageHandler {
//     private final Messager messager;
//     private final boolean failOnUnsupported;
// 
//     public MessageHandler(Messager messager, boolean failOnUnsupported) {
//         this.messager = messager;
//         this.failOnUnsupported = failOnUnsupported;
//     }
// 
//     public void unsupported(Element el, Annotation a, String description) { unsupported(el, description+" "+a);}
// 
//     /**
//      * This includes all cases not promised in README.md or other documentation.
//      * @param el the element with the unsupported annotation(s)
//      * @param description the kind of thing that's unsupported, e.g. "inner classes"
//      */
//     public void unsupported(Element el, String description) {
//         Kind kind = (failOnUnsupported) ? ERROR : WARNING;
//         messager.printMessage(kind, "EgTest does not support " + description + " on " + elStr(el), el);
//     }
// 
//     private String elStr(Element el) {
//         return el+" in "+ JavaModelUtil.topLevelClass(el);
//     }
// 
//     public void note(String message) {
//         messager.printMessage(NOTE, message);
//     }
// 
//     /**
//      * Print the stack trace as well as the message.
//      * @param error a caught exception
//      */
//     public void error(Exception error) {
//         error.printStackTrace();
//         messager.printMessage(ERROR, error.getMessage());
//     }
// 
//     public void error(String message) {
//         messager.printMessage(ERROR, message);
//     }
// 
//     public void error(Element el, String message) {
//         messager.printMessage(ERROR, message, el);
//     }
// }


// Path: egtest-processor/src/main/java/com/vocalabs/egtest/processor/data/DefaultLanguageReader.java
import com.vocalabs.egtest.annotation.EgDefaultLanguage;
import com.vocalabs.egtest.annotation.EgLanguage;
import com.vocalabs.egtest.processor.MessageHandler;
import javax.lang.model.element.Element;
import java.lang.annotation.Annotation;
import java.util.Collections;
import java.util.List;
import java.util.Set;

package com.vocalabs.egtest.processor.data;



public class DefaultLanguageReader implements AnnotationReader<EgItem<EgDefaultLanguage>> {

    public static final DefaultLanguageReader INSTANCE = new DefaultLanguageReader();

    @Override
    public Set<Class<? extends Annotation>> supportedAnnotationClasses() {
        return Collections.singleton(EgDefaultLanguage.class);
    }

    @Override
    public List<EgItem<EgDefaultLanguage>> examples(Annotation annotation, Element element, MessageHandler messageHandler) {
        return Collections.singletonList(new Item(element, (EgDefaultLanguage) annotation));
    }

    public static class Item implements EgItem<EgDefaultLanguage> {
        private final Element element;
        private final EgDefaultLanguage language;

        public Item(Element element, EgDefaultLanguage language) {
            this.language = language;
            this.element = element;
        }

        @Override
        public EgDefaultLanguage getAnnotation() {
            return language;