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

xapi.annotation.compile.Resource 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.compile;

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

import xapi.annotation.reflect.MirroredAnnotation;

/**
 * A compile-time resource; default behavior is to treat {@link #value()} as a
 * resource location, and use the current thread classloader to get that resource.
 * 

* The {@link #type()} method is used to specify what kind of resource is being included; * allowing a compiler service to know how it should be interpretting the annotation value. *

* This annotation is only meant to be used as values for other annotations, * and its implementation is dependent on the compiler class using it. *

* The use of the {@link #qualifier()} method is strictly implementation dependent; * it is used when the default {@link ResourceType}s are not enough to fully describe * how to treat the given dependency. * * @author "James X. Nelson ([email protected])" * */ @Documented @Target({}) @Retention(RetentionPolicy.RUNTIME) @MirroredAnnotation public @interface Resource { public enum ResourceType { CLASSPATH_RESOURCE, LITERAL_VALUE, ABSOLUTE_FILE, CLASS_NAME, PACKAGE_NAME, ARTIFACT_ID } String value(); ResourceType type() default ResourceType.CLASSPATH_RESOURCE; String qualifier() default ""; /** * @return false if it's ok that a requested resource is not found; * default is true. */ boolean required() default true; }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy