org.intellij.lang.annotations
Annotation Type MagicConstant


@Retention(value=SOURCE)
@Target(value={FIELD,PARAMETER,LOCAL_VARIABLE,ANNOTATION_TYPE,METHOD})
public @interface MagicConstant

This annotation intended to help IDEA to detect and auto-complete int and String constants used as an enumeration. For example, in the Label.Label(String, int) constructor the alignment parameter can be one of the following int constants: Label.LEFT, Label.CENTER or Label.RIGHT

So, if @MagicConstant annotation applied to this constructor, IDEA will check the constructor usages for the allowed values.

E.g.

new Label("text", 0); // 0 is not allowed
 new Label("text", Label.LEFT); // OK
 

@MagicConstant can be applied to:

The @MagicConstant annotation has SOURCE retention, i.e. it is removed upon compilation and does not create any runtime overhead.


Optional Element Summary
 long[] flags
           
 Class flagsFromClass
           
 long[] intValues
           
 String[] stringValues
           
 Class valuesFromClass
           
 

intValues

public abstract long[] intValues
Returns:
int values (typically named constants) which are allowed here. E.g. void setConfirmOpenNewProject(@MagicConstant(intValues = {OPEN_PROJECT_ASK, OPEN_PROJECT_NEW_WINDOW, OPEN_PROJECT_SAME_WINDOW}) int confirmOpenNewProject);
Default:
{}

stringValues

public abstract String[] stringValues
Returns:
String values (typically named constants) which are allowed here.
Default:
{}

flags

public abstract long[] flags
Returns:
allowed int flags (i.e. values (typically named constants) which can be combined with bitwise or operator (|). Also 0 and -1 are considered allowed. E.g.
Default:
{}

valuesFromClass

public abstract Class valuesFromClass
Returns:
allowed values which are defined in the specified class public static final constants. E.g.
Default:
void.class

flagsFromClass

public abstract Class flagsFromClass
Returns:
allowed int flags which are defined in the specified class public static final constants. E.g. @MagicConstant(flagsFromClass = java.awt.InputEvent.class) int eventMask; eventMask = 10; // not allowed; eventMask = InputEvent.CTRL_MASK | InputEvent.ALT_MASK; // OK
Default:
void.class


Copyright © 2013. All rights reserved.