Search in sources :

Example 1 with Element

use of org.eclipse.ceylon.javax.lang.model.element.Element in project ceylon by eclipse.

the class JNIWriter method jniType.

protected final String jniType(TypeMirror t) {
    TypeElement throwable = elements.getTypeElement("java.lang.Throwable");
    TypeElement jClass = elements.getTypeElement("java.lang.Class");
    TypeElement jString = elements.getTypeElement("java.lang.String");
    Element tclassDoc = types.asElement(t);
    switch(t.getKind()) {
        case ARRAY:
            {
                TypeMirror ct = ((ArrayType) t).getComponentType();
                switch(ct.getKind()) {
                    case BOOLEAN:
                        return "jbooleanArray";
                    case BYTE:
                        return "jbyteArray";
                    case CHAR:
                        return "jcharArray";
                    case SHORT:
                        return "jshortArray";
                    case INT:
                        return "jintArray";
                    case LONG:
                        return "jlongArray";
                    case FLOAT:
                        return "jfloatArray";
                    case DOUBLE:
                        return "jdoubleArray";
                    case ARRAY:
                    case DECLARED:
                        return "jobjectArray";
                    default:
                        throw new Error(ct.toString());
                }
            }
        case VOID:
            return "void";
        case BOOLEAN:
            return "jboolean";
        case BYTE:
            return "jbyte";
        case CHAR:
            return "jchar";
        case SHORT:
            return "jshort";
        case INT:
            return "jint";
        case LONG:
            return "jlong";
        case FLOAT:
            return "jfloat";
        case DOUBLE:
            return "jdouble";
        case DECLARED:
            {
                if (tclassDoc.equals(jString))
                    return "jstring";
                else if (types.isAssignable(t, throwable.asType()))
                    return "jthrowable";
                else if (types.isAssignable(t, jClass.asType()))
                    return "jclass";
                else
                    return "jobject";
            }
    }
    Assert.check(false, "jni unknown type");
    return null;
/* dead code. */
}
Also used : TypeMirror(org.eclipse.ceylon.javax.lang.model.type.TypeMirror) TypeElement(org.eclipse.ceylon.javax.lang.model.element.TypeElement) Element(org.eclipse.ceylon.javax.lang.model.element.Element) TypeElement(org.eclipse.ceylon.javax.lang.model.element.TypeElement) ExecutableElement(org.eclipse.ceylon.javax.lang.model.element.ExecutableElement) VariableElement(org.eclipse.ceylon.javax.lang.model.element.VariableElement)

Example 2 with Element

use of org.eclipse.ceylon.javax.lang.model.element.Element in project ceylon by eclipse.

the class Facades method unfacade.

public static Element[] unfacade(javax.lang.model.element.Element[] arg) {
    Element[] ret = new Element[arg.length];
    int i = 0;
    for (javax.lang.model.element.Element el : arg) {
        ret[i++] = unfacade(el);
    }
    return ret;
}
Also used : PackageElement(org.eclipse.ceylon.javax.lang.model.element.PackageElement) VariableElement(org.eclipse.ceylon.javax.lang.model.element.VariableElement) TypeParameterElement(org.eclipse.ceylon.javax.lang.model.element.TypeParameterElement) Element(org.eclipse.ceylon.javax.lang.model.element.Element) TypeElement(org.eclipse.ceylon.javax.lang.model.element.TypeElement) ExecutableElement(org.eclipse.ceylon.javax.lang.model.element.ExecutableElement) Element(org.eclipse.ceylon.javax.lang.model.element.Element)

Aggregations

Element (org.eclipse.ceylon.javax.lang.model.element.Element)2 ExecutableElement (org.eclipse.ceylon.javax.lang.model.element.ExecutableElement)2 TypeElement (org.eclipse.ceylon.javax.lang.model.element.TypeElement)2 VariableElement (org.eclipse.ceylon.javax.lang.model.element.VariableElement)2 PackageElement (org.eclipse.ceylon.javax.lang.model.element.PackageElement)1 TypeParameterElement (org.eclipse.ceylon.javax.lang.model.element.TypeParameterElement)1 TypeMirror (org.eclipse.ceylon.javax.lang.model.type.TypeMirror)1