001 package org.bridj.ann;
002
003 import java.lang.annotation.ElementType;
004 import java.lang.annotation.Inherited;
005 import java.lang.annotation.Retention;
006 import java.lang.annotation.RetentionPolicy;
007 import java.lang.annotation.Target;
008
009 /**
010 * Specify the name of the native library that should be bound to the class or method this annotation is put on.<br>
011 * This name can then be changed at runtime to match the platform-specific name of the library with @see org.bridj.BridJ#setNativeLibraryActualName(String, String).<br>
012 * Alternative aliases can also be added at runtime with @see org.bridj.BridJ#addNativeLibraryAlias(String, String).
013 * @author Olivier Chafik
014 */
015 @Retention(RetentionPolicy.RUNTIME)
016 @Inherited
017 @Target({ElementType.TYPE, ElementType.METHOD, ElementType.CONSTRUCTOR})
018 public @interface Library {
019 /**
020 * Name of this library.
021 */
022 String value();
023 /**
024 * Names of libraries that need to be loaded before this library is loaded
025 */
026 String[] dependencies() default {};
027 String versionPattern() default "";
028 }