javax.lang.model.type.IntersectionType#javax.lang.model.type.ArrayType源码实例Demo

下面列出了javax.lang.model.type.IntersectionType#javax.lang.model.type.ArrayType 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: openjdk-jdk9   文件: PluginGenerator.java
private static void appendSimpleTypeName(StringBuilder ret, TypeMirror type) {
    switch (type.getKind()) {
        case DECLARED:
            DeclaredType declared = (DeclaredType) type;
            TypeElement element = (TypeElement) declared.asElement();
            ret.append(element.getSimpleName());
            break;
        case TYPEVAR:
            appendSimpleTypeName(ret, ((TypeVariable) type).getUpperBound());
            break;
        case WILDCARD:
            appendSimpleTypeName(ret, ((WildcardType) type).getExtendsBound());
            break;
        case ARRAY:
            appendSimpleTypeName(ret, ((ArrayType) type).getComponentType());
            ret.append("Array");
            break;
        default:
            ret.append(type);
    }
}
 
源代码2 项目: quarkus   文件: ConfigDoItemFinder.java
private String simpleTypeToString(TypeMirror typeMirror) {
    if (typeMirror.getKind().isPrimitive()) {
        return typeMirror.toString();
    } else if (typeMirror.getKind() == TypeKind.ARRAY) {
        return simpleTypeToString(((ArrayType) typeMirror).getComponentType());
    }

    final String knownGenericType = getKnownGenericType((DeclaredType) typeMirror);

    if (knownGenericType != null) {
        return knownGenericType;
    }

    List<? extends TypeMirror> typeArguments = ((DeclaredType) typeMirror).getTypeArguments();
    if (!typeArguments.isEmpty()) {
        return simpleTypeToString(typeArguments.get(0));
    }

    return typeMirror.toString();
}
 
源代码3 项目: bazel   文件: Marshallers.java
@Override
public void addDeserializationCode(Context context)
    throws SerializationProcessingFailedException {
  Context repeated =
      context.with(
          ((ArrayType) context.type).getComponentType(), context.makeName("repeated"));
  String lengthName = context.makeName("length");
  context.builder.addStatement("int $L = codedIn.readInt32()", lengthName);

  String resultName = context.makeName("result");
  context.builder.addStatement(
      "$T[] $L = new $T[$L]",
      repeated.getTypeName(),
      resultName,
      repeated.getTypeName(),
      lengthName);
  String indexName = context.makeName("i");
  context.builder.beginControlFlow(
      "for (int $L = 0; $L < $L; ++$L)", indexName, indexName, lengthName, indexName);
  writeDeserializationCode(repeated);
  context.builder.addStatement("$L[$L] = $L", resultName, indexName, repeated.name);
  context.builder.endControlFlow();
  context.builder.addStatement("$L = $L", context.name, resultName);
}
 
源代码4 项目: netbeans   文件: Constructor.java
private TypeDeclaration typeToTypeDeclaration(TypeMirror tMirror){
    int dimension = 0;
    TypeMirror aType =  tMirror;
    ITypeDeclaration[] generics = null;
    if(tMirror.getKind() == TypeKind.ARRAY){
        for(;aType.getKind() == TypeKind.ARRAY; aType =  ((ArrayType)tMirror).getComponentType()) {
            dimension++;
        }
    }
    if(aType.getKind() == TypeKind.DECLARED){
        DeclaredType dType = (DeclaredType) aType;
        List<? extends TypeMirror> parameters = dType.getTypeArguments();
        if( parameters!=null && parameters.size()>0){
            generics = new ITypeDeclaration[parameters.size()];
            int i=0;
            for(TypeMirror gType: parameters){
                generics[i] = typeToTypeDeclaration(gType);
                i++;
            }
        }
    }
    return new TypeDeclaration(owner, generics, dimension);
}
 
