package org.qi4j.library.struts2.convention; import com.opensymphony.xwork2.ObjectFactory; import com.opensymphony.xwork2.config.Configuration; import com.opensymphony.xwork2.inject.Container; import com.opensymphony.xwork2.inject.Inject; import java.lang.reflect.Modifier; import org.apache.struts2.convention.PackageBasedActionConfigBuilder; import org.qi4j.library.struts2.ActionConfiguration; public class Qi4jPackageBasedActionConfigBuilder extends PackageBasedActionConfigBuilder { private final ActionConfiguration actionConfiguration; @Inject public Qi4jPackageBasedActionConfigBuilder( Configuration configuration, Container container, ObjectFactory objectFactory, @Inject( "struts.convention.redirect.to.slash" ) String redirectToSlash, @Inject( "struts.convention.default.parent.package" ) String defaultParentPackage, ActionConfiguration actionConfiguration ) { super( configuration, container, objectFactory, redirectToSlash, defaultParentPackage ); this.actionConfiguration = actionConfiguration; } @Override public void buildActionConfigs() { buildConfiguration( actionConfiguration.getClasses() ); } @Override protected boolean cannotInstantiate( Class<?> actionClass ) { return actionClass.isAnnotation() || actionClass.isEnum() || ( !actionClass.isInterface() && ( actionClass.getModifiers() & Modifier.ABSTRACT ) != 0 ); } }