下面列出了怎么用org.eclipse.jdt.core.dom.CharacterLiteral的API类实例代码及写法,或者点击链接到github查看源代码。
protected boolean isTypeHolder(Object o) {
if(o.getClass().equals(MethodInvocation.class) || o.getClass().equals(SuperMethodInvocation.class)
|| o.getClass().equals(NumberLiteral.class) || o.getClass().equals(StringLiteral.class)
|| o.getClass().equals(CharacterLiteral.class) || o.getClass().equals(BooleanLiteral.class)
|| o.getClass().equals(TypeLiteral.class) || o.getClass().equals(NullLiteral.class)
|| o.getClass().equals(ArrayCreation.class)
|| o.getClass().equals(ClassInstanceCreation.class)
|| o.getClass().equals(ArrayAccess.class) || o.getClass().equals(FieldAccess.class)
|| o.getClass().equals(SuperFieldAccess.class) || o.getClass().equals(ParenthesizedExpression.class)
|| o.getClass().equals(SimpleName.class) || o.getClass().equals(QualifiedName.class)
|| o.getClass().equals(CastExpression.class) || o.getClass().equals(InfixExpression.class)
|| o.getClass().equals(PrefixExpression.class) || o.getClass().equals(InstanceofExpression.class)
|| o.getClass().equals(ThisExpression.class) || o.getClass().equals(ConditionalExpression.class))
return true;
return false;
}
private String getLiteralValue(Expression expression)
{
if (expression instanceof NumberLiteral)
{
return ((NumberLiteral)expression).getToken();
}
else if (expression instanceof CharacterLiteral)
{
return String.valueOf(((CharacterLiteral)expression).charValue());
}
else if (expression instanceof StringLiteral)
{
return ((StringLiteral)expression).getLiteralValue();
}
else
{
return null;
}
}
private CharLiteral visit(CharacterLiteral node) {
int startLine = _cunit.getLineNumber(node.getStartPosition());
int endLine = _cunit.getLineNumber(node.getStartPosition() + node.getLength());
CharLiteral charLiteral = new CharLiteral(startLine, endLine, node);
charLiteral.setValue(node.charValue());
AST ast = AST.newAST(AST.JLS8);
Type type = ast.newPrimitiveType(PrimitiveType.CHAR);
charLiteral.setType(type);
return charLiteral;
}
@Override
public boolean visit(final CharacterLiteral node) {
StringConcatenation _builder = new StringConcatenation();
_builder.append("Character.valueOf(");
String _escapedValue = node.getEscapedValue();
_builder.append(_escapedValue);
_builder.append(").charValue");
this.appendToBuffer(_builder.toString());
return false;
}
@Override
public boolean match(CharacterLiteral node, Object other) {
if (!(other instanceof CharacterLiteral)) {
return false;
}
CharacterLiteral o = (CharacterLiteral) other;
return safeRenamedEquals(node.getEscapedValue(), o.getEscapedValue(),
oldName, newName);
}
public boolean instanceOf(Expression expression) {
if(expression instanceof BooleanLiteral || expression instanceof CharacterLiteral || expression instanceof StringLiteral ||
expression instanceof NullLiteral || expression instanceof NumberLiteral || expression instanceof TypeLiteral)
return true;
else
return false;
}
protected Expression generateDefaultValue(ASTRewrite sourceRewriter, AST ast, ITypeBinding returnTypeBinding) {
Expression returnedExpression = null;
if(returnTypeBinding.isPrimitive()) {
if(returnTypeBinding.getQualifiedName().equals("boolean")) {
returnedExpression = ast.newBooleanLiteral(false);
}
else if(returnTypeBinding.getQualifiedName().equals("char")) {
CharacterLiteral characterLiteral = ast.newCharacterLiteral();
sourceRewriter.set(characterLiteral, CharacterLiteral.ESCAPED_VALUE_PROPERTY, "\u0000", null);
returnedExpression = characterLiteral;
}
else if(returnTypeBinding.getQualifiedName().equals("int") ||
returnTypeBinding.getQualifiedName().equals("short") ||
returnTypeBinding.getQualifiedName().equals("byte")) {
returnedExpression = ast.newNumberLiteral("0");
}
else if(returnTypeBinding.getQualifiedName().equals("long")) {
returnedExpression = ast.newNumberLiteral("0L");
}
else if(returnTypeBinding.getQualifiedName().equals("float")) {
returnedExpression = ast.newNumberLiteral("0.0f");
}
else if(returnTypeBinding.getQualifiedName().equals("double")) {
returnedExpression = ast.newNumberLiteral("0.0d");
}
else if(returnTypeBinding.getQualifiedName().equals("void")) {
returnedExpression = null;
}
}
else {
returnedExpression = ast.newNullLiteral();
}
return returnedExpression;
}
protected Expression generateDefaultValue(ASTRewrite sourceRewriter, AST ast, ITypeBinding returnTypeBinding) {
Expression returnedExpression = null;
if(returnTypeBinding.isPrimitive()) {
if(returnTypeBinding.getQualifiedName().equals("boolean")) {
returnedExpression = ast.newBooleanLiteral(false);
}
else if(returnTypeBinding.getQualifiedName().equals("char")) {
CharacterLiteral characterLiteral = ast.newCharacterLiteral();
sourceRewriter.set(characterLiteral, CharacterLiteral.ESCAPED_VALUE_PROPERTY, "\u0000", null);
returnedExpression = characterLiteral;
}
else if(returnTypeBinding.getQualifiedName().equals("int") ||
returnTypeBinding.getQualifiedName().equals("short") ||
returnTypeBinding.getQualifiedName().equals("byte")) {
returnedExpression = ast.newNumberLiteral("0");
}
else if(returnTypeBinding.getQualifiedName().equals("long")) {
returnedExpression = ast.newNumberLiteral("0L");
}
else if(returnTypeBinding.getQualifiedName().equals("float")) {
returnedExpression = ast.newNumberLiteral("0.0f");
}
else if(returnTypeBinding.getQualifiedName().equals("double")) {
returnedExpression = ast.newNumberLiteral("0.0d");
}
else if(returnTypeBinding.getQualifiedName().equals("void")) {
returnedExpression = null;
}
}
else {
returnedExpression = ast.newNullLiteral();
}
return returnedExpression;
}
public boolean visit(CharacterLiteral expr) {
/*
* Character literal nodes
*/
StyledStringStyler styler = determineDiffStyle(expr, new StyledStringStyler(stringStyle));
styledString.append(expr.getEscapedValue(), styler);
return false;
}
@Override
public void endVisit(CharacterLiteral node) {
// Leaf node.
}
@Override
public void endVisit(CharacterLiteral node) {
ITypeBinding typeBinding= node.resolveTypeBinding();
ImmutableTypeVariable2 cv= fTCModel.makeImmutableTypeVariable(typeBinding, node);
setConstraintVariable(node, cv);
}
@Override
public void endVisit(CharacterLiteral node) {
// Leaf node.
}
@Override
public boolean visit(CharacterLiteral node) {
if (node.subtreeMatch(fMatcher, fNodeToMatch))
return matches(node);
return super.visit(node);
}
@Override
public boolean visit(CharacterLiteral node) {
add(fCreator.create(node));
return true;
}
@Override
public void endVisit(CharacterLiteral node) {
endVisitNode(node);
}
@Override
public boolean visit(CharacterLiteral node) {
return visitNode(node);
}
@Override
public boolean visit(CharacterLiteral node) {
return visitLiteral(node);
}
public LiteralObject(Expression expression) {
if(expression instanceof StringLiteral) {
StringLiteral stringLiteral = (StringLiteral)expression;
literalType = LiteralType.STRING;
value = stringLiteral.getLiteralValue();
type = TypeObject.extractTypeObject(stringLiteral.resolveTypeBinding().getQualifiedName());
}
else if(expression instanceof NullLiteral) {
NullLiteral nullLiteral = (NullLiteral)expression;
literalType = LiteralType.NULL;
value = "null";
if(nullLiteral.resolveTypeBinding() != null) {
type = TypeObject.extractTypeObject(nullLiteral.resolveTypeBinding().getQualifiedName());
}
}
else if(expression instanceof NumberLiteral) {
NumberLiteral numberLiteral = (NumberLiteral)expression;
literalType = LiteralType.NUMBER;
value = numberLiteral.getToken();
type = TypeObject.extractTypeObject(numberLiteral.resolveTypeBinding().getQualifiedName());
}
else if(expression instanceof BooleanLiteral) {
BooleanLiteral booleanLiteral = (BooleanLiteral)expression;
literalType = LiteralType.BOOLEAN;
value = Boolean.toString(booleanLiteral.booleanValue());
type = TypeObject.extractTypeObject(booleanLiteral.resolveTypeBinding().getQualifiedName());
}
else if(expression instanceof CharacterLiteral) {
CharacterLiteral characterLiteral = (CharacterLiteral)expression;
literalType = LiteralType.CHARACTER;
value = Character.toString(characterLiteral.charValue());
type = TypeObject.extractTypeObject(characterLiteral.resolveTypeBinding().getQualifiedName());
}
else if(expression instanceof TypeLiteral) {
TypeLiteral typeLiteral = (TypeLiteral)expression;
literalType = LiteralType.TYPE;
value = typeLiteral.getType().toString();
type = TypeObject.extractTypeObject(typeLiteral.resolveTypeBinding().getQualifiedName());
}
this.literal = ASTInformationGenerator.generateASTInformation(expression);
}
public boolean visit(CharacterLiteral expr) {
bindingKeys.add(expr.getEscapedValue());
return false;
}
private void handleExpression(Expression expression) {
if (expression instanceof ArrayAccess) {
visit((ArrayAccess) expression);
} else if (expression instanceof ArrayCreation) {
visit((ArrayCreation) expression);
} else if (expression instanceof ArrayInitializer) {
visit((ArrayInitializer) expression);
} else if (expression instanceof Assignment) {
visit((Assignment) expression);
} else if (expression instanceof BooleanLiteral) {
visit((BooleanLiteral) expression);
} else if (expression instanceof CastExpression) {
visit((CastExpression) expression);
} else if (expression instanceof CharacterLiteral) {
visit((CharacterLiteral) expression);
} else if (expression instanceof ClassInstanceCreation) {
visit((ClassInstanceCreation) expression);
} else if (expression instanceof ConditionalExpression) {
visit((ConditionalExpression) expression);
} else if (expression instanceof FieldAccess) {
visit((FieldAccess) expression);
} else if (expression instanceof InfixExpression) {
visit((InfixExpression) expression);
} else if (expression instanceof InstanceofExpression) {
visit((InstanceofExpression) expression);
} else if (expression instanceof MethodInvocation) {
visit((MethodInvocation) expression);
} else if (expression instanceof NullLiteral) {
visit((NullLiteral) expression);
} else if (expression instanceof NumberLiteral) {
visit((NumberLiteral) expression);
} else if (expression instanceof ParenthesizedExpression) {
visit((ParenthesizedExpression) expression);
} else if (expression instanceof PostfixExpression) {
visit((PostfixExpression) expression);
} else if (expression instanceof PrefixExpression) {
visit((PrefixExpression) expression);
} else if ((expression instanceof QualifiedName)) {
visit((QualifiedName) expression);
} else if (expression instanceof SimpleName) {
visit((SimpleName) expression);
} else if (expression instanceof StringLiteral) {
visit((StringLiteral) expression);
} else if (expression instanceof SuperFieldAccess) {
visit((SuperFieldAccess) expression);
} else if (expression instanceof SuperMethodInvocation) {
visit((SuperMethodInvocation) expression);
} else if (expression instanceof ThisExpression) {
visit((ThisExpression) expression);
} else if (expression instanceof TypeLiteral) {
visit((TypeLiteral) expression);
} else if (expression instanceof VariableDeclarationExpression) {
visit((VariableDeclarationExpression) expression);
}
}
private void handleExpression(Expression expression) {
if (expression instanceof ArrayAccess) {
visit((ArrayAccess) expression);
} else if (expression instanceof ArrayCreation) {
visit((ArrayCreation) expression);
} else if (expression instanceof ArrayInitializer) {
visit((ArrayInitializer) expression);
} else if (expression instanceof Assignment) {
visit((Assignment) expression);
} else if (expression instanceof BooleanLiteral) {
visit((BooleanLiteral) expression);
} else if (expression instanceof CastExpression) {
visit((CastExpression) expression);
} else if (expression instanceof CharacterLiteral) {
visit((CharacterLiteral) expression);
} else if (expression instanceof ClassInstanceCreation) {
visit((ClassInstanceCreation) expression);
} else if (expression instanceof ConditionalExpression) {
visit((ConditionalExpression) expression);
} else if (expression instanceof FieldAccess) {
visit((FieldAccess) expression);
} else if (expression instanceof InfixExpression) {
visit((InfixExpression) expression);
} else if (expression instanceof InstanceofExpression) {
visit((InstanceofExpression) expression);
} else if (expression instanceof MethodInvocation) {
visit((MethodInvocation) expression);
} else if (expression instanceof NullLiteral) {
visit((NullLiteral) expression);
} else if (expression instanceof NumberLiteral) {
visit((NumberLiteral) expression);
} else if (expression instanceof ParenthesizedExpression) {
visit((ParenthesizedExpression) expression);
} else if (expression instanceof PostfixExpression) {
visit((PostfixExpression) expression);
} else if (expression instanceof PrefixExpression) {
visit((PrefixExpression) expression);
} else if ((expression instanceof QualifiedName)) {
visit((QualifiedName) expression);
} else if (expression instanceof SimpleName) {
visit((SimpleName) expression);
} else if (expression instanceof StringLiteral) {
visit((StringLiteral) expression);
} else if (expression instanceof SuperFieldAccess) {
visit((SuperFieldAccess) expression);
} else if (expression instanceof SuperMethodInvocation) {
visit((SuperMethodInvocation) expression);
} else if (expression instanceof ThisExpression) {
visit((ThisExpression) expression);
} else if (expression instanceof TypeLiteral) {
visit((TypeLiteral) expression);
} else if (expression instanceof VariableDeclarationExpression) {
visit((VariableDeclarationExpression) expression);
}
}
/**
* @param node the AST node
* @return array of type constraints, may be empty
* @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.CharacterLiteral)
*/
public ITypeConstraint[] create(CharacterLiteral node) {
return EMPTY_ARRAY;
}
/**
* Escapes a character value to a literal that can be used in Java source.
*
* @param ch the character value
* @return the escaped string
* @see CharacterLiteral#getEscapedValue()
*/
public static String getEscapedCharacterLiteral(char ch) {
CharacterLiteral characterLiteral= AST.newAST(ASTProvider.SHARED_AST_LEVEL).newCharacterLiteral();
characterLiteral.setCharValue(ch);
return characterLiteral.getEscapedValue();
}