源代码5 项目: sqlitemagic   文件: Environment.java
public ExtendedTypeElement getSupportedSerializedTypeElement(TypeMirror typeMirror) {
  boolean isArrayElement = false;
  boolean isGenericElement = false;
  Dual<TypeElement, Boolean> typeElement = getTypeElement(typeMirror);
  if (typeElement == null) {
    if (typeMirror instanceof ArrayType) {
      ArrayType arrayType = (ArrayType) typeMirror;
      final TypeMirror arrayComponentType = arrayType.getComponentType();
      if (typeUtils.isSameType(arrayComponentType, Const.BYTE_TYPE)) {
        typeElement = getTypeElement(arrayComponentType);
        isArrayElement = true;
      } else {
        return ExtendedTypeElement.EMPTY;
      }
    } else {
      typeElement = Dual.create(getGenericTypeElement(typeMirror), false);
      isGenericElement = true;
    }
  }
  return new ExtendedTypeElement(typeElement, typeMirror, isArrayElement, isGenericElement);
}
 
源代码6 项目: auto   文件: MoreTypes.java
@Override
public Integer visitArray(ArrayType t, Set<Element> visiting) {
  int result = hashKind(HASH_SEED, t);
  result *= HASH_MULTIPLIER;
  result += t.getComponentType().accept(this, visiting);
  return result;
}
 
源代码7 项目: netbeans   文件: TypeProductionFilter.java
private boolean checkArrayBeanType(TypeMirror productionType,
        TypeMirror arrayComponentType)
{
    if ( productionType == null ){
        return false;
    }
    if ( productionType.getKind() != TypeKind.ARRAY ){
        return false;
    }
    return getImplementation().getHelper().getCompilationController().
            getTypes().isSameType( arrayComponentType,
                    ((ArrayType) productionType).getComponentType());
}
 
源代码8 项目: TencentKona-8   文件: TypeMonikerFactory.java
public static TypeMoniker getTypeMoniker(TypeMirror typeMirror) {
    if (typeMirror == null)
        throw new NullPointerException();

    if (typeMirror.getKind().isPrimitive())
        return new PrimitiveTypeMoniker((PrimitiveType) typeMirror);
    else if (typeMirror.getKind().equals(TypeKind.ARRAY))
        return new ArrayTypeMoniker((ArrayType) typeMirror);
    else if (typeMirror.getKind().equals(TypeKind.DECLARED))
        return new DeclaredTypeMoniker((DeclaredType) typeMirror);
    return getTypeMoniker(typeMirror.toString());
}
 
源代码9 项目: auto   文件: TypeEncoder.java
/**
 * {@inheritDoc} The result respects the Java syntax, whereby {@code Foo @Bar []} is an
 * annotation on the array type itself, while {@code @Bar Foo[]} would be an annotation on the
 * component type.
 */
@Override
public StringBuilder visitArray(ArrayType type, StringBuilder sb) {
  visit2(type.getComponentType(), sb);
  List<? extends AnnotationMirror> annotationMirrors = type.getAnnotationMirrors();
  if (!annotationMirrors.isEmpty()) {
    sb.append(" ");
    appendAnnotationsWithExclusions(annotationMirrors, sb);
  }
  return sb.append("[]");
}
 
源代码10 项目: featured   文件: Names.java
public TypeName getTypeNameByKind(VariableElement param) {
    switch (param.asType().getKind()) {

        case BOOLEAN:
            return TypeName.BOOLEAN;
        case BYTE:
            return TypeName.BYTE;
        case CHAR:
            return TypeName.CHAR;
        case DOUBLE:
            return TypeName.DOUBLE;
        case FLOAT:
            return TypeName.FLOAT;
        case INT:
            return TypeName.INT;
        case LONG:
            return TypeName.LONG;
        case SHORT:
            return TypeName.SHORT;

        case DECLARED:
            TypeMirror type = param.asType();
            TypeName typeName = ClassName.get(type);
            typeName = applyAnnotations(typeName, param);
            return typeName;

        case ARRAY:
            ArrayType arrayType = (ArrayType) param.asType();
            TypeName arrayTypeName = ArrayTypeName.get(arrayType);
            arrayTypeName = applyAnnotations(arrayTypeName, param);
            return arrayTypeName;

        default:
            throw new IllegalStateException("unsupported kind: " + param.asType().getKind());
    }
}
 
