Examples of ArrayTypeReference


Examples of org.aspectj.org.eclipse.jdt.internal.compiler.ast.ArrayTypeReference

        }
        handleSig.append('>');
      }
      handleSig.append(';');
    } else if (ref instanceof ArrayTypeReference) {
      ArrayTypeReference atr = (ArrayTypeReference) ref;
      for (int i = 0; i < atr.dimensions; i++) {
        handleSig.append("\\[");
      }
      TypeBinding typeB = atr.resolvedType;
      if (typeB == null) {
        typeB = atr.resolveType(scope);
      }
      if (typeB.leafComponentType().isBaseType()) {
        handleSig.append(tb.leafComponentType().signature());
      } else {
        handleSig.append('Q').append(atr.token).append(';');
      }
    } else if (ref instanceof SingleTypeReference) {
      SingleTypeReference str = (SingleTypeReference) ref;
      if (tb.isBaseType()) {
        handleSig.append(tb.signature());
      } else {
        handleSig.append('Q').append(str.token).append(';');
      }
    } else if (ref instanceof ParameterizedQualifiedTypeReference) {
      ParameterizedQualifiedTypeReference pstr = (ParameterizedQualifiedTypeReference) ref;
      char[][] tokens = pstr.tokens;
      for (int i = pstr.dimensions(); i > 0; i--) {
        handleSig.append("\\[");
      }
      handleSig.append('Q');
      for (int i = 0; i < tokens.length; i++) {
        if (i > 0) {
          handleSig.append('.');
        }
        handleSig.append(tokens[i]);
        TypeReference[] typeRefs = pstr.typeArguments[i];
        if (typeRefs != null && typeRefs.length > 0) {
          handleSig.append("\\<");
          for (int j = 0; j < typeRefs.length; j++) {
            TypeReference typeR = typeRefs[j];
            TypeBinding typeB = typeR.resolvedType;
            if (typeB == null) {
              typeB = typeR.resolveType(scope);
            }
            createHandleSigForReference(typeR, typeB, scope, handleSig);
          }
          handleSig.append('>');
        }
      }
      handleSig.append(';');
    } else if (ref instanceof ArrayQualifiedTypeReference) {
      ArrayQualifiedTypeReference atr = (ArrayQualifiedTypeReference) ref;
      for (int i = 0; i < atr.dimensions(); i++) {
        handleSig.append("\\[");
      }
      TypeBinding typeB = atr.resolvedType;
      if (typeB == null) {
        typeB = atr.resolveType(scope);
      }
      if (typeB.leafComponentType().isBaseType()) {
        handleSig.append(tb.leafComponentType().signature());
      } else {
        char[][] tokens = atr.tokens;
View Full Code Here

Examples of org.aspectj.org.eclipse.jdt.internal.compiler.ast.ArrayTypeReference

      if (dim == 0) {
        return new SingleTypeReference(type, 0);
      } else {
        char[] identifier = new char[dimStart];
        System.arraycopy(type, 0, identifier, 0, dimStart);
        return new ArrayTypeReference(identifier, dim, 0);
      }
    } else { // qualified type reference
      char[][] identifiers =  CharOperation.splitOn('.', type, 0, dimStart);
      if (dim == 0) {
        return new QualifiedTypeReference(identifiers, new long[identifiers.length]);
View Full Code Here

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

    if (type instanceof ReferenceBinding) {
      char[][] name = ((ReferenceBinding) type).compoundName;
      end = (int) ref.sourcePositions[name.length - 1];
    }
  } else if (location instanceof ArrayTypeReference) {
    ArrayTypeReference arrayTypeReference = (ArrayTypeReference) location;
    if (isRecoveredName(arrayTypeReference.token)) return;
    end = arrayTypeReference.originalSourceEnd;
  }
  this.handle(
    id,
View Full Code Here

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

          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);
        }
      } else { // qualified type reference
        long[] positions = new long[identCount];
        long pos = ((long) start << 32) + end;
        for (int i = 0; i < identCount; i++) {
View Full Code Here

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

          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);
        }
      } else { // qualified type reference
        long[] positions = new long[identCount];
        long pos = ((long) start << 32) + end;
        for (int i = 0; i < identCount; i++) {
View Full Code Here

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

    if (type instanceof ReferenceBinding) {
      char[][] name = ((ReferenceBinding) type).compoundName;
      end = (int) ref.sourcePositions[name.length - 1];
    }
  } else if (location instanceof ArrayTypeReference) {
    ArrayTypeReference arrayTypeReference = (ArrayTypeReference) location;
    if (isRecoveredName(arrayTypeReference.token)) return;
    end = arrayTypeReference.originalSourceEnd;
  }

  int start = location.sourceStart;
View Full Code Here

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

          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;
          // $FALL-THROUGH$
        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);
        }
      } else { // qualified type reference
        long[] positions = new long[identCount];
        long pos = ((long) start << 32) + end;
        for (int i = 0; i < identCount; i++) {
View Full Code Here

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

          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);
        }
      } else { // qualified type reference
        long[] positions = new long[identCount];
        long pos = ((long) start << 32) + end;
        for (int i = 0; i < identCount; i++) {
View Full Code Here

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

    if (type instanceof ReferenceBinding) {
      char[][] name = ((ReferenceBinding) type).compoundName;
      end = (int) ref.sourcePositions[name.length - 1];
    }
  } else if (location instanceof ArrayTypeReference) {
    ArrayTypeReference arrayTypeReference = (ArrayTypeReference) location;
    if (isRecoveredName(arrayTypeReference.token)) return;
    end = arrayTypeReference.originalSourceEnd;
  }
  this.handle(
    id,
View Full Code Here

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

    if (type instanceof ReferenceBinding) {
      char[][] name = ((ReferenceBinding) type).compoundName;
      end = (int) ref.sourcePositions[name.length - 1];
    }
  } else if (location instanceof ArrayTypeReference) {
    ArrayTypeReference arrayTypeReference = (ArrayTypeReference) location;
    if (isRecoveredName(arrayTypeReference.token)) return;
    end = arrayTypeReference.originalSourceEnd;
  }
  this.handle(
    id,
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.