package com.greghaskins.spectrum;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import org.junit.runner.Description;
import org.junit.runner.Runner;
import org.junit.runner.notification.RunNotifier;
import org.junit.runners.model.InitializationError;

public class Spectrum extends Runner {

    @Retention(RetentionPolicy.RUNTIME)
    @Target({ ElementType.TYPE })
    public static @interface Describe {
        String value();
    }

    @Retention(RetentionPolicy.RUNTIME)
    @Target({ ElementType.METHOD })
    public static @interface It {
        String value();
    }

    @Retention(RetentionPolicy.RUNTIME)
    @Target({ ElementType.METHOD })
    public @interface BeforeEach {

    }

    private final Context<?> context;

    @SuppressWarnings({ "rawtypes", "unchecked" })
    public Spectrum(final Class<?> testClass) throws InitializationError {
        context = new Context(testClass);
    }

    @Override
    public Description getDescription() {
        return context.getDescription();
    }

    @Override
    public void run(final RunNotifier notifier) {
        context.run(notifier);
    }

}

@@ -850,59 +850,8 @@
 t;%0A%0A
-    @SuppressWarnings(%7B %22rawtypes%22, %22unchecked%22 %7D)%0A
     
@@ -856,16 +856,20 @@
   public
+ %3CT%3E
  Spectru
@@ -882,17 +882,17 @@
 l Class%3C
-?
+T
 %3E testCl
@@ -954,16 +954,19 @@
  Context
+%3CT%3E
 (testCla

resolve warnings in Spectrum runner