源代码11 项目: j2objc   文件: TypeUtil.java
public ArrayType getArrayType(TypeMirror componentType, int dims) {
  if (dims < 1) {
    throw new IllegalArgumentException("dims must be greater than or equal to 1");
  }
  if (dims == 1) {
    return getArrayType(componentType);
  } else {
    return getArrayType(getArrayType(componentType), dims - 1);
  }
}
 
源代码12 项目: netbeans   文件: ElementUtilitiesEx.java
private static String getRealTypeName(TypeMirror type, CompilationInfo ci) {
    final TypeMirror et = ci.getTypes().erasure(type);
    if (et.getKind() == TypeKind.DECLARED) {
        return ElementUtilities.getBinaryName((TypeElement)((DeclaredType)et).asElement());
    }
    if (et.getKind() == TypeKind.ARRAY) {
        return getRealTypeName(((ArrayType)et).getComponentType(), ci) + "[]";  // NOI18N
    }
    return et.toString();
}
 
源代码13 项目: jdk8u60   文件: ApNavigator.java
public boolean isArrayButNotByteArray(TypeMirror t) {
    if(!isArray(t))
        return false;

    ArrayType at = (ArrayType) t;
    TypeMirror ct = at.getComponentType();

    return !ct.equals(primitiveByte);
}
 
源代码14 项目: buck   文件: TypeResolverTest.java
@Test
public void testMultiDimArrayTypeResolves() throws IOException {
  compile("abstract class Foo extends java.util.ArrayList<java.lang.String[][]> { }");

  TypeElement fooElement = elements.getTypeElement("Foo");
  TypeElement listElement = elements.getTypeElement("java.util.ArrayList");
  TypeMirror stringType = elements.getTypeElement("java.lang.String").asType();
  ArrayType stringArrayType = types.getArrayType(stringType);
  ArrayType stringArrayArrayType = types.getArrayType(stringArrayType);

  DeclaredType expectedSuperclass = types.getDeclaredType(listElement, stringArrayArrayType);

  assertSameType(expectedSuperclass, fooElement.getSuperclass());
}
 
源代码15 项目: buck   文件: TypeResolverTest.java
@Test
public void testPrimitiveArrayTypeResolves() throws IOException {
  compile("abstract class Foo extends java.util.ArrayList<int[]> { }");

  TypeElement fooElement = elements.getTypeElement("Foo");
  TypeElement listElement = elements.getTypeElement("java.util.ArrayList");
  TypeMirror intType = types.getPrimitiveType(TypeKind.INT);
  ArrayType intArrayType = types.getArrayType(intType);

  DeclaredType expectedSuperclass = types.getDeclaredType(listElement, intArrayType);

  assertSameType(expectedSuperclass, fooElement.getSuperclass());
}
 
源代码16 项目: openjdk-jdk9   文件: ApNavigator.java
public TypeMirror getComponentType(TypeMirror t) {
    if (isArray(t)) {
        ArrayType at = (ArrayType) t;
        return at.getComponentType();
    }

    throw new IllegalArgumentException();
}
 
源代码17 项目: netbeans   文件: FxClassUtils.java
public static boolean isSimpleType(TypeMirror t, CompilationInfo ci) {
    if (isPrimitive(t)) {
        return true;
    }
    if (t.getKind() == TypeKind.DECLARED) {
        TypeElement tel = (TypeElement)ci.getTypes().asElement(t);
        if (findValueOf(tel, ci) != null) {
            return true;
        }

        // special hack, see BeanAdapter - Color and Paint class can be written as primitives:
        String qn = tel.getQualifiedName().toString();
        if (FX_COLOR_CLASS.equals(qn) || FX_PAINT_CLASS.equals(qn) || JL_STRING_CLASS.equals(qn)) {
            return true;
        }
    }
    
    // arrays
    if (t.getKind() == TypeKind.ARRAY) {
        TypeMirror component = ((ArrayType)t).getComponentType();
        if (component.getKind() == TypeKind.ARRAY) {
            // no support for 2-dim arrays
            return false;
        }
        return isSimpleType(component, ci);
    }
    return false;
}
 
