Package org.eclipse.jdt.internal.compiler.ast

Examples of org.eclipse.jdt.internal.compiler.ast.SingleTypeReference


      return true;
    // Next, find out whether any of the constructor parameters are the same as one of the
    // class type variables. If yes, diamond cannot be used.
    TypeReference ref;
    if (cn.length == 1) {
      ref = new SingleTypeReference(cn[0], 0);
    } else {
      ref = new QualifiedTypeReference(cn,new long[cn.length]);
    }
    switch (scope.kind) {
      case Scope.METHOD_SCOPE :
View Full Code Here


      }
      return getTypeBinding(fieldRef.resolvedType);
    } else if (node instanceof FieldReference) {
      return getTypeBinding(((FieldReference) node).resolvedType);
    } else if (node instanceof SingleTypeReference) {
      SingleTypeReference singleTypeReference = (SingleTypeReference) node;
      org.eclipse.jdt.internal.compiler.lookup.TypeBinding binding = singleTypeReference.resolvedType;
      if (binding != null) {
        return this.getTypeBinding(binding.leafComponentType());
      }
    } else if (node instanceof org.eclipse.jdt.internal.compiler.ast.FieldDeclaration) {
View Full Code Here

        JavadocSingleTypeReference typeRef = (JavadocSingleTypeReference) node;
        if (typeRef.packageBinding != null) {
          return getPackageBinding(typeRef.packageBinding);
        }
      }
      SingleTypeReference singleTypeReference = (SingleTypeReference) node;
      org.eclipse.jdt.internal.compiler.lookup.TypeBinding binding = singleTypeReference.resolvedType;
      if (binding == null) {
        return null;
      }
      return this.getTypeBinding(binding.leafComponentType());
