List of usage examples for org.eclipse.jdt.core.dom CharacterLiteral setCharValue
public void setCharValue(char value)
From source file:astview.Binding.java
License:Open Source License
public static String getEscapedCharLiteral(char charValue) { CharacterLiteral charLiteral = AST.newAST(8).newCharacterLiteral(); charLiteral.setCharValue(charValue); return charLiteral.getEscapedValue(); }
From source file:cideplus.ui.astview.Binding.java
License:Open Source License
public static String getEscapedCharLiteral(char charValue) { CharacterLiteral charLiteral = AST.newAST(AST.JLS3).newCharacterLiteral(); charLiteral.setCharValue(charValue); return charLiteral.getEscapedValue(); }
From source file:com.google.devtools.j2cpp.translate.AnonymousClassConverter.java
License:Open Source License
/** * Returns a literal node for a specified constant value. *//* ww w . j av a 2 s .co m*/ private Expression makeLiteral(Object value, String typeName, AST ast) { Expression literal; if (value instanceof Boolean) { literal = ast.newBooleanLiteral((Boolean) value); } else if (value instanceof Character) { CharacterLiteral c = ast.newCharacterLiteral(); c.setCharValue((Character) value); literal = c; } else if (value instanceof Number) { literal = ast.newNumberLiteral(value.toString()); } else if (value instanceof String) { StringLiteral s = ast.newStringLiteral(); s.setLiteralValue((String) value); literal = s; } else { throw new AssertionError("unknown constant type"); } ITypeBinding type = ast.resolveWellKnownType(typeName); assert type != null : "unknown constant type"; Types.addBinding(literal, type); return literal; }
From source file:com.google.devtools.j2objc.translate.ASTFactory.java
License:Apache License
private static Expression makeLiteralInternal(AST ast, Object value) { if (value instanceof Boolean) { return ast.newBooleanLiteral((Boolean) value); } else if (value instanceof Character) { CharacterLiteral c = ast.newCharacterLiteral(); c.setCharValue((Character) value); return c; } else if (value instanceof Number) { return ast.newNumberLiteral(value.toString()); } else if (value instanceof String) { StringLiteral s = ast.newStringLiteral(); s.setLiteralValue((String) value); return s; }/*from w w w . j av a2 s. c om*/ throw new AssertionError("unknown constant type"); }
From source file:com.microsoft.javapkgsrv.JavaElementLabelComposer.java
License:Open Source License
private static String getEscapedCharacterLiteral(char ch) { CharacterLiteral characterLiteral = AST.newAST(AST.JLS8).newCharacterLiteral(); characterLiteral.setCharValue(ch); return characterLiteral.getEscapedValue(); }
From source file:fromastview.Binding.java
License:Open Source License
public static String getEscapedCharLiteral(char charValue) { CharacterLiteral charLiteral = AST.newAST(AST.JLS4).newCharacterLiteral(); charLiteral.setCharValue(charValue); return charLiteral.getEscapedValue(); }
From source file:org.decojer.cavaj.utils.Annotations.java
License:Open Source License
/** * Decompile annotation default value (value or default value literal). * * @param defaultValue/*from w w w . j a va 2s . c om*/ * default value * @param context * context * @return expression AST Node */ @Nullable public static Expression decompileAnnotationDefaultValue(@Nullable final Object defaultValue, @Nonnull final Element context) { final AST ast = context.getCu().getAst(); if (defaultValue == null) { return null; } if (defaultValue instanceof A) { return decompileAnnotation((A) defaultValue, context); } // could be primitive array - use slow reflection if (defaultValue.getClass().isArray()) { final int size = Array.getLength(defaultValue); if (size == 1) { // single entry autoboxing return decompileAnnotationDefaultValue(Array.get(defaultValue, 0), context); } final ArrayInitializer arrayInitializer = ast.newArrayInitializer(); for (int i = 0; i < size; ++i) { final Expression expression = decompileAnnotationDefaultValue(Array.get(defaultValue, i), context); if (expression != null) { arrayInitializer.expressions().add(expression); } } return arrayInitializer; } if (defaultValue instanceof Boolean) { return ast.newBooleanLiteral((Boolean) defaultValue); } if (defaultValue instanceof Byte) { return ast.newNumberLiteral(defaultValue.toString()); } if (defaultValue instanceof Character) { final CharacterLiteral characterLiteral = ast.newCharacterLiteral(); characterLiteral.setCharValue((Character) defaultValue); return characterLiteral; } if (defaultValue instanceof T) { final TypeLiteral typeLiteral = ast.newTypeLiteral(); typeLiteral.setType(newType((T) defaultValue, context)); return typeLiteral; } if (defaultValue instanceof Double) { return ast.newNumberLiteral(defaultValue.toString() + 'D'); } if (defaultValue instanceof F) { final F f = (F) defaultValue; if (!f.isEnum()) { log.warn("Default value field must be enum!"); } return ast.newQualifiedName(newTypeName(f.getT(), context), newSimpleName(f.getName(), ast)); } if (defaultValue instanceof Float) { return ast.newNumberLiteral(defaultValue.toString() + 'F'); } if (defaultValue instanceof Integer) { return ast.newNumberLiteral(defaultValue.toString()); } if (defaultValue instanceof Long) { return ast.newNumberLiteral(defaultValue.toString() + 'L'); } if (defaultValue instanceof Short) { return ast.newNumberLiteral(defaultValue.toString()); } if (defaultValue instanceof String) { final StringLiteral stringLiteral = ast.newStringLiteral(); stringLiteral.setLiteralValue((String) defaultValue); return stringLiteral; } log.warn("Unknown member value type '" + defaultValue.getClass().getName() + "'!"); final StringLiteral stringLiteral = ast.newStringLiteral(); stringLiteral.setLiteralValue(defaultValue.toString()); return stringLiteral; }
From source file:org.decojer.cavaj.utils.Expressions.java
License:Open Source License
@Nonnull @SuppressWarnings("null") private static Expression newLiteral2(@Nonnull final T t, @Nullable final Object value, @Nonnull final Element context) { final AST ast = context.getCu().getAst(); if (t.isRef() /* incl. T.AREF */) { if (value == null) { return ast.newNullLiteral(); }/*from ww w. j a v a2s . c om*/ if (value instanceof T && t.isAssignableFrom(Class.class)) { final TypeLiteral typeLiteral = ast.newTypeLiteral(); typeLiteral.setType(newType((T) value, context)); return typeLiteral; } if (value instanceof String && t.isAssignableFrom(String.class)) { final StringLiteral stringLiteral = ast.newStringLiteral(); try { stringLiteral.setLiteralValue((String) value); } catch (final IllegalArgumentException e) { // TODO hmm, escaping doesn't always work? stringLiteral.setLiteralValue("<Invalid string literal>"); } return stringLiteral; } log.warn(context + ": Unknown reference type '" + t + "'!"); return ast.newNullLiteral(); } if (t.is(T.BOOLEAN)) { // we prefer boolean, even if this is a multi-type if (value instanceof Boolean) { return ast.newBooleanLiteral(((Boolean) value).booleanValue()); } if (value instanceof Number) { return ast.newBooleanLiteral(((Number) value).intValue() != 0); } if (value == null) { return ast.newBooleanLiteral(false); } log.warn("Boolean type with value '" + value + "' has type '" + value.getClass().getName() + "'!"); return ast.newBooleanLiteral( value instanceof String ? Boolean.valueOf((String) value) : true /* value is not null here */); } if (t.is(T.BYTE)) { if (value instanceof Number) { final byte b = ((Number) value).byteValue(); if (b == Byte.MAX_VALUE) { return ast.newQualifiedName(ast.newSimpleName("Byte"), ast.newSimpleName("MAX_VALUE")); } if (b == Byte.MIN_VALUE) { return ast.newQualifiedName(ast.newSimpleName("Byte"), ast.newSimpleName("MIN_VALUE")); } return ast.newNumberLiteral(Byte.toString(b)); } if (value == null) { return ast.newNumberLiteral(Byte.toString((byte) 0)); } log.warn("Byte type with value '" + value + "' has type '" + value.getClass().getName() + "'!"); return ast.newNumberLiteral(value.toString()); } if (t.is(T.SHORT)) { if (value instanceof Number) { final short s = ((Number) value).shortValue(); if (s == Short.MAX_VALUE) { return ast.newQualifiedName(ast.newSimpleName("Short"), ast.newSimpleName("MAX_VALUE")); } if (s == Short.MIN_VALUE) { return ast.newQualifiedName(ast.newSimpleName("Short"), ast.newSimpleName("MIN_VALUE")); } return ast.newNumberLiteral(Short.toString(s)); } if (value == null) { return ast.newNumberLiteral(Short.toString((short) 0)); } log.warn("Short type with value '" + value + "' has type '" + value.getClass().getName() + "'!"); return ast.newNumberLiteral(value.toString()); } if (t.is(T.INT)) { if (value instanceof Number) { final int i = ((Number) value).intValue(); if (i == Integer.MAX_VALUE) { return ast.newQualifiedName(ast.newSimpleName("Integer"), ast.newSimpleName("MAX_VALUE")); } if (i == Integer.MIN_VALUE) { return ast.newQualifiedName(ast.newSimpleName("Integer"), ast.newSimpleName("MIN_VALUE")); } return ast.newNumberLiteral(Integer.toString(i)); } if (value == null) { return ast.newNumberLiteral(Integer.toString(0)); } log.warn("Integer type with value '" + value + "' has type '" + value.getClass().getName() + "'!"); return ast.newNumberLiteral(value.toString()); } if (t.is(T.CHAR)) { // if this is a multi-type, we only use char if this is not already consumed; // we don't want to output strange characters if we are not very shure about this if (value instanceof Character || value instanceof Number || value instanceof String && ((String) value).length() == 1) { final char c = value instanceof Character ? (Character) value : value instanceof Number ? (char) ((Number) value).intValue() : ((String) value).charAt(0); switch (c) { case Character.MAX_VALUE: return ast.newQualifiedName(ast.newSimpleName("Character"), ast.newSimpleName("MAX_VALUE")); case Character.MIN_VALUE: return ast.newQualifiedName(ast.newSimpleName("Character"), ast.newSimpleName("MIN_VALUE")); case Character.MAX_HIGH_SURROGATE: if (context.getT().isAtLeast(Version.JVM_5)) { return ast.newQualifiedName(ast.newSimpleName("Character"), ast.newSimpleName("MAX_HIGH_SURROGATE")); } break; case Character.MAX_LOW_SURROGATE: if (context.getT().isAtLeast(Version.JVM_5)) { return ast.newQualifiedName(ast.newSimpleName("Character"), ast.newSimpleName("MAX_LOW_SURROGATE")); } break; case Character.MIN_HIGH_SURROGATE: if (context.getT().isAtLeast(Version.JVM_5)) { return ast.newQualifiedName(ast.newSimpleName("Character"), ast.newSimpleName("MIN_HIGH_SURROGATE")); } break; case Character.MIN_LOW_SURROGATE: if (context.getT().isAtLeast(Version.JVM_5)) { return ast.newQualifiedName(ast.newSimpleName("Character"), ast.newSimpleName("MIN_LOW_SURROGATE")); } break; } final CharacterLiteral characterLiteral = ast.newCharacterLiteral(); characterLiteral.setCharValue(c); return characterLiteral; } if (value == null) { final CharacterLiteral characterLiteral = ast.newCharacterLiteral(); characterLiteral.setCharValue((char) 0); return characterLiteral; } log.warn("Character type with value '" + value + "' has type '" + value.getClass().getName() + "'!"); // char is per default 'X' return ast.newCharacterLiteral(); } if (t.is(T.FLOAT)) { if (value instanceof Float || value instanceof Integer) { final float f = value instanceof Float ? (Float) value : Float.intBitsToFloat((Integer) value); if (Float.isNaN(f)) { return ast.newQualifiedName(ast.newSimpleName("Float"), ast.newSimpleName("NaN")); } if (f == Float.POSITIVE_INFINITY) { return ast.newQualifiedName(ast.newSimpleName("Float"), ast.newSimpleName("POSITIVE_INFINITY")); } if (f == Float.NEGATIVE_INFINITY) { return ast.newQualifiedName(ast.newSimpleName("Float"), ast.newSimpleName("NEGATIVE_INFINITY")); } if (f == Float.MAX_VALUE) { return ast.newQualifiedName(ast.newSimpleName("Float"), ast.newSimpleName("MAX_VALUE")); } if (f == Float.MIN_VALUE) { return ast.newQualifiedName(ast.newSimpleName("Float"), ast.newSimpleName("MIN_VALUE")); } if (f == Float.MIN_NORMAL) { if (context.getT().isAtLeast(Version.JVM_6)) { return ast.newQualifiedName(ast.newSimpleName("Float"), ast.newSimpleName("MIN_NORMAL")); } } return ast.newNumberLiteral(Float.toString(f) + 'F'); } if (value == null) { return ast.newNumberLiteral(Float.toString(0F) + 'F'); } log.warn("Float type with value '" + value + "' has type '" + value.getClass().getName() + "'!"); return ast.newNumberLiteral(value.toString() + 'F'); } if (t.is(T.LONG)) { if (value instanceof Long) { final long l = (Long) value; if (l == Long.MAX_VALUE) { return ast.newQualifiedName(ast.newSimpleName("Long"), ast.newSimpleName("MAX_VALUE")); } if (l == Long.MIN_VALUE) { return ast.newQualifiedName(ast.newSimpleName("Long"), ast.newSimpleName("MIN_VALUE")); } return ast.newNumberLiteral(Long.toString(l) + 'L'); } if (value == null) { return ast.newNumberLiteral(Long.toString(0L) + 'L'); } log.warn("Long type with value '" + value + "' has type '" + value.getClass().getName() + "'!"); return ast.newNumberLiteral(value.toString() + 'L'); } if (t.is(T.DOUBLE)) { if (value instanceof Double || value instanceof Long) { final double d = value instanceof Double ? (Double) value : Double.longBitsToDouble((Long) value); if (Double.isNaN(d)) { return ast.newQualifiedName(ast.newSimpleName("Double"), ast.newSimpleName("NaN")); } if (d == Double.POSITIVE_INFINITY) { return ast.newQualifiedName(ast.newSimpleName("Double"), ast.newSimpleName("POSITIVE_INFINITY")); } if (d == Double.NEGATIVE_INFINITY) { return ast.newQualifiedName(ast.newSimpleName("Double"), ast.newSimpleName("NEGATIVE_INFINITY")); } if (d == Double.MAX_VALUE) { return ast.newQualifiedName(ast.newSimpleName("Double"), ast.newSimpleName("MAX_VALUE")); } if (d == Double.MIN_VALUE) { return ast.newQualifiedName(ast.newSimpleName("Double"), ast.newSimpleName("MIN_VALUE")); } if (d == Double.MIN_NORMAL) { if (context.getT().isAtLeast(Version.JVM_6)) { return ast.newQualifiedName(ast.newSimpleName("Double"), ast.newSimpleName("MIN_NORMAL")); } } return ast.newNumberLiteral(Double.toString(d) + 'D'); } if (value == null) { return ast.newNumberLiteral(Double.toString(0D) + 'D'); } log.warn("Double type with value '" + value + "' has type '" + value.getClass().getName() + "'!"); return ast.newNumberLiteral(value.toString() + 'D'); } log.warn("Unknown data type '" + t + "'!"); final StringLiteral stringLiteral = ast.newStringLiteral(); if (value != null) { stringLiteral.setLiteralValue(value.toString()); } return stringLiteral; }
From source file:org.eclipse.che.jdt.dom.ASTNodes.java
License:Open Source License
/** * Escapes a character value to a literal that can be used in Java source. * * @param ch/*from ww w . j a va 2 s.c om*/ * the character value * @return the escaped string * @see org.eclipse.jdt.core.dom.CharacterLiteral#getEscapedValue() */ public static String getEscapedCharacterLiteral(char ch) { CharacterLiteral characterLiteral = AST.newAST(ASTProvider.SHARED_AST_LEVEL).newCharacterLiteral(); characterLiteral.setCharValue(ch); return characterLiteral.getEscapedValue(); }
From source file:org.eclipse.jpt.common.core.internal.utility.jdt.CharacterStringExpressionConverter.java
License:Open Source License
@Override protected CharacterLiteral convertObject(String string, AST ast) { CharacterLiteral characterLiteral = ast.newCharacterLiteral(); characterLiteral.setCharValue(string.charAt(0)); return characterLiteral; }