源代码18 项目: j2objc   文件: MetadataWriter.java
private Expression createContainerAnnotation(List<Annotation> annotations) {
  DeclaredType annotationType = annotations.get(0).getAnnotationMirror().getAnnotationType();
  ArrayType arrayType = typeUtil.getArrayType(annotationType);
  DeclaredType containerType = (DeclaredType) ElementUtil.getAnnotationValue(
      ElementUtil.getAnnotation(annotationType.asElement(), Repeatable.class), "value");
  TypeElement containerElement = (TypeElement) containerType.asElement();
  FunctionElement element = new FunctionElement(
      "create_" + nameTable.getFullName(containerElement), containerType, containerElement);
  FunctionInvocation invocation = new FunctionInvocation(element, containerType);
  element.addParameters(arrayType);
  List<Expression> array = annotations.stream().map(Annotation::getAnnotationMirror)
      .map(translationUtil::createAnnotation).collect(Collectors.toList());
  invocation.addArgument(translationUtil.createObjectArray(array, arrayType));
  return invocation;
}
 
源代码19 项目: netbeans   文件: JavaWsdlMapper.java
static String getTypeName(CompilationController controller, TypeMirror typeMirror) {
    TypeKind typeKind = typeMirror.getKind();
    switch (typeKind) {
        case BOOLEAN : return "boolean"; // NOI18N
        case BYTE : return "byte"; // NOI18N
        case CHAR : return "char"; // NOI18N
        case DOUBLE : return "double"; // NOI18N
        case FLOAT : return "float"; // NOI18N
        case INT : return "int"; // NOI18N
        case LONG : return "long"; // NOI18N
        case SHORT : return "short"; // NOI18N
        case VOID : return "void"; // NOI18N
        case ERROR :
        case DECLARED :
            if ( typeMirror instanceof DeclaredType ){
                Element element = controller.getTypes().asElement(typeMirror);
                return ((TypeElement) element).getSimpleName().toString();
            }
            else {
                break;
            }
        case ARRAY : 
            ArrayType arrayType = (ArrayType) typeMirror;
            Element componentTypeElement = controller.getTypes().asElement(arrayType.getComponentType());
            return ((TypeElement) componentTypeElement).getSimpleName().toString() + "[]";
        case EXECUTABLE :
        case NONE :
        case NULL :
        case OTHER :
        case PACKAGE :
        case TYPEVAR :
        case WILDCARD :
        default:break;
    }
    return null;
}
 
源代码20 项目: auto   文件: MoreTypes.java
@Override
public Boolean visitArray(ArrayType a, EqualVisitorParam p) {
  if (p.type.getKind().equals(ARRAY)) {
    ArrayType b = (ArrayType) p.type;
    return equal(a.getComponentType(), b.getComponentType(), p.visiting);
  }
  return false;
}
 
源代码21 项目: openjdk-jdk8u   文件: ApNavigator.java
@Override
public TypeMirror visitArray(ArrayType t, TypeElement typeElement) {
    // we are checking if t=T[] is assignable to sup.
    // the only case this is allowed is sup=Object,
    // and Object isn't parameterized.
    return null;
}
 
源代码22 项目: cronet   文件: JniProcessor.java
TypeName toTypeName(TypeMirror t, boolean useJni) {
    if (t.getKind() == TypeKind.ARRAY) {
        return ArrayTypeName.of(toTypeName(((ArrayType) t).getComponentType(), useJni));
    }
    TypeName typeName = TypeName.get(t);
    if (useJni && shouldDowncastToObjectForJni(typeName)) {
        return TypeName.OBJECT;
    }
    return typeName;
}
 
