All Downloads are FREE. Search and download functionalities are using the official Maven repository.

xapi.annotation.inject.InstanceDefault Maven / Gradle / Ivy

Go to download

Everything needed to run a comprehensive dev environment. Just type X_ and pick a service from autocomplete; new dev modules will be added as they are built. The only dev service not included in the uber jar is xapi-dev-maven, as it includes all runtime dependencies of maven, adding ~4 seconds to build time, and 6 megabytes to the final output jar size (without xapi-dev-maven, it's ~1MB).

The newest version!
package xapi.annotation.inject;

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

  /**
   * Used to link an instance implementation class to an injectable interface.
   *
   * 

* * There can be one and only one @InstanceDefault PER scope class; * * A ThreadLocal variable is used to affect what types are injected; * * * *

* * Example: * *
* * static interface MyService{} * *
* *
@SingletonDefault(implFor=MyService.class)
* static class MyServiceImpl implements MyService{} * *

* * //returns a singleton instance of MyServiceImpl *
* MyService service = X_Inject.singleton(MyService.class); *

* * @author James X. Nelson ([email protected], @james) */ @Target(value=ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) public @interface InstanceDefault { /** * @return - The class object for the instance / class the annotated type is implementing. * Since your class must implement this interface, it must be on your classpath anyway ;) * */ Class implFor(); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy