/** * Parses the generic signature of a field and creates the data structure * representing the signature. * * @param genericDecl the GenericDeclaration calling this method * @param signature the generic signature of the class */ public void parseForField(GenericDeclaration genericDecl, String signature) { setInput(genericDecl, signature); if (!eof) { this.fieldType = parseFieldTypeSignature(); } }
TypeVariableImpl<GenericDeclaration> parseFormalTypeParameter() { // FormalTypeParameter ::= Ident ClassBound {InterfaceBound}. scanIdentifier(); String name = identifier.intern(); // FIXME: is this o.k.? ListOfTypes bounds = new ListOfTypes(8); // ClassBound ::= ":" [FieldTypeSignature]. expect(':'); if (symbol == 'L' || symbol == '[' || symbol == 'T') { bounds.add(parseFieldTypeSignature()); } while (symbol == ':') { // InterfaceBound ::= ":" FieldTypeSignature. scanSymbol(); bounds.add(parseFieldTypeSignature()); } return new TypeVariableImpl<GenericDeclaration>(genericDecl, name, bounds); }
Type parseTypeArgument() { // TypeArgument ::= (["+" | "-"] FieldTypeSignature) | "*". ListOfTypes extendsBound = new ListOfTypes(1); ListOfTypes superBound = new ListOfTypes(1); if (symbol == '*') { scanSymbol(); extendsBound.add(Object.class); return new WildcardTypeImpl(extendsBound, superBound); } else if (symbol == '+') { scanSymbol(); extendsBound.add(parseFieldTypeSignature()); return new WildcardTypeImpl(extendsBound, superBound); } else if (symbol == '-') { scanSymbol(); superBound.add(parseFieldTypeSignature()); extendsBound.add(Object.class); return new WildcardTypeImpl(extendsBound, superBound); } else { return parseFieldTypeSignature(); } }
Type parseTypeSignature() { switch (symbol) { case 'B': scanSymbol(); return byte.class; case 'C': scanSymbol(); return char.class; case 'D': scanSymbol(); return double.class; case 'F': scanSymbol(); return float.class; case 'I': scanSymbol(); return int.class; case 'J': scanSymbol(); return long.class; case 'S': scanSymbol(); return short.class; case 'Z': scanSymbol(); return boolean.class; default: // Not an elementary type, but a FieldTypeSignature. return parseFieldTypeSignature(); } }
/** * Parses the generic signature of a field and creates the data structure * representing the signature. * * @param genericDecl the GenericDeclaration calling this method * @param signature the generic signature of the class */ public void parseForField(GenericDeclaration genericDecl, String signature) { setInput(genericDecl, signature); if (!eof) { this.fieldType = parseFieldTypeSignature(); } }
/** * Parses the generic signature of a field and creates the data structure * representing the signature. * * @param genericDecl the GenericDeclaration calling this method * @param signature the generic signature of the class */ public void parseForField(GenericDeclaration genericDecl, String signature) { setInput(genericDecl, signature); if (!eof) { this.fieldType = parseFieldTypeSignature(); } }
/** * Parses the generic signature of a field and creates the data structure * representing the signature. * * @param genericDecl the GenericDeclaration calling this method * @param signature the generic signature of the class */ public void parseForField(GenericDeclaration genericDecl, String signature) { setInput(genericDecl, signature); if (!eof) { this.fieldType = parseFieldTypeSignature(); } }
/** * Parses the generic signature of a field and creates the data structure * representing the signature. * * @param genericDecl the GenericDeclaration calling this method * @param signature the generic signature of the class */ public void parseForField(GenericDeclaration genericDecl, String signature) { setInput(genericDecl, signature); if (!eof) { this.fieldType = parseFieldTypeSignature(); } }
/** * Parses the generic signature of a field and creates the data structure * representing the signature. * * @param genericDecl the GenericDeclaration calling this method * @param signature the generic signature of the class */ public void parseForField(GenericDeclaration genericDecl, String signature) { setInput(genericDecl, signature); if (!eof) { this.fieldType = parseFieldTypeSignature(); } }
/** * Parses the generic signature of a field and creates the data structure * representing the signature. * * @param genericDecl the GenericDeclaration calling this method * @param signature the generic signature of the class */ public void parseForField(GenericDeclaration genericDecl, String signature) { setInput(genericDecl, signature); if (!eof) { this.fieldType = parseFieldTypeSignature(); } }
TypeVariableImpl<GenericDeclaration> parseFormalTypeParameter() { // FormalTypeParameter ::= Ident ClassBound {InterfaceBound}. scanIdentifier(); String name = identifier.intern(); // FIXME: is this o.k.? ListOfTypes bounds = new ListOfTypes(8); // ClassBound ::= ":" [FieldTypeSignature]. expect(':'); if (symbol == 'L' || symbol == '[' || symbol == 'T') { bounds.add(parseFieldTypeSignature()); } while (symbol == ':') { // InterfaceBound ::= ":" FieldTypeSignature. scanSymbol(); bounds.add(parseFieldTypeSignature()); } return new TypeVariableImpl<GenericDeclaration>(genericDecl, name, bounds); }
TypeVariableImpl<GenericDeclaration> parseFormalTypeParameter() { // FormalTypeParameter ::= Ident ClassBound {InterfaceBound}. scanIdentifier(); String name = identifier.intern(); // FIXME: is this o.k.? ListOfTypes bounds = new ListOfTypes(8); // ClassBound ::= ":" [FieldTypeSignature]. expect(':'); if (symbol == 'L' || symbol == '[' || symbol == 'T') { bounds.add(parseFieldTypeSignature()); } while (symbol == ':') { // InterfaceBound ::= ":" FieldTypeSignature. scanSymbol(); bounds.add(parseFieldTypeSignature()); } return new TypeVariableImpl<GenericDeclaration>(genericDecl, name, bounds); }
TypeVariableImpl<GenericDeclaration> parseFormalTypeParameter() { // FormalTypeParameter ::= Ident ClassBound {InterfaceBound}. scanIdentifier(); String name = identifier.intern(); // FIXME: is this o.k.? ListOfTypes bounds = new ListOfTypes(8); // ClassBound ::= ":" [FieldTypeSignature]. expect(':'); if (symbol == 'L' || symbol == '[' || symbol == 'T') { bounds.add(parseFieldTypeSignature()); } while (symbol == ':') { // InterfaceBound ::= ":" FieldTypeSignature. scanSymbol(); bounds.add(parseFieldTypeSignature()); } return new TypeVariableImpl<GenericDeclaration>(genericDecl, name, bounds); }
TypeVariableImpl<GenericDeclaration> parseFormalTypeParameter() { // FormalTypeParameter ::= Ident ClassBound {InterfaceBound}. scanIdentifier(); String name = identifier.intern(); // FIXME: is this o.k.? ListOfTypes bounds = new ListOfTypes(8); // ClassBound ::= ":" [FieldTypeSignature]. expect(':'); if (symbol == 'L' || symbol == '[' || symbol == 'T') { bounds.add(parseFieldTypeSignature()); } while (symbol == ':') { // InterfaceBound ::= ":" FieldTypeSignature. scanSymbol(); bounds.add(parseFieldTypeSignature()); } return new TypeVariableImpl<GenericDeclaration>(genericDecl, name, bounds); }
Type parseTypeSignature() { switch (symbol) { case 'B': scanSymbol(); return byte.class; case 'C': scanSymbol(); return char.class; case 'D': scanSymbol(); return double.class; case 'F': scanSymbol(); return float.class; case 'I': scanSymbol(); return int.class; case 'J': scanSymbol(); return long.class; case 'S': scanSymbol(); return short.class; case 'Z': scanSymbol(); return boolean.class; default: // Not an elementary type, but a FieldTypeSignature. return parseFieldTypeSignature(); } }
Type parseTypeSignature() { switch (symbol) { case 'B': scanSymbol(); return byte.class; case 'C': scanSymbol(); return char.class; case 'D': scanSymbol(); return double.class; case 'F': scanSymbol(); return float.class; case 'I': scanSymbol(); return int.class; case 'J': scanSymbol(); return long.class; case 'S': scanSymbol(); return short.class; case 'Z': scanSymbol(); return boolean.class; default: // Not an elementary type, but a FieldTypeSignature. return parseFieldTypeSignature(); } }
Type parseTypeSignature() { switch (symbol) { case 'B': scanSymbol(); return byte.class; case 'C': scanSymbol(); return char.class; case 'D': scanSymbol(); return double.class; case 'F': scanSymbol(); return float.class; case 'I': scanSymbol(); return int.class; case 'J': scanSymbol(); return long.class; case 'S': scanSymbol(); return short.class; case 'Z': scanSymbol(); return boolean.class; default: // Not an elementary type, but a FieldTypeSignature. return parseFieldTypeSignature(); } }
Type parseTypeSignature() { switch (symbol) { case 'B': scanSymbol(); return byte.class; case 'C': scanSymbol(); return char.class; case 'D': scanSymbol(); return double.class; case 'F': scanSymbol(); return float.class; case 'I': scanSymbol(); return int.class; case 'J': scanSymbol(); return long.class; case 'S': scanSymbol(); return short.class; case 'Z': scanSymbol(); return boolean.class; default: // Not an elementary type, but a FieldTypeSignature. return parseFieldTypeSignature(); } }
Type parseTypeSignature() { switch (symbol) { case 'B': scanSymbol(); return byte.class; case 'C': scanSymbol(); return char.class; case 'D': scanSymbol(); return double.class; case 'F': scanSymbol(); return float.class; case 'I': scanSymbol(); return int.class; case 'J': scanSymbol(); return long.class; case 'S': scanSymbol(); return short.class; case 'Z': scanSymbol(); return boolean.class; default: // Not an elementary type, but a FieldTypeSignature. return parseFieldTypeSignature(); } }
Type parseTypeSignature() { switch (symbol) { case 'B': scanSymbol(); return byte.class; case 'C': scanSymbol(); return char.class; case 'D': scanSymbol(); return double.class; case 'F': scanSymbol(); return float.class; case 'I': scanSymbol(); return int.class; case 'J': scanSymbol(); return long.class; case 'S': scanSymbol(); return short.class; case 'Z': scanSymbol(); return boolean.class; default: // Not an elementary type, but a FieldTypeSignature. return parseFieldTypeSignature(); } }