源代码23 项目: j2objc   文件: ArrayRewriter.java
private MethodInvocation newMultiDimensionArrayInvocation(
    ArrayType arrayType, List<Expression> dimensions, boolean retainedResult) {
  assert dimensions.size() > 1;
  TypeMirror componentType = arrayType;
  for (int i = 0; i < dimensions.size(); i++) {
    assert TypeUtil.isArray(componentType);
    componentType = ((ArrayType) componentType).getComponentType();
  }
  TypeElement iosArrayElement = typeUtil.getIosArray(componentType);

  ExecutableElement methodElement =
      getMultiDimensionMethod(componentType, iosArrayElement, retainedResult);
  MethodInvocation invocation = new MethodInvocation(
      new ExecutablePair(methodElement), arrayType, new SimpleName(iosArrayElement));

  // Add the dimension count argument.
  invocation.addArgument(NumberLiteral.newIntLiteral(dimensions.size(), typeUtil));

  // Create the dimensions array.
  ArrayInitializer dimensionsArg = new ArrayInitializer(typeUtil.getArrayType(typeUtil.getInt()));
  for (Expression e : dimensions) {
    dimensionsArg.addExpression(e.copy());
  }
  invocation.addArgument(dimensionsArg);

  if (!componentType.getKind().isPrimitive()) {
    invocation.addArgument(new TypeLiteral(componentType, typeUtil));
  }

  return invocation;
}
 
源代码24 项目: doma   文件: QueryReturnMeta.java
public boolean isPrimitiveIntArray() {
  return ctType
      .getType()
      .accept(
          new TypeKindVisitor8<Boolean, Void>(false) {

            @Override
            public Boolean visitArray(ArrayType t, Void p) {
              return t.getComponentType().getKind() == TypeKind.INT;
            }
          },
          null);
}
 
源代码25 项目: netbeans   文件: ElementNode.java
private static String createHtmlHeader(boolean deprecated, ExecutableElement e) {
    StringBuilder sb = new StringBuilder();
    sb.append("<html>");
    if (deprecated) sb.append("<s>");
    if (e.getKind() == ElementKind.CONSTRUCTOR) {
        sb.append(e.getEnclosingElement().getSimpleName());
    } else {
        sb.append(e.getSimpleName());
    }
    if (deprecated) sb.append("</s>");
    sb.append("("); // NOI18N
    for(Iterator<? extends VariableElement> it = e.getParameters().iterator(); it.hasNext(); ) {
        VariableElement param = it.next();
        if (!it.hasNext() && e.isVarArgs() && param.asType().getKind() == TypeKind.ARRAY) {
            sb.append(translateToHTML(print(((ArrayType) param.asType()).getComponentType())));
            sb.append("...");
        } else {
            sb.append(translateToHTML(print(param.asType())));
        }
        sb.append(" "); // NOI18N
        sb.append(param.getSimpleName());
        if (it.hasNext()) {
            sb.append(", "); // NOI18N
        }
    }
    sb.append(")"); // NOI18N
    if ( e.getKind() != ElementKind.CONSTRUCTOR ) {
        TypeMirror rt = e.getReturnType();
        if ( rt.getKind() != TypeKind.VOID ) {
            sb.append(" : "); // NOI18N
            sb.append(translateToHTML(print(e.getReturnType())));
        }
    }
    return sb.toString();
}
 
源代码26 项目: netbeans   文件: JavadocHelper.java
private static void appendType(FragmentBuilder fb, TypeMirror type, boolean varArg) {
    switch (type.getKind()) {
    case ARRAY:
        appendType(fb, ((ArrayType) type).getComponentType(), false);
        fb.append(varArg ? "..." : "[]"); // NOI18N
        break;
    case DECLARED:
        fb.append(((TypeElement) ((DeclaredType) type).asElement()).getQualifiedName());
        break;
    default:
        fb.append(type.toString());
    }
}
 
