package org.jboss.solder.test.reflection.annotated;
import javax.inject.Named;
import org.jboss.solder.literal.AlternativeLiteral;
import org.jboss.solder.literal.ApplicationScopedLiteral;
import org.jboss.solder.literal.NamedLiteral;
import org.jboss.solder.reflection.annotated.AnnotationBuilder;
import org.jboss.solder.reflection.annotated.AnnotationRedefiner;
import org.jboss.solder.reflection.annotated.RedefinitionContext;
class NamedAnnotationRedefiner implements AnnotationRedefiner<Named> {
@Override
public void redefine(RedefinitionContext<Named> ctx) {
Named named = ctx.getAnnotatedElement().getAnnotation(Named.class);
if ("cat".equals(named.value()))
{
AnnotationBuilder builder = ctx.getAnnotationBuilder();
// add two annotations
builder.add(new AlternativeLiteral());
builder.add(new ApplicationScopedLiteral());
// change the value of @Named
builder.remove(Named.class);
builder.add(new NamedLiteral("tomcat"));
}
}
}