List of usage examples for org.eclipse.jdt.core.dom Modifier NATIVE
int NATIVE
To view the source code for org.eclipse.jdt.core.dom Modifier NATIVE.
Click Source Link
From source file:astview.Binding.java
License:Open Source License
private static StringBuffer getModifiersString(int flags, boolean isMethod) { StringBuffer sb = new StringBuffer().append("0x").append(Integer.toHexString(flags)).append(" ("); int prologLen = sb.length(); int rest = flags; rest &= ~appendFlag(sb, flags, Modifier.PUBLIC, "public "); rest &= ~appendFlag(sb, flags, Modifier.PRIVATE, "private "); rest &= ~appendFlag(sb, flags, Modifier.PROTECTED, "protected "); rest &= ~appendFlag(sb, flags, Modifier.STATIC, "static "); rest &= ~appendFlag(sb, flags, Modifier.FINAL, "final "); if (isMethod) { rest &= ~appendFlag(sb, flags, Modifier.SYNCHRONIZED, "synchronized "); rest &= ~appendFlag(sb, flags, Modifier.DEFAULT, "default "); } else {/*from w w w . j a v a 2 s . c o m*/ rest &= ~appendFlag(sb, flags, Modifier.VOLATILE, "volatile "); rest &= ~appendFlag(sb, flags, Modifier.TRANSIENT, "transient "); } rest &= ~appendFlag(sb, flags, Modifier.NATIVE, "native "); rest &= ~appendFlag(sb, flags, Modifier.ABSTRACT, "abstract "); rest &= ~appendFlag(sb, flags, Modifier.STRICTFP, "strictfp "); if (rest != 0) sb.append("unknown:0x").append(Integer.toHexString(rest)).append(" "); int len = sb.length(); if (len != prologLen) sb.setLength(len - 1); sb.append(")"); return sb; }
From source file:com.google.devtools.j2cpp.gen.CppImplementationGenerator.java
License:Open Source License
@Override protected String methodDeclaration(MethodDeclaration m) { int modifiers = m.getModifiers(); if ((modifiers & Modifier.NATIVE) > 0) { return super.methodDeclaration(m) + " " + extractNativeMethodBody(m) + "\n\n"; }/* w w w . jav a2 s. co m*/ String methodBody = generateMethodBody(m); return super.methodDeclaration(m) + " " + reindent(methodBody) + "\n\n"; }
From source file:com.google.devtools.j2cpp.gen.CppImplementationGenerator.java
License:Open Source License
@Override protected String mappedMethodDeclaration(MethodDeclaration method, IOSMethod mappedMethod) { String methodBody;//from w w w . ja va 2s.c o m if ((method.getModifiers() & Modifier.NATIVE) > 0) { methodBody = extractNativeMethodBody(method); } else { methodBody = generateMethodBody(method); } return super.mappedMethodDeclaration(method, mappedMethod) + " " + reindent(methodBody) + "\n\n"; }
From source file:com.google.devtools.j2cpp.gen.CppImplementationGenerator.java
License:Open Source License
private void printMainMethod(MethodDeclaration m, String typeName, List<IMethodBinding> testMethods) { if (m != null) { // True for unit tests. Types.addFunction(Types.getMethodBinding(m)); }/* w ww. ja v a 2 s .c o m*/ println("int main( int argc, const char *argv[] ) {"); if (m != null && (m.getModifiers() & Modifier.NATIVE) > 0) { println(extractNativeMethodBody(m)); return; } indent(); if (Options.useReferenceCounting()) { printIndent(); println("NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];"); } if (m != null) { @SuppressWarnings("unchecked") List<SingleVariableDeclaration> params = m.parameters(); assert params.size() == 1; // Previously checked in isMainMethod(). printIndent(); printf("IOSObjectArray *%s = JreEmulationMainArguments(argc, argv);\n\n", params.get(0).getName().getIdentifier()); printMethodBody(m, true); } if (testMethods != null) { printIndent(); printf("int exitCode = [JUnitRunner runTests:[%s class]", typeName); for (IMethodBinding test : testMethods) { printf(", @\"%s\"", test.getName()); } println(", nil];"); } else { printIndent(); println("int exitCode = 0;"); } if (Options.useReferenceCounting()) { print('\n'); printIndent(); println("[pool release];"); } printIndent(); println("return exitCode;"); unindent(); println("}"); }
From source file:com.google.devtools.j2cpp.gen.CppImplementationGenerator.java
License:Open Source License
private String extractNativeMethodBody(MethodDeclaration m) { assert (m.getModifiers() & Modifier.NATIVE) > 0; String nativeCode = extractNativeCode(m.getStartPosition(), m.getLength()); if (nativeCode == null) { J2ObjC.error(m, "no native code found"); return "ERROR"; }//from w ww . jav a 2 s . c o m indent(); String code = reindent('{' + nativeCode + '}'); unindent(); return code; }
From source file:com.google.devtools.j2objc.gen.SourceFileGenerator.java
License:Open Source License
/** * Returns true if a native method has an OCNI block, warning if JSNI * delimiters are found instead./*from w w w . j ava2 s . co m*/ */ protected boolean hasNativeCode(MethodDeclaration m, boolean reportJsniWarnings) { assert (m.getModifiers() & Modifier.NATIVE) > 0; String nativeCode = extractNativeCode(m.getStartPosition(), m.getLength(), reportJsniWarnings); return nativeCode != null; }
From source file:com.google.devtools.j2objc.translate.Functionizer.java
License:Apache License
/** * Create an equivalent function declaration for a given method. *///w ww.j a v a 2 s . c o m private FunctionDeclaration makeFunction(MethodDeclaration method) { IMethodBinding m = method.getMethodBinding(); ITypeBinding declaringClass = m.getDeclaringClass(); boolean isInstanceMethod = !BindingUtil.isStatic(m) && !m.isConstructor(); FunctionDeclaration function = new FunctionDeclaration(nameTable.getFullFunctionName(m), m.getReturnType()); function.setLineNumber(method.getName().getLineNumber()); if (!BindingUtil.isStatic(m)) { GeneratedVariableBinding var = new GeneratedVariableBinding(NameTable.SELF_NAME, 0, declaringClass, false, true, declaringClass, null); function.getParameters().add(new SingleVariableDeclaration(var)); } TreeUtil.copyList(method.getParameters(), function.getParameters()); function.setModifiers(BindingUtil.isPrivate(m) || isInstanceMethod ? Modifier.PRIVATE : Modifier.PUBLIC); if (Modifier.isNative(method.getModifiers())) { function.addModifiers(Modifier.NATIVE); return function; } function.setBody(TreeUtil.remove(method.getBody())); if (BindingUtil.isStatic(m)) { // Add class initialization invocation, since this may be the first use of this class. String initName = String.format("%s_initialize", nameTable.getFullName(declaringClass)); ITypeBinding voidType = typeEnv.resolveJavaType("void"); FunctionInvocation initCall = new FunctionInvocation(initName, voidType, voidType, declaringClass); function.getBody().getStatements().add(0, new ExpressionStatement(initCall)); } if (!BindingUtil.isStatic(m)) { FunctionConverter.convert(function); } return function; }
From source file:com.google.devtools.j2objc.translate.Functionizer.java
License:Apache License
/** * Replace method block statements with single statement that invokes function. *//*from w w w.ja va 2 s. com*/ private void setFunctionCaller(MethodDeclaration method, FunctionDeclaration function) { IMethodBinding methodBinding = method.getMethodBinding(); ITypeBinding returnType = function.getReturnType().getTypeBinding(); ITypeBinding declaringClass = methodBinding.getDeclaringClass(); Block body = new Block(); method.setBody(body); method.removeModifiers(Modifier.NATIVE); List<Statement> stmts = body.getStatements(); FunctionInvocation invocation = new FunctionInvocation(function.getName(), returnType, returnType, declaringClass); List<Expression> args = invocation.getArguments(); if (!BindingUtil.isStatic(methodBinding)) { args.add(new ThisExpression(methodBinding.getDeclaringClass())); } for (SingleVariableDeclaration param : method.getParameters()) { args.add(new SimpleName(param.getVariableBinding())); } if (typeEnv.isVoidType(returnType)) { stmts.add(new ExpressionStatement(invocation)); if (methodBinding.isConstructor()) { stmts.add(new ReturnStatement(new ThisExpression(declaringClass))); } } else { stmts.add(new ReturnStatement(invocation)); } }
From source file:com.google.devtools.j2objc.translate.OcniExtractor.java
License:Apache License
@Override public void endVisit(MethodDeclaration node) { int modifiers = node.getModifiers(); if (Modifier.isNative(modifiers)) { String nativeCode = extractNativeCode(node); if (nativeCode != null) { Block body = new Block(); body.getStatements().add(new NativeStatement(nativeCode)); node.setBody(body);/*from w ww. ja va2 s .co m*/ node.removeModifiers(Modifier.NATIVE); } } if (Modifier.isSynchronized(modifiers)) { ITypeBinding declaringClass = node.getMethodBinding().getDeclaringClass(); SynchronizedStatement syncStmt = new SynchronizedStatement( Modifier.isStatic(modifiers) ? new TypeLiteral(declaringClass, typeEnv) : new ThisExpression(declaringClass)); syncStmt.setBody(TreeUtil.remove(node.getBody())); Block newBody = new Block(); newBody.getStatements().add(syncStmt); node.setBody(newBody); node.removeModifiers(Modifier.SYNCHRONIZED); } }
From source file:com.ibm.wala.cast.java.translator.jdt.JDT2CAstUtils.java
License:Open Source License
public static Collection<CAstQualifier> mapModifiersToQualifiers(int modifiers, boolean isInterface, boolean isAnnotation) { Set<CAstQualifier> quals = new LinkedHashSet<CAstQualifier>(); if (isInterface) quals.add(CAstQualifier.INTERFACE); if (isAnnotation) quals.add(CAstQualifier.ANNOTATION); if ((modifiers & Modifier.ABSTRACT) != 0) quals.add(CAstQualifier.ABSTRACT); if ((modifiers & Modifier.FINAL) != 0) quals.add(CAstQualifier.FINAL);/*w w w .j ava 2s . c om*/ if ((modifiers & Modifier.NATIVE) != 0) quals.add(CAstQualifier.NATIVE); // if (flags.isPackage()) quals.add(CAstQualifier.PACKAGE); if ((modifiers & Modifier.PRIVATE) != 0) quals.add(CAstQualifier.PRIVATE); if ((modifiers & Modifier.PROTECTED) != 0) quals.add(CAstQualifier.PROTECTED); if ((modifiers & Modifier.PUBLIC) != 0) quals.add(CAstQualifier.PUBLIC); if ((modifiers & Modifier.STATIC) != 0) quals.add(CAstQualifier.STATIC); if ((modifiers & Modifier.STRICTFP) != 0) quals.add(CAstQualifier.STRICTFP); if ((modifiers & Modifier.SYNCHRONIZED) != 0) quals.add(CAstQualifier.SYNCHRONIZED); if ((modifiers & Modifier.TRANSIENT) != 0) quals.add(CAstQualifier.TRANSIENT); if ((modifiers & Modifier.VOLATILE) != 0) quals.add(CAstQualifier.VOLATILE); return quals; }