summaryrefslogtreecommitdiffstats
path: root/build/annotationProcessors/AnnotationInfo.java
blob: a8dbc53ce943d901602e068d1673614af77665ba (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

package org.mozilla.gecko.annotationProcessors;

/**
 * Object holding annotation data. Used by GeneratableElementIterator.
 */
public class AnnotationInfo {
    public enum ExceptionMode {
        ABORT,
        NSRESULT,
        IGNORE;

        String nativeValue() {
            return "mozilla::jni::ExceptionMode::" + name();
        }
    }

    public enum CallingThread {
        GECKO,
        UI,
        ANY;

        String nativeValue() {
            return "mozilla::jni::CallingThread::" + name();
        }
    }

    public enum DispatchTarget {
        GECKO,
        PROXY,
        CURRENT;

        String nativeValue() {
            return "mozilla::jni::DispatchTarget::" + name();
        }
    }

    public final String wrapperName;
    public final ExceptionMode exceptionMode;
    public final CallingThread callingThread;
    public final DispatchTarget dispatchTarget;

    public AnnotationInfo(String wrapperName, ExceptionMode exceptionMode,
                          CallingThread callingThread, DispatchTarget dispatchTarget) {

        this.wrapperName = wrapperName;
        this.exceptionMode = exceptionMode;
        this.callingThread = callingThread;
        this.dispatchTarget = dispatchTarget;
    }
}