源代码27 项目: easybundler   文件: Bundler.java
/**
 * See {@link #matchesArrayClass(VariableElement, Class, MatchPolicy)}.
 */
private boolean matchesArrayClass(VariableElement field, String className, MatchPolicy policy) {
    // Check if the field is an array
    if (field.asType().getKind() != TypeKind.ARRAY) {
        return false;
    }

    // Get the type of array it is
    TypeMirror componentType = ((ArrayType) field.asType()).getComponentType();

    // Perform check
    TypeElement target = getTypeElementForClass(className);
    return target != null && typesMatch(componentType, target.asType(), policy);
}
 
源代码28 项目: auto-parcel   文件: MoreTypes.java
@Override
public Integer visitArray(ArrayType t, Set<Element> visiting) {
    int result = hashKind(HASH_SEED, t);
    result *= HASH_MULTIPLIER;
    result += t.getComponentType().accept(this, visiting);
    return result;
}
 
源代码29 项目: j2objc   文件: ArrayRewriter.java
@Override
public void endVisit(InstanceofExpression node) {
  TypeMirror type = node.getRightOperand().getTypeMirror();
  if (!TypeUtil.isArray(type) || ((ArrayType) type).getComponentType().getKind().isPrimitive()) {
    return;
  }
  GeneratedExecutableElement element = GeneratedExecutableElement.newMethodWithSelector(
      "isInstance", typeUtil.getBoolean(), TypeUtil.IOS_CLASS);
  element.addParameter(
      GeneratedVariableElement.newParameter("object", TypeUtil.ID_TYPE, element));
  MethodInvocation invocation =
      new MethodInvocation(new ExecutablePair(element), new TypeLiteral(type, typeUtil));
  invocation.addArgument(TreeUtil.remove(node.getLeftOperand()));
  node.replaceWith(invocation);
}
 
源代码30 项目: netbeans   文件: CreateElementUtilities.java
/**
 *
 * @param info context {@link CompilationInfo}
 * @param iterable tested {@link TreePath}
 * @return generic type of an {@link Iterable} or {@link ArrayType} at a TreePath
 */
public static TypeMirror getIterableGenericType(CompilationInfo info, TreePath iterable) {
    TypeElement iterableElement = info.getElements().getTypeElement("java.lang.Iterable"); //NOI18N
    if (iterableElement == null) {
        return null;
    }
    TypeMirror iterableType = info.getTrees().getTypeMirror(iterable);
    if (iterableType == null) {
        return null;
    }
    TypeMirror designedType = null;
    if (iterableType.getKind() == TypeKind.DECLARED) {
        DeclaredType declaredType = (DeclaredType) iterableType;
        if (!info.getTypes().isSubtype(info.getTypes().erasure(declaredType), info.getTypes().erasure(iterableElement.asType()))) {
            return null;
        }
        ExecutableElement iteratorMethod = (ExecutableElement) iterableElement.getEnclosedElements().get(0);
        ExecutableType iteratorMethodType = (ExecutableType) info.getTypes().asMemberOf(declaredType, iteratorMethod);
        List<? extends TypeMirror> typeArguments = ((DeclaredType) iteratorMethodType.getReturnType()).getTypeArguments();
        if (!typeArguments.isEmpty()) {
            designedType = typeArguments.get(0);
        } else {
            TypeElement jlObject = info.getElements().getTypeElement("java.lang.Object");

            if (jlObject != null) {
                designedType = jlObject.asType();
            }
        }
    } else if (iterableType.getKind() == TypeKind.ARRAY) {
        designedType = ((ArrayType) iterableType).getComponentType();
    }
    if (designedType == null) {
        return null;
    }
    return JavaPluginUtils.resolveCapturedType(info, designedType);
}