Java 类org.eclipse.jdt.core.dom.PrimitiveType 实例源码
项目:che
文件:GenerateForLoopAssistProposal.java
/**
* Generates a {@link VariableDeclarationExpression}, which initializes the loop variable to
* iterate over an array.
*
* @param ast the current {@link AST} instance
* @param loopVariableName the name of the variable which should be initialized
* @return a filled {@link VariableDeclarationExpression}, declaring a int variable, which is
* initializes with 0
*/
private VariableDeclarationExpression getForInitializer(AST ast, SimpleName loopVariableName) {
// initializing fragment
VariableDeclarationFragment firstDeclarationFragment = ast.newVariableDeclarationFragment();
firstDeclarationFragment.setName(loopVariableName);
NumberLiteral startIndex = ast.newNumberLiteral();
firstDeclarationFragment.setInitializer(startIndex);
// declaration
VariableDeclarationExpression variableDeclaration =
ast.newVariableDeclarationExpression(firstDeclarationFragment);
PrimitiveType variableType = ast.newPrimitiveType(PrimitiveType.INT);
variableDeclaration.setType(variableType);
return variableDeclaration;
}
项目:eclipse.jdt.ls
文件:AbstractSerialVersionOperation.java
@Override
public void rewriteAST(CompilationUnitRewrite cuRewrite, LinkedProposalModel positionGroups) throws CoreException {
final ASTRewrite rewrite = cuRewrite.getASTRewrite();
VariableDeclarationFragment fragment = null;
for (int i = 0; i < fNodes.length; i++) {
final ASTNode node = fNodes[i];
final AST ast = node.getAST();
fragment = ast.newVariableDeclarationFragment();
fragment.setName(ast.newSimpleName(NAME_FIELD));
final FieldDeclaration declaration = ast.newFieldDeclaration(fragment);
declaration.setType(ast.newPrimitiveType(PrimitiveType.LONG));
declaration.modifiers().addAll(ASTNodeFactory.newModifiers(ast, Modifier.PRIVATE | Modifier.STATIC | Modifier.FINAL));
if (!addInitializer(fragment, node)) {
continue;
}
if (fragment.getInitializer() != null) {
final TextEditGroup editGroup = createTextEditGroup(FixMessages.SerialVersion_group_description, cuRewrite);
if (node instanceof AbstractTypeDeclaration) {
rewrite.getListRewrite(node, ((AbstractTypeDeclaration) node).getBodyDeclarationsProperty()).insertAt(declaration, 0, editGroup);
} else if (node instanceof AnonymousClassDeclaration) {
rewrite.getListRewrite(node, AnonymousClassDeclaration.BODY_DECLARATIONS_PROPERTY).insertAt(declaration, 0, editGroup);
} else if (node instanceof ParameterizedType) {
final ParameterizedType type = (ParameterizedType) node;
final ASTNode parent = type.getParent();
if (parent instanceof ClassInstanceCreation) {
final ClassInstanceCreation creation = (ClassInstanceCreation) parent;
final AnonymousClassDeclaration anonymous = creation.getAnonymousClassDeclaration();
if (anonymous != null) {
rewrite.getListRewrite(anonymous, AnonymousClassDeclaration.BODY_DECLARATIONS_PROPERTY).insertAt(declaration, 0, editGroup);
}
}
} else {
Assert.isTrue(false);
}
addLinkedPositions(rewrite, fragment, positionGroups);
}
final String comment = CodeGeneration.getFieldComment(fUnit, declaration.getType().toString(), NAME_FIELD, "\n" /* StubUtility.getLineDelimiterUsed(fUnit) */);
if (comment != null && comment.length() > 0 && !"/**\n *\n */\n".equals(comment)) {
final Javadoc doc = (Javadoc) rewrite.createStringPlaceholder(comment, ASTNode.JAVADOC);
declaration.setJavadoc(doc);
}
}
if (fragment == null) {
return;
}
positionGroups.setEndPosition(rewrite.track(fragment));
}
项目:eclipse-astparser
文件:MethodExpression.java
private boolean testPrimitiveTypeEquals(final Class<?> expected, final Code actual)
{
String name = actual.toString();
if( name.equals(PrimitiveType.BOOLEAN.toString()) ) {
return expected.equals(Boolean.TYPE);
} else if(name.equals(PrimitiveType.INT.toString())) {
return expected.equals(Integer.TYPE);
} else if(name.equals(PrimitiveType.CHAR.toString())) {
return expected.equals(Character.TYPE);
} else if(name.equals(PrimitiveType.SHORT.toString())) {
return expected.equals(Short.TYPE);
} else if(name.equals(PrimitiveType.LONG.toString())) {
return expected.equals(Long.TYPE);
} else if(name.equals(PrimitiveType.FLOAT.toString())) {
return expected.equals(Float.TYPE);
} else if(name.equals(PrimitiveType.DOUBLE.toString())) {
return expected.equals(Double.TYPE);
} else if(name.equals(PrimitiveType.BYTE.toString())) {
return expected.equals(Byte.TYPE);
} else if(name.equals(PrimitiveType.VOID.toString())) {
return expected.equals(Void.TYPE);
}
System.err.println("warning: unknown primitive type: " + actual);
throw new UnsupportedOperationException();
//return false;
}
项目:che
文件:AbstractSerialVersionOperation.java
/** {@inheritDoc} */
@Override
public void rewriteAST(CompilationUnitRewrite cuRewrite, LinkedProposalModel positionGroups)
throws CoreException {
final ASTRewrite rewrite = cuRewrite.getASTRewrite();
VariableDeclarationFragment fragment = null;
for (int i = 0; i < fNodes.length; i++) {
final ASTNode node = fNodes[i];
final AST ast = node.getAST();
fragment = ast.newVariableDeclarationFragment();
fragment.setName(ast.newSimpleName(NAME_FIELD));
final FieldDeclaration declaration = ast.newFieldDeclaration(fragment);
declaration.setType(ast.newPrimitiveType(PrimitiveType.LONG));
declaration
.modifiers()
.addAll(
ASTNodeFactory.newModifiers(
ast, Modifier.PRIVATE | Modifier.STATIC | Modifier.FINAL));
if (!addInitializer(fragment, node)) continue;
if (fragment.getInitializer() != null) {
final TextEditGroup editGroup =
createTextEditGroup(FixMessages.SerialVersion_group_description, cuRewrite);
if (node instanceof AbstractTypeDeclaration)
rewrite
.getListRewrite(node, ((AbstractTypeDeclaration) node).getBodyDeclarationsProperty())
.insertAt(declaration, 0, editGroup);
else if (node instanceof AnonymousClassDeclaration)
rewrite
.getListRewrite(node, AnonymousClassDeclaration.BODY_DECLARATIONS_PROPERTY)
.insertAt(declaration, 0, editGroup);
else if (node instanceof ParameterizedType) {
final ParameterizedType type = (ParameterizedType) node;
final ASTNode parent = type.getParent();
if (parent instanceof ClassInstanceCreation) {
final ClassInstanceCreation creation = (ClassInstanceCreation) parent;
final AnonymousClassDeclaration anonymous = creation.getAnonymousClassDeclaration();
if (anonymous != null)
rewrite
.getListRewrite(anonymous, AnonymousClassDeclaration.BODY_DECLARATIONS_PROPERTY)
.insertAt(declaration, 0, editGroup);
}
} else Assert.isTrue(false);
addLinkedPositions(rewrite, fragment, positionGroups);
}
final String comment =
CodeGeneration.getFieldComment(
fUnit,
declaration.getType().toString(),
NAME_FIELD,
StubUtility.getLineDelimiterUsed(fUnit));
if (comment != null && comment.length() > 0) {
final Javadoc doc = (Javadoc) rewrite.createStringPlaceholder(comment, ASTNode.JAVADOC);
declaration.setJavadoc(doc);
}
}
if (fragment == null) return;
positionGroups.setEndPosition(rewrite.track(fragment));
}
项目:che
文件:ChangeSignatureProcessor.java
private void addNewConstructorToSubclass(
AbstractTypeDeclaration subclass, CompilationUnitRewrite cuRewrite) {
AST ast = subclass.getAST();
MethodDeclaration newConstructor = ast.newMethodDeclaration();
newConstructor.setName(ast.newSimpleName(subclass.getName().getIdentifier()));
newConstructor.setConstructor(true);
newConstructor.setJavadoc(null);
newConstructor
.modifiers()
.addAll(ASTNodeFactory.newModifiers(ast, getAccessModifier(subclass)));
newConstructor.setReturnType2(ast.newPrimitiveType(PrimitiveType.VOID));
Block body = ast.newBlock();
newConstructor.setBody(body);
SuperConstructorInvocation superCall = ast.newSuperConstructorInvocation();
addArgumentsToNewSuperConstructorCall(superCall, cuRewrite);
body.statements().add(superCall);
String msg = RefactoringCoreMessages.ChangeSignatureRefactoring_add_constructor;
TextEditGroup description = cuRewrite.createGroupDescription(msg);
cuRewrite
.getASTRewrite()
.getListRewrite(subclass, subclass.getBodyDeclarationsProperty())
.insertFirst(newConstructor, description);
// TODO use AbstractTypeDeclaration
}
项目:che
文件:DelegateMethodCreator.java
/**
* Creates the corresponding statement for the method invocation, based on the return type.
*
* @param declaration the method declaration where the invocation statement is inserted
* @param invocation the method invocation being encapsulated by the resulting statement
* @return the corresponding statement
*/
protected Statement createMethodInvocation(
final MethodDeclaration declaration, final MethodInvocation invocation) {
Assert.isNotNull(declaration);
Assert.isNotNull(invocation);
Statement statement = null;
final Type type = declaration.getReturnType2();
if (type == null) statement = createExpressionStatement(invocation);
else {
if (type instanceof PrimitiveType) {
final PrimitiveType primitive = (PrimitiveType) type;
if (primitive.getPrimitiveTypeCode().equals(PrimitiveType.VOID))
statement = createExpressionStatement(invocation);
else statement = createReturnStatement(invocation);
} else statement = createReturnStatement(invocation);
}
return statement;
}
项目:che
文件:RefactoringAvailabilityTester.java
public static boolean isGeneralizeTypeAvailable(final IJavaElement element)
throws JavaModelException {
if (element != null && element.exists()) {
String type = null;
if (element instanceof IMethod) type = ((IMethod) element).getReturnType();
else if (element instanceof IField) {
final IField field = (IField) element;
if (JdtFlags.isEnum(field)) return false;
type = field.getTypeSignature();
} else if (element instanceof ILocalVariable) return true;
else if (element instanceof IType) {
final IType clazz = (IType) element;
if (JdtFlags.isEnum(clazz)) return false;
return true;
}
if (type == null || PrimitiveType.toCode(Signature.toString(type)) != null) return false;
return true;
}
return false;
}
项目:che
文件:RefactoringAvailabilityTester.java
public static boolean isGeneralizeTypeAvailable(final IStructuredSelection selection)
throws JavaModelException {
if (selection.size() == 1) {
final Object element = selection.getFirstElement();
if (element instanceof IMethod) {
final IMethod method = (IMethod) element;
if (!method.exists()) return false;
final String type = method.getReturnType();
if (PrimitiveType.toCode(Signature.toString(type)) == null)
return Checks.isAvailable(method);
} else if (element instanceof IField) {
final IField field = (IField) element;
if (!field.exists()) return false;
if (!JdtFlags.isEnum(field)) return Checks.isAvailable(field);
}
}
return false;
}
项目:gwt-eclipse-plugin
文件:CreateAsyncMethodProposal.java
@Override
protected MethodDeclaration createMethodDeclaration(AST ast) {
MethodDeclaration asyncMethodDecl = ast.newMethodDeclaration();
// New method has same name as original
String methodName = getSyncMethodDeclaration().getName().getIdentifier();
asyncMethodDecl.setName(ast.newSimpleName(methodName));
// Async method has void return type by default (the user can also use
// Request or RequestBuilder as the return type to get more functionality).
// TODO: investigate whether we can enter linked mode after the fix is
// applied, so the user can choose what return type to use. See
// LinkedCorrectionProposal, which is a subclass of
// ASTRewriteCorrectionProposal.
asyncMethodDecl.setReturnType2(ast.newPrimitiveType(PrimitiveType.VOID));
addAsyncParameters(ast, asyncMethodDecl);
// TODO: generate comments for new method
return asyncMethodDecl;
}
项目:Eclipse-Postfix-Code-Completion
文件:ChangeSignatureProcessor.java
private void addNewConstructorToSubclass(AbstractTypeDeclaration subclass, CompilationUnitRewrite cuRewrite) {
AST ast= subclass.getAST();
MethodDeclaration newConstructor= ast.newMethodDeclaration();
newConstructor.setName(ast.newSimpleName(subclass.getName().getIdentifier()));
newConstructor.setConstructor(true);
newConstructor.setJavadoc(null);
newConstructor.modifiers().addAll(ASTNodeFactory.newModifiers(ast, getAccessModifier(subclass)));
newConstructor.setReturnType2(ast.newPrimitiveType(PrimitiveType.VOID));
Block body= ast.newBlock();
newConstructor.setBody(body);
SuperConstructorInvocation superCall= ast.newSuperConstructorInvocation();
addArgumentsToNewSuperConstructorCall(superCall, cuRewrite);
body.statements().add(superCall);
String msg= RefactoringCoreMessages.ChangeSignatureRefactoring_add_constructor;
TextEditGroup description= cuRewrite.createGroupDescription(msg);
cuRewrite.getASTRewrite().getListRewrite(subclass, subclass.getBodyDeclarationsProperty()).insertFirst(newConstructor, description);
// TODO use AbstractTypeDeclaration
}
项目:Eclipse-Postfix-Code-Completion
文件:DelegateMethodCreator.java
/**
* Creates the corresponding statement for the method invocation, based on
* the return type.
*
* @param declaration the method declaration where the invocation statement
* is inserted
* @param invocation the method invocation being encapsulated by the
* resulting statement
* @return the corresponding statement
*/
protected Statement createMethodInvocation(final MethodDeclaration declaration, final MethodInvocation invocation) {
Assert.isNotNull(declaration);
Assert.isNotNull(invocation);
Statement statement= null;
final Type type= declaration.getReturnType2();
if (type == null)
statement= createExpressionStatement(invocation);
else {
if (type instanceof PrimitiveType) {
final PrimitiveType primitive= (PrimitiveType) type;
if (primitive.getPrimitiveTypeCode().equals(PrimitiveType.VOID))
statement= createExpressionStatement(invocation);
else
statement= createReturnStatement(invocation);
} else
statement= createReturnStatement(invocation);
}
return statement;
}
项目:Eclipse-Postfix-Code-Completion
文件:RefactoringAvailabilityTester.java
public static boolean isGeneralizeTypeAvailable(final IJavaElement element) throws JavaModelException {
if (element != null && element.exists()) {
String type= null;
if (element instanceof IMethod)
type= ((IMethod) element).getReturnType();
else if (element instanceof IField) {
final IField field= (IField) element;
if (JdtFlags.isEnum(field))
return false;
type= field.getTypeSignature();
} else if (element instanceof ILocalVariable)
return true;
else if (element instanceof IType) {
final IType clazz= (IType) element;
if (JdtFlags.isEnum(clazz))
return false;
return true;
}
if (type == null || PrimitiveType.toCode(Signature.toString(type)) != null)
return false;
return true;
}
return false;
}
项目:Eclipse-Postfix-Code-Completion
文件:RefactoringAvailabilityTester.java
public static boolean isGeneralizeTypeAvailable(final IStructuredSelection selection) throws JavaModelException {
if (selection.size() == 1) {
final Object element= selection.getFirstElement();
if (element instanceof IMethod) {
final IMethod method= (IMethod) element;
if (!method.exists())
return false;
final String type= method.getReturnType();
if (PrimitiveType.toCode(Signature.toString(type)) == null)
return Checks.isAvailable(method);
} else if (element instanceof IField) {
final IField field= (IField) element;
if (!field.exists())
return false;
if (!JdtFlags.isEnum(field))
return Checks.isAvailable(field);
}
}
return false;
}
项目:Eclipse-Postfix-Code-Completion
文件:AbstractToStringGenerator.java
/**
* @return a statement in form of <code>final int maxLen = 10;</code>
*/
protected VariableDeclarationStatement createMaxLenDeclaration() {
VariableDeclarationFragment fragment= fAst.newVariableDeclarationFragment();
fragment.setName(fAst.newSimpleName(fMaxLenVariableName));
fragment.setInitializer(fAst.newNumberLiteral(String.valueOf(fContext.getLimitItemsValue())));
VariableDeclarationStatement declExpression= fAst.newVariableDeclarationStatement(fragment);
declExpression.setType(fAst.newPrimitiveType(PrimitiveType.INT));
declExpression.modifiers().add(fAst.newModifier(ModifierKeyword.FINAL_KEYWORD));
return declExpression;
}
项目:Eclipse-Postfix-Code-Completion
文件:GenerateHashCodeEqualsOperation.java
private Expression createShiftAssignment(Expression shift1, Expression shift2) {
// (int)(element ^ (element >>> 32));
// see implementation in Arrays.hashCode(), Double.hashCode() and
// Long.hashCode()
CastExpression ce= fAst.newCastExpression();
ce.setType(fAst.newPrimitiveType(PrimitiveType.INT));
InfixExpression unsignedShiftRight= fAst.newInfixExpression();
unsignedShiftRight.setLeftOperand(shift1);
unsignedShiftRight.setRightOperand(fAst.newNumberLiteral("32")); //$NON-NLS-1$
unsignedShiftRight.setOperator(Operator.RIGHT_SHIFT_UNSIGNED);
InfixExpression xor= fAst.newInfixExpression();
xor.setLeftOperand(shift2);
xor.setRightOperand(parenthesize(unsignedShiftRight));
xor.setOperator(InfixExpression.Operator.XOR);
ce.setExpression(parenthesize(xor));
return ce;
}
项目:Eclipse-Postfix-Code-Completion
文件:ChangeTypeAction.java
private static IMember getMember(IStructuredSelection selection) throws JavaModelException {
if (selection.size() != 1)
return null;
Object element= selection.getFirstElement();
if (!(element instanceof IMember))
return null;
if (element instanceof IMethod) {
IMethod method= (IMethod)element;
String returnType= method.getReturnType();
if (PrimitiveType.toCode(Signature.toString(returnType)) != null)
return null;
return method;
} else if (element instanceof IField && !JdtFlags.isEnum((IMember) element)) {
return (IField)element;
}
return null;
}
项目:Eclipse-Postfix-Code-Completion-Juno38
文件:ChangeSignatureProcessor.java
private void addNewConstructorToSubclass(AbstractTypeDeclaration subclass, CompilationUnitRewrite cuRewrite) {
AST ast= subclass.getAST();
MethodDeclaration newConstructor= ast.newMethodDeclaration();
newConstructor.setName(ast.newSimpleName(subclass.getName().getIdentifier()));
newConstructor.setConstructor(true);
newConstructor.setExtraDimensions(0);
newConstructor.setJavadoc(null);
newConstructor.modifiers().addAll(ASTNodeFactory.newModifiers(ast, getAccessModifier(subclass)));
newConstructor.setReturnType2(ast.newPrimitiveType(PrimitiveType.VOID));
Block body= ast.newBlock();
newConstructor.setBody(body);
SuperConstructorInvocation superCall= ast.newSuperConstructorInvocation();
addArgumentsToNewSuperConstructorCall(superCall, cuRewrite);
body.statements().add(superCall);
String msg= RefactoringCoreMessages.ChangeSignatureRefactoring_add_constructor;
TextEditGroup description= cuRewrite.createGroupDescription(msg);
cuRewrite.getASTRewrite().getListRewrite(subclass, subclass.getBodyDeclarationsProperty()).insertFirst(newConstructor, description);
// TODO use AbstractTypeDeclaration
}
项目:Eclipse-Postfix-Code-Completion-Juno38
文件:DelegateMethodCreator.java
/**
* Creates the corresponding statement for the method invocation, based on
* the return type.
*
* @param declaration the method declaration where the invocation statement
* is inserted
* @param invocation the method invocation being encapsulated by the
* resulting statement
* @return the corresponding statement
*/
protected Statement createMethodInvocation(final MethodDeclaration declaration, final MethodInvocation invocation) {
Assert.isNotNull(declaration);
Assert.isNotNull(invocation);
Statement statement= null;
final Type type= declaration.getReturnType2();
if (type == null)
statement= createExpressionStatement(invocation);
else {
if (type instanceof PrimitiveType) {
final PrimitiveType primitive= (PrimitiveType) type;
if (primitive.getPrimitiveTypeCode().equals(PrimitiveType.VOID))
statement= createExpressionStatement(invocation);
else
statement= createReturnStatement(invocation);
} else
statement= createReturnStatement(invocation);
}
return statement;
}
项目:Eclipse-Postfix-Code-Completion-Juno38
文件:RefactoringAvailabilityTester.java
public static boolean isGeneralizeTypeAvailable(final IJavaElement element) throws JavaModelException {
if (element != null && element.exists()) {
String type= null;
if (element instanceof IMethod)
type= ((IMethod) element).getReturnType();
else if (element instanceof IField) {
final IField field= (IField) element;
if (JdtFlags.isEnum(field))
return false;
type= field.getTypeSignature();
} else if (element instanceof ILocalVariable)
return true;
else if (element instanceof IType) {
final IType clazz= (IType) element;
if (JdtFlags.isEnum(clazz))
return false;
return true;
}
if (type == null || PrimitiveType.toCode(Signature.toString(type)) != null)
return false;
return true;
}
return false;
}
项目:Eclipse-Postfix-Code-Completion-Juno38
文件:RefactoringAvailabilityTester.java
public static boolean isGeneralizeTypeAvailable(final IStructuredSelection selection) throws JavaModelException {
if (selection.size() == 1) {
final Object element= selection.getFirstElement();
if (element instanceof IMethod) {
final IMethod method= (IMethod) element;
if (!method.exists())
return false;
final String type= method.getReturnType();
if (PrimitiveType.toCode(Signature.toString(type)) == null)
return Checks.isAvailable(method);
} else if (element instanceof IField) {
final IField field= (IField) element;
if (!field.exists())
return false;
if (!JdtFlags.isEnum(field))
return Checks.isAvailable(field);
}
}
return false;
}
项目:Eclipse-Postfix-Code-Completion-Juno38
文件:AbstractToStringGenerator.java
/**
* @return a statement in form of <code>final int maxLen = 10;</code>
*/
protected VariableDeclarationStatement createMaxLenDeclaration() {
VariableDeclarationFragment fragment= fAst.newVariableDeclarationFragment();
fragment.setName(fAst.newSimpleName(fMaxLenVariableName));
fragment.setInitializer(fAst.newNumberLiteral(String.valueOf(fContext.getLimitItemsValue())));
VariableDeclarationStatement declExpression= fAst.newVariableDeclarationStatement(fragment);
declExpression.setType(fAst.newPrimitiveType(PrimitiveType.INT));
declExpression.modifiers().add(fAst.newModifier(ModifierKeyword.FINAL_KEYWORD));
return declExpression;
}
项目:Eclipse-Postfix-Code-Completion-Juno38
文件:GenerateHashCodeEqualsOperation.java
private Expression createShiftAssignment(Expression shift1, Expression shift2) {
// (int)(element ^ (element >>> 32));
// see implementation in Arrays.hashCode(), Double.hashCode() and
// Long.hashCode()
CastExpression ce= fAst.newCastExpression();
ce.setType(fAst.newPrimitiveType(PrimitiveType.INT));
InfixExpression unsignedShiftRight= fAst.newInfixExpression();
unsignedShiftRight.setLeftOperand(shift1);
unsignedShiftRight.setRightOperand(fAst.newNumberLiteral("32")); //$NON-NLS-1$
unsignedShiftRight.setOperator(Operator.RIGHT_SHIFT_UNSIGNED);
InfixExpression xor= fAst.newInfixExpression();
xor.setLeftOperand(shift2);
xor.setRightOperand(parenthesize(unsignedShiftRight));
xor.setOperator(InfixExpression.Operator.XOR);
ce.setExpression(parenthesize(xor));
return ce;
}
项目:Eclipse-Postfix-Code-Completion-Juno38
文件:ChangeTypeAction.java
private static IMember getMember(IStructuredSelection selection) throws JavaModelException {
if (selection.size() != 1)
return null;
Object element= selection.getFirstElement();
if (!(element instanceof IMember))
return null;
if (element instanceof IMethod) {
IMethod method= (IMethod)element;
String returnType= method.getReturnType();
if (PrimitiveType.toCode(Signature.toString(returnType)) != null)
return null;
return method;
} else if (element instanceof IField && !JdtFlags.isEnum((IMember) element)) {
return (IField)element;
}
return null;
}
项目:jenkins.py
文件:MethodMaker.java
/**
* Creates a "return super.method(args)" statement for the given method
*/
private Statement getSuperMethCall(MethodDeclaration md) {
SuperMethodInvocation smi = ast.newSuperMethodInvocation();
smi.setName((SimpleName)ASTNode.copySubtree(ast, md.getName()));
for (int i = 0; i < md.parameters().size(); i++) {
SingleVariableDeclaration svd = (SingleVariableDeclaration)md.parameters().get(i);
smi.arguments().add((Name)ASTNode.copySubtree(ast, svd.getName()));
}
Type type = md.getReturnType2();
if (md.getReturnType2().isPrimitiveType()) {
PrimitiveType.Code ptcode = ((PrimitiveType)type).getPrimitiveTypeCode();
if (ptcode == PrimitiveType.VOID) {
return ast.newExpressionStatement(smi);
}
}
ReturnStatement rs = ast.newReturnStatement();
rs.setExpression(smi);
return rs;
}
项目:2uml
文件:ResolverImpl.java
protected boolean tryToResolve(Type type) {
boolean result = false;
if (underResolution.getResolverMap().containsKey(type)) {
result = true;
} else {
if (type.isPrimitiveType()) {
result = tryToResolve((PrimitiveType)type);
} else if (type.isQualifiedType()) {
result = tryToResolve((QualifiedType)type);
} else if (type.isArrayType()) {
result = tryToResolve(((ArrayType)type).getElementType());
} else if (type.isSimpleType()) {
result = tryToResolve((SimpleType)type);
} else if (type.isParameterizedType()) {
result = tryToResolve((ParameterizedType)type);
} else if (type.isWildcardType()) {
result = tryToResolve((WildcardType)type);
} else {
CoreActivator.log(IStatus.INFO, "Type not handled " + type.toString());
}
}
return result;
}
项目:2uml
文件:ResolverImpl.java
protected boolean tryToResolve(PrimitiveType primitiveType) {
boolean result = false;
PrimitiveType.Code typeCode = primitiveType.getPrimitiveTypeCode();
org.eclipse.uml2.uml.PrimitiveType umlPrimitiveType;
if (typeCode.equals(PrimitiveType.VOID)) {
umlPrimitiveType = null;
underResolution.getResolverMap().put(primitiveType, umlPrimitiveType);
result = true;
} else {
umlPrimitiveType = Utils.searchPrimiveTypeInModels(context, typeCode.toString());
if (umlPrimitiveType != null) {
underResolution.getResolverMap().put(primitiveType, umlPrimitiveType);
result = true;
}
}
return result;
}
项目:reflectify
文件:AbstractProposalCreator.java
protected Type createType(ITypeBinding typeBind, AST ast) {
ITypeBinding realType = typeBind;
Type result = null;
if (typeBind.isArray()) {
realType = typeBind.getElementType();
}
if (realType.isPrimitive()) {
result = ast.newPrimitiveType(PrimitiveType.toCode(realType.getName()));
} else if (realType.isParameterizedType()) {
String typeName = realType.getName();
result = ast.newSimpleType(ast.newSimpleName(typeName.substring(0, typeName.indexOf('<'))));
} else {
result = ast.newSimpleType(ast.newSimpleName(realType.getName()));
}
if (typeBind.isArray()) {
return ast.newArrayType(result, typeBind.getDimensions());
}
return result;
}
项目:BUILD_file_generator
文件:JavaSourceFileParser.java
/**
* Returns true iff 'methodDeclaration' represents a void static method named 'main' that takes a
* single String[] parameter.
*/
private static boolean isMainMethod(MethodDeclaration methodDeclaration) {
// Is it static?
if ((methodDeclaration.getModifiers() & Modifier.STATIC) == 0) {
return false;
}
// Does it return void?
Type returnType = methodDeclaration.getReturnType2();
if (!returnType.isPrimitiveType()) {
return false;
}
if (((PrimitiveType) returnType).getPrimitiveTypeCode() != PrimitiveType.VOID) {
return false;
}
// Is it called 'main'?
if (!"main".equals(methodDeclaration.getName().getIdentifier())) {
return false;
}
// Does it have a single parameter?
if (methodDeclaration.parameters().size() != 1) {
return false;
}
// Is the parameter's type String[]?
SingleVariableDeclaration pt =
getOnlyElement((List<SingleVariableDeclaration>) methodDeclaration.parameters());
IVariableBinding vb = pt.resolveBinding();
if (vb == null) {
return false;
}
ITypeBinding tb = vb.getType();
return tb != null && "java.lang.String[]".equals(tb.getQualifiedName());
}
项目:eclipse.jdt.ls
文件:ASTNodeFactory.java
/**
* Returns an expression that is assignable to the given type. <code>null</code> is
* returned if the type is the 'void' type.
*
* @param ast The AST to create the expression for
* @param type The type of the returned expression
* @param extraDimensions Extra dimensions to the type
* @return the Null-literal for reference types, a boolean-literal for a boolean type, a number
* literal for primitive types or <code>null</code> if the type is void.
*/
public static Expression newDefaultExpression(AST ast, Type type, int extraDimensions) {
if (extraDimensions == 0 && type.isPrimitiveType()) {
PrimitiveType primitiveType= (PrimitiveType) type;
if (primitiveType.getPrimitiveTypeCode() == PrimitiveType.BOOLEAN) {
return ast.newBooleanLiteral(false);
} else if (primitiveType.getPrimitiveTypeCode() == PrimitiveType.VOID) {
return null;
} else {
return ast.newNumberLiteral("0"); //$NON-NLS-1$
}
}
return ast.newNullLiteral();
}
项目:eclipse.jdt.ls
文件:SelfEncapsulateFieldProposal.java
private Type getNewMethodType(ASTRewrite rewrite, ImportRewriteContext context) throws CoreException {
AST ast = rewrite.getAST();
Type newTypeNode = null;
if (isGetter) {
newTypeNode = getImportRewrite().addImport(fVariableBinding.getType(), ast, context, TypeLocation.RETURN_TYPE);
} else {
newTypeNode = ast.newPrimitiveType(PrimitiveType.VOID);
}
return newTypeNode;
}
项目:eclipse-astparser
文件:MethodExpression.java
private boolean testTypeEquals(final Class<?> expected, Type actual)
{
if(actual.isSimpleType()) {
SimpleType simpleDeclaration = (SimpleType)actual;
return testNameEquals(expected, simpleDeclaration.getName());
} else if (actual.isPrimitiveType()) {
PrimitiveType primitive = (PrimitiveType)actual;
return testPrimitiveTypeEquals(expected, primitive.getPrimitiveTypeCode());
} else { //unbekannter Typ
System.err.println("warning: not simple type, feature not implemented. type is: " + actual.getClass());
throw new UnsupportedOperationException();
}
}
项目:che
文件:ASTNodeFactory.java
/**
* Returns an expression that is assignable to the given type. <code>null</code> is returned if
* the type is the 'void' type.
*
* @param ast The AST to create the expression for
* @param type The type of the returned expression
* @param extraDimensions Extra dimensions to the type
* @return the Null-literal for reference types, a boolean-literal for a boolean type, a number
* literal for primitive types or <code>null</code> if the type is void.
*/
public static Expression newDefaultExpression(AST ast, Type type, int extraDimensions) {
if (extraDimensions == 0 && type.isPrimitiveType()) {
PrimitiveType primitiveType = (PrimitiveType) type;
if (primitiveType.getPrimitiveTypeCode() == PrimitiveType.BOOLEAN) {
return ast.newBooleanLiteral(false);
} else if (primitiveType.getPrimitiveTypeCode() == PrimitiveType.VOID) {
return null;
} else {
return ast.newNumberLiteral("0"); // $NON-NLS-1$
}
}
return ast.newNullLiteral();
}
项目:che
文件:GetterSetterUtil.java
/**
* Checks if the assignment needs a downcast and inserts it if necessary
*
* @param expression the right hand-side
* @param expressionType the type of the right hand-side. Can be null
* @param ast the AST
* @param variableType the Type of the variable the expression will be assigned to
* @param is50OrHigher if <code>true</code> java 5.0 code will be assumed
* @return the casted expression if necessary
*/
private static Expression createNarrowCastIfNessecary(
Expression expression,
ITypeBinding expressionType,
AST ast,
ITypeBinding variableType,
boolean is50OrHigher) {
PrimitiveType castTo = null;
if (variableType.isEqualTo(expressionType)) return expression; // no cast for same type
if (is50OrHigher) {
if (ast.resolveWellKnownType("java.lang.Character").isEqualTo(variableType)) // $NON-NLS-1$
castTo = ast.newPrimitiveType(PrimitiveType.CHAR);
if (ast.resolveWellKnownType("java.lang.Byte").isEqualTo(variableType)) // $NON-NLS-1$
castTo = ast.newPrimitiveType(PrimitiveType.BYTE);
if (ast.resolveWellKnownType("java.lang.Short").isEqualTo(variableType)) // $NON-NLS-1$
castTo = ast.newPrimitiveType(PrimitiveType.SHORT);
}
if (ast.resolveWellKnownType("char").isEqualTo(variableType)) // $NON-NLS-1$
castTo = ast.newPrimitiveType(PrimitiveType.CHAR);
if (ast.resolveWellKnownType("byte").isEqualTo(variableType)) // $NON-NLS-1$
castTo = ast.newPrimitiveType(PrimitiveType.BYTE);
if (ast.resolveWellKnownType("short").isEqualTo(variableType)) // $NON-NLS-1$
castTo = ast.newPrimitiveType(PrimitiveType.SHORT);
if (castTo != null) {
CastExpression cast = ast.newCastExpression();
if (NecessaryParenthesesChecker.needsParentheses(
expression, cast, CastExpression.EXPRESSION_PROPERTY)) {
ParenthesizedExpression parenthesized = ast.newParenthesizedExpression();
parenthesized.setExpression(expression);
cast.setExpression(parenthesized);
} else cast.setExpression(expression);
cast.setType(castTo);
return cast;
}
return expression;
}
项目:che
文件:IntroduceIndirectionRefactoring.java
private Statement encapsulateInvocation(
MethodDeclaration declaration, MethodInvocation invocation) {
final Type type = declaration.getReturnType2();
if (type == null
|| (type instanceof PrimitiveType
&& PrimitiveType.VOID.equals(((PrimitiveType) type).getPrimitiveTypeCode())))
return invocation.getAST().newExpressionStatement(invocation);
ReturnStatement statement = invocation.getAST().newReturnStatement();
statement.setExpression(invocation);
return statement;
}
项目:che
文件:TypeContextChecker.java
private static boolean isVoidArrayType(Type type) {
if (!type.isArrayType()) return false;
ArrayType arrayType = (ArrayType) type;
if (!arrayType.getElementType().isPrimitiveType()) return false;
PrimitiveType primitiveType = (PrimitiveType) arrayType.getElementType();
return (primitiveType.getPrimitiveTypeCode() == PrimitiveType.VOID);
}
项目:che
文件:TypeContextChecker.java
private static Type parseSuperType(String superType, boolean isInterface) {
if (!superType.trim().equals(superType)) {
return null;
}
StringBuffer cuBuff = new StringBuffer();
if (isInterface) cuBuff.append("class __X__ implements "); // $NON-NLS-1$
else cuBuff.append("class __X__ extends "); // $NON-NLS-1$
int offset = cuBuff.length();
cuBuff.append(superType).append(" {}"); // $NON-NLS-1$
ASTParser p = ASTParser.newParser(ASTProvider.SHARED_AST_LEVEL);
p.setSource(cuBuff.toString().toCharArray());
Map<String, String> options = new HashMap<String, String>();
JavaModelUtil.setComplianceOptions(options, JavaModelUtil.VERSION_LATEST);
p.setCompilerOptions(options);
CompilationUnit cu = (CompilationUnit) p.createAST(null);
ASTNode selected = NodeFinder.perform(cu, offset, superType.length());
if (selected instanceof Name) selected = selected.getParent();
if (selected.getStartPosition() != offset
|| selected.getLength() != superType.length()
|| !(selected instanceof Type)
|| selected instanceof PrimitiveType) {
return null;
}
Type type = (Type) selected;
String typeNodeRange =
cuBuff.substring(type.getStartPosition(), ASTNodes.getExclusiveEnd(type));
if (!superType.equals(typeNodeRange)) {
return null;
}
return type;
}
项目:che
文件:ParameterGuesser.java
private PrimitiveType.Code getPrimitiveTypeCode(String type) {
PrimitiveType.Code code = PrimitiveType.toCode(type);
if (code != null) {
return code;
}
if (fEnclosingElement != null
&& JavaModelUtil.is50OrHigher(fEnclosingElement.getJavaProject())) {
if (code == PrimitiveType.SHORT) {
if ("java.lang.Short".equals(type)) { // $NON-NLS-1$
return code;
}
} else if (code == PrimitiveType.INT) {
if ("java.lang.Integer".equals(type)) { // $NON-NLS-1$
return code;
}
} else if (code == PrimitiveType.LONG) {
if ("java.lang.Long".equals(type)) { // $NON-NLS-1$
return code;
}
} else if (code == PrimitiveType.FLOAT) {
if ("java.lang.Float".equals(type)) { // $NON-NLS-1$
return code;
}
} else if (code == PrimitiveType.DOUBLE) {
if ("java.lang.Double".equals(type)) { // $NON-NLS-1$
return code;
}
} else if (code == PrimitiveType.CHAR) {
if ("java.lang.Character".equals(type)) { // $NON-NLS-1$
return code;
}
} else if (code == PrimitiveType.BYTE) {
if ("java.lang.Byte".equals(type)) { // $NON-NLS-1$
return code;
}
}
}
return null;
}
项目:che
文件:ExtractToNullCheckedLocalProposal.java
/**
* Create a fresh type reference
*
* @param typeBinding the type we want to refer to
* @param ast AST for creating new nodes
* @param imports use this for optimal type names
* @return a fully features non-null type reference (can be parameterized and/or array).
*/
public static Type newType(ITypeBinding typeBinding, AST ast, ImportRewrite imports) {
// unwrap array type:
int dimensions = typeBinding.getDimensions();
if (dimensions > 0) typeBinding = typeBinding.getElementType();
// unwrap parameterized type:
ITypeBinding[] typeArguments = typeBinding.getTypeArguments();
typeBinding = typeBinding.getErasure();
// create leaf type:
Type elementType =
(typeBinding.isPrimitive())
? ast.newPrimitiveType(PrimitiveType.toCode(typeBinding.getName()))
: ast.newSimpleType(ast.newName(imports.addImport(typeBinding)));
// re-wrap as parameterized type:
if (typeArguments.length > 0) {
ParameterizedType parameterizedType = ast.newParameterizedType(elementType);
for (ITypeBinding typeArgument : typeArguments)
parameterizedType.typeArguments().add(newType(typeArgument, ast, imports));
elementType = parameterizedType;
}
// re-wrap as array type:
if (dimensions > 0) return ast.newArrayType(elementType, dimensions);
else return elementType;
}
项目:gwt-eclipse-plugin
文件:UpdateAsyncSignatureProposal.java
@Override
protected Type computeReturnType(AST ast, MethodDeclaration srcMethod,
MethodDeclaration dstMethod, ImportRewrite imports) {
// Use the previous async return type if valid
ITypeBinding typeBinding = dstMethod.getReturnType2().resolveBinding();
if (typeBinding != null
&& Util.VALID_ASYNC_RPC_RETURN_TYPES.contains(typeBinding.getQualifiedName())) {
return JavaASTUtils.normalizeTypeAndAddImport(ast,
dstMethod.getReturnType2(), imports);
}
return ast.newPrimitiveType(PrimitiveType.VOID);
}
项目:txtUML
文件:Utils.java
public static boolean isVoid(Type type) {
if (type instanceof PrimitiveType) {
return ((PrimitiveType) type).getPrimitiveTypeCode().equals(PrimitiveType.VOID);
} else {
return false;
}
}