package reference.runtime.annotations;

import runtime.annotations.RuntimeParameterAnnotation;
import runtime.annotations.RuntimeRepeatedAnnotation;
import runtime.annotations.RuntimeTypeAnnotation;

@RuntimeRepeatedAnnotation
@RuntimeRepeatedAnnotation
public @RuntimeTypeAnnotation class ReferenceRuntime extends
		@RuntimeTypeAnnotation Bar implements @RuntimeTypeAnnotation Foo {

	public @RuntimeTypeAnnotation ReferenceRuntime()
			throws @RuntimeTypeAnnotation Exception {
		// TODO Auto-generated constructor stub
	}

	@RuntimeTypeAnnotation
	String q;

	@RuntimeTypeAnnotation
	public String foo(@RuntimeParameterAnnotation @RuntimeTypeAnnotation int p)
			throws @RuntimeTypeAnnotation Exception {
		new @RuntimeTypeAnnotation Object();
		@RuntimeTypeAnnotation
		String s = "abc";
		@RuntimeTypeAnnotation
		Foo foo = this::foo;

		if (foo instanceof @RuntimeTypeAnnotation Foo)
			return s;
		else
			return (@RuntimeTypeAnnotation String) null;
	}

}