View Full Code Here

      switch (currentChar) {
        case Signature.C_BOOLEAN :
          if (!nameStarted) {
            this.namePos++;
            if (dim == 0)
              return new SingleTypeReference(TypeBinding.BOOLEAN.simpleName, ((long) start << 32) + end);
            else
              return new ArrayTypeReference(TypeBinding.BOOLEAN.simpleName, dim, ((long) start << 32) + end);
          }
          break;
        case Signature.C_BYTE :
          if (!nameStarted) {
            this.namePos++;
            if (dim == 0)
              return new SingleTypeReference(TypeBinding.BYTE.simpleName, ((long) start << 32) + end);
            else
              return new ArrayTypeReference(TypeBinding.BYTE.simpleName, dim, ((long) start << 32) + end);       
          }
          break;
        case Signature.C_CHAR :
          if (!nameStarted) {
            this.namePos++;
            if (dim == 0)
              return new SingleTypeReference(TypeBinding.CHAR.simpleName, ((long) start << 32) + end);
            else
              return new ArrayTypeReference(TypeBinding.CHAR.simpleName, dim, ((long) start << 32) + end);
          }
          break;
        case Signature.C_DOUBLE :
          if (!nameStarted) {
            this.namePos++;
            if (dim == 0)
              return new SingleTypeReference(TypeBinding.DOUBLE.simpleName, ((long) start << 32) + end);
            else
              return new ArrayTypeReference(TypeBinding.DOUBLE.simpleName, dim, ((long) start << 32) + end);       
          }
          break;
        case Signature.C_FLOAT :
          if (!nameStarted) {
            this.namePos++;
            if (dim == 0)
              return new SingleTypeReference(TypeBinding.FLOAT.simpleName, ((long) start << 32) + end);
            else
              return new ArrayTypeReference(TypeBinding.FLOAT.simpleName, dim, ((long) start << 32) + end);       
          }
          break;
        case Signature.C_INT :
          if (!nameStarted) {
            this.namePos++;
            if (dim == 0)
              return new SingleTypeReference(TypeBinding.INT.simpleName, ((long) start << 32) + end);
            else
              return new ArrayTypeReference(TypeBinding.INT.simpleName, dim, ((long) start << 32) + end);       
          }
          break;
        case Signature.C_LONG :
          if (!nameStarted) {
            this.namePos++;
            if (dim == 0)
              return new SingleTypeReference(TypeBinding.LONG.simpleName, ((long) start << 32) + end);
            else
              return new ArrayTypeReference(TypeBinding.LONG.simpleName, dim, ((long) start << 32) + end);       
          }
          break;
        case Signature.C_SHORT :
          if (!nameStarted) {
            this.namePos++;
            if (dim == 0)
              return new SingleTypeReference(TypeBinding.SHORT.simpleName, ((long) start << 32) + end);
            else
              return new ArrayTypeReference(TypeBinding.SHORT.simpleName, dim, ((long) start << 32) + end);       
          }
          break;
        case Signature.C_VOID :
          if (!nameStarted) {
            this.namePos++;
            return new SingleTypeReference(TypeBinding.VOID.simpleName, ((long) start << 32) + end);
          }
          break;
        case Signature.C_RESOLVED :
        case Signature.C_UNRESOLVED :
        case Signature.C_TYPE_VARIABLE :
          if (!nameStarted) {
            nameFragmentStart = this.namePos+1;
            nameStarted = true;
          }
          break;
        case Signature.C_STAR:
          this.namePos++;
          Wildcard result = new Wildcard(Wildcard.UNBOUND);
          result.sourceStart = start;
          result.sourceEnd = end;
          return result;
        case Signature.C_EXTENDS:
          this.namePos++;
          result = new Wildcard(Wildcard.EXTENDS);
          result.bound = decodeType(typeSignature, length, start, end);
          result.sourceStart = start;
          result.sourceEnd = end;
          return result;
        case Signature.C_SUPER:
          this.namePos++;
          result = new Wildcard(Wildcard.SUPER);
          result.bound = decodeType(typeSignature, length, start, end);
          result.sourceStart = start;
          result.sourceEnd = end;
          return result;
        case Signature.C_ARRAY :
          dim++;
          break;
        case Signature.C_GENERIC_END :
        case Signature.C_SEMICOLON :
          nameFragmentEnd = this.namePos-1;
          this.namePos++;
          break typeLoop;
        case Signature.C_DOLLAR:
          if (this.memberTypeSeparator != Signature.C_DOLLAR)
            break;
        case Signature.C_DOT :
          if (!nameStarted) {
            nameFragmentStart = this.namePos+1;
            nameStarted = true;
          } else if (this.namePos > nameFragmentStart) // handle name starting with a $ (see https://bugs.eclipse.org/bugs/show_bug.cgi?id=91709)
            identCount ++;
          break;
        case Signature.C_GENERIC_START :
          nameFragmentEnd = this.namePos-1;
          // convert 1.5 specific constructs only if compliance is 1.5 or above
          if (!this.has1_5Compliance)
            break typeLoop;
          if (fragments == null) fragments = new ArrayList(2);
          addIdentifiers(typeSignature, nameFragmentStart, nameFragmentEnd + 1, identCount, fragments);
          this.namePos++; // skip '<'
          TypeReference[] arguments = decodeTypeArguments(typeSignature, length, start, end); // positionned on '>' at end
          fragments.add(arguments);
          identCount = 1;
          nameStarted = false;
          // next increment will skip '>'
          break;
      }
      this.namePos++;
    }
    if (fragments == null) { // non parameterized
      /* rebuild identifiers and dimensions */
      if (identCount == 1) { // simple type reference
        if (dim == 0) {
          char[] nameFragment = new char[nameFragmentEnd - nameFragmentStart + 1];
          typeSignature.getChars(nameFragmentStart, nameFragmentEnd +1, nameFragment, 0);
          return new SingleTypeReference(nameFragment, ((long) start << 32) + end);
        } else {
          char[] nameFragment = new char[nameFragmentEnd - nameFragmentStart + 1];
          typeSignature.getChars(nameFragmentStart, nameFragmentEnd +1, nameFragment, 0);
          return new ArrayTypeReference(nameFragment, dim, ((long) start << 32) + end);
        }
View Full Code Here

            int nameFragmentLength = nameFragmentEnd - nameFragmentStart + 1;
            System.arraycopy(typeName, nameFragmentStart, nameFragment = new char[nameFragmentLength], 0, nameFragmentLength);           
          } else {
            nameFragment = typeName;
          }
          return new SingleTypeReference(nameFragment, ((long) start << 32) + end);
        } else {
          int nameFragmentLength = nameFragmentEnd - nameFragmentStart + 1;
          char[] nameFragment = new char[nameFragmentLength];
          System.arraycopy(typeName, nameFragmentStart, nameFragment, 0, nameFragmentLength);
          return new ArrayTypeReference(nameFragment, dim, ((long) start << 32) + end);
View Full Code Here

      char[][] tokens = qualifiedTypeReference.tokens;
      long[] positions = qualifiedTypeReference.sourcePositions;
      // QualifiedName
      annotation.setTypeName(setQualifiedNameNameAndSourceRanges(tokens, positions, typeReference));
    } else {
      SingleTypeReference singleTypeReference = (SingleTypeReference) typeReference;
      final SimpleName name = new SimpleName(this.ast);
      name.internalSetIdentifier(new String(singleTypeReference.token));
      int start = singleTypeReference.sourceStart;
      int end = singleTypeReference.sourceEnd;
      name.setSourceRange(start, end - start + 1);
View Full Code Here

  private static final String BINARY_TYPE_NAME = "BinaryType";

  private static TypeReference createMockBinaryTypeReference(
      BinaryTypeBinding binaryTypeBinding) {
    SingleTypeReference singleTypeReference = new SingleTypeReference(null, 0);
    singleTypeReference.resolvedType = binaryTypeBinding;
    return singleTypeReference;
  }
View Full Code Here

      }
      return getTypeBinding(fieldRef.resolvedType);
    } else if (node instanceof FieldReference) {
      return getTypeBinding(((FieldReference) node).resolvedType);
    } else if (node instanceof SingleTypeReference) {
      SingleTypeReference singleTypeReference = (SingleTypeReference) node;
      org.eclipse.jdt.internal.compiler.lookup.TypeBinding binding = singleTypeReference.resolvedType;
      if (binding != null) {
        return this.getTypeBinding(binding.leafComponentType());
      }
    } else if (node instanceof org.eclipse.jdt.internal.compiler.ast.FieldDeclaration) {
View Full Code Here

        JavadocSingleTypeReference typeRef = (JavadocSingleTypeReference) node;
        if (typeRef.packageBinding != null) {
          return getPackageBinding(typeRef.packageBinding);
        }
      }
      SingleTypeReference singleTypeReference = (SingleTypeReference) node;
      org.eclipse.jdt.internal.compiler.lookup.TypeBinding binding = singleTypeReference.resolvedType;
      if (binding == null) {
        return null;
      }
      return this.getTypeBinding(binding.leafComponentType());
View Full Code Here

      char[][] tokens = qualifiedTypeReference.tokens;
      long[] positions = qualifiedTypeReference.sourcePositions;
      // QualifiedName
      annotation.setTypeName(setQualifiedNameNameAndSourceRanges(tokens, positions, typeReference));
    } else {
      SingleTypeReference singleTypeReference = (SingleTypeReference) typeReference;
      final SimpleName name = new SimpleName(this.ast);
      name.internalSetIdentifier(new String(singleTypeReference.token));
      int start = singleTypeReference.sourceStart;
      int end = singleTypeReference.sourceEnd;
      name.setSourceRange(start, end - start + 1);
View Full Code Here

TOP

Related Classes of org.eclipse.jdt.internal.compiler.ast.SingleTypeReference

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.