List of usage examples for org.eclipse.jdt.core.dom FieldAccess setExpression
public void setExpression(Expression expression)
From source file:com.flamefire.importsmalinames.astutils.RenameVariablesVisitor.java
License:Open Source License
@Override public boolean visit(SimpleName node) { // We have to be inside a method if (curMethod == null) return false; // Only replace variables IBinding binding = node.resolveBinding(); if (binding == null) { if ((node.getParent() instanceof LabeledStatement) && ((LabeledStatement) node.getParent()).getLabel().equals(node)) return false; if ((node.getParent() instanceof BreakStatement) && ((BreakStatement) node.getParent()).getLabel().equals(node)) return false; if (node.getParent() instanceof QualifiedName) return false; // This may happen System.err.println("Detected SimpleName without binding: " + node + "; Parent:" + node.getParent() + "\nThis may happen if there are compile errors"); // return false; } else if (binding.getKind() != IBinding.VARIABLE) return false; // Check if we need to add a "this" // Do this if current node is a field and we may replace a variable with // its name/*w w w . j ava 2 s .c o m*/ AST ast = node.getAST(); IVariableBinding vBinding = (IVariableBinding) binding; // Check for field acceses if (vBinding != null && vBinding.isField()) { // Add this if necessary if (renaming.containsValue(node.toString()) && !(node.getParent() instanceof FieldAccess) && !(node.getParent() instanceof QualifiedName)) { FieldAccess fa = ast.newFieldAccess(); fa.setExpression(ast.newThisExpression()); fa.setName(ast.newSimpleName(node.toString())); astRewrite.replace(node, fa, null); } return false; } String newName = renaming.get(node.toString()); if (newName == null || newName == "") return false; astRewrite.replace(node, ast.newSimpleName(newName), null); return false; }
From source file:com.google.devtools.j2objc.translate.ASTFactory.java
License:Apache License
public static FieldAccess newFieldAccess(AST ast, IVariableBinding var, Expression expr) { FieldAccess node = ast.newFieldAccess(); node.setExpression(expr); node.setName(newSimpleName(ast, var)); Types.addBinding(node, var); return node;//from w w w.ja va 2s. c o m }
From source file:com.motorola.studio.android.generateviewbylayout.codegenerators.AbstractLayoutCodeGenerator.java
License:Apache License
/** * Adds method invocation that instantiates an anonymous class to deal with the event *//*from w ww.j av a2 s.c o m*/ @SuppressWarnings("unchecked") protected void addMethodInvocationToListenerHandler(String callerId, String invocationMethod, String classType, String listenerClazzName, List<MethodDeclaration> methodDeclarations) throws JavaModelException { MethodInvocation methodInvocation = onCreateDeclaration.getAST().newMethodInvocation(); SimpleName listenerInvocationName = onCreateDeclaration.getAST().newSimpleName(invocationMethod); SimpleName listenerOptionalName = onCreateDeclaration.getAST().newSimpleName(callerId); FieldAccess fieldAccess = onCreateDeclaration.getAST().newFieldAccess(); fieldAccess.setExpression(onCreateDeclaration.getAST().newThisExpression()); fieldAccess.setName(listenerOptionalName); methodInvocation.setName(listenerInvocationName); methodInvocation.setExpression(fieldAccess); ClassInstanceCreation classInstanceCreation = onCreateDeclaration.getAST().newClassInstanceCreation(); SimpleType listenerType = getListenerSimpleType(classType, listenerClazzName); classInstanceCreation.setType(listenerType); AnonymousClassDeclaration classDeclaration = onCreateDeclaration.getAST().newAnonymousClassDeclaration(); for (MethodDeclaration methodDeclaration : methodDeclarations) { classDeclaration.bodyDeclarations().add(methodDeclaration); } classInstanceCreation.setAnonymousClassDeclaration(classDeclaration); methodInvocation.arguments().add(classInstanceCreation); ExpressionStatement expressionStatement = onCreateDeclaration.getAST() .newExpressionStatement(methodInvocation); insertStatementsAtOnCreateDeclaration(expressionStatement, false); }
From source file:com.motorola.studio.android.generateviewbylayout.codegenerators.AbstractLayoutCodeGenerator.java
License:Apache License
/** * Creates an assigment statement. The format follows the example: * /*from w ww. j a va 2 s.co m*/ * <br><br> * <code>Button b = (Button) v.findViewById($nodeId);</code> * * * @param node * @param optionalExpression if invocation was nested (e.g.: getFragmentManager()) * @param methodToBeCalled * @throws JavaModelException */ @SuppressWarnings("unchecked") public void addAssignmentStatement(LayoutNode node, Expression optionalExpression, String methodToBeCalled) throws JavaModelException { SimpleName guiName; try { guiName = getNodeVariableTypeBasedOnLayoutNode(node); } catch (CoreException e) { throw new JavaModelException(e); } SimpleType guiType = onCreateDeclaration.getAST().newSimpleType(guiName); SimpleName method = onCreateDeclaration.getAST().newSimpleName(methodToBeCalled); SimpleName rId1 = onCreateDeclaration.getAST().newSimpleName(JavaViewBasedOnLayoutModifierConstants.R); SimpleName rId2 = onCreateDeclaration.getAST().newSimpleName(JavaViewBasedOnLayoutModifierConstants.ID); QualifiedName rQualified1 = onCreateDeclaration.getAST().newQualifiedName(rId1, rId2); SimpleName guiId = onCreateDeclaration.getAST().newSimpleName(node.getNodeId()); QualifiedName rQualified2 = onCreateDeclaration.getAST().newQualifiedName(rQualified1, guiId); MethodInvocation invocation = onCreateDeclaration.getAST().newMethodInvocation(); invocation.setName(method); if (optionalExpression != null) { invocation.setExpression(optionalExpression); } if (getCodeGeneratorData().getAssociatedType().equals(CodeGeneratorDataBasedOnLayout.TYPE.FRAGMENT)) { if (!node.isFragmentPlaceholder()) { invocation.setExpression(onCreateDeclaration.getAST() .newSimpleName(getCodeGeneratorData().getJavaLayoutData().getInflatedViewName())); } } invocation.arguments().add(rQualified2); CastExpression castExpr = onCreateDeclaration.getAST().newCastExpression(); castExpr.setExpression(invocation); castExpr.setType(guiType); Assignment assign = onCreateDeclaration.getAST().newAssignment(); SimpleName variableId = onCreateDeclaration.getAST().newSimpleName(node.getNodeId()); FieldAccess fieldAccess = onCreateDeclaration.getAST().newFieldAccess(); fieldAccess.setExpression(onCreateDeclaration.getAST().newThisExpression()); fieldAccess.setName(variableId); assign.setLeftHandSide(fieldAccess); assign.setOperator(Assignment.Operator.ASSIGN); assign.setRightHandSide(castExpr); ExpressionStatement expr = onCreateDeclaration.getAST().newExpressionStatement(assign); insertStatementsAtOnCreateDeclaration(expr, true); }
From source file:com.motorola.studio.android.generateviewbylayout.codegenerators.RadioButtonCodeGenerator.java
License:Apache License
/** * Add method handlers for RadioButtons * //from ww w . ja v a2 s . c om * <br> * GENERATED_CODE_FORMAT: * <br> * this.$GUI_ID.setOnClickListener(onClickHandler); */ @SuppressWarnings("unchecked") private void addSetOnClickListener(IProgressMonitor monitor) throws JavaModelException { SubMonitor subMonitor = SubMonitor.convert(monitor); subMonitor.beginTask(CodeUtilsNLS.JavaViewBasedOnLayoutModifier_AddingSetOnClickListener, codeGeneratorData.getGuiItems().size()); /* ExpressionStatement expression MethodInvocation arguments handler methodName SimpleName(setOnClickListener) optionalExpression SimpleName(button1) */ for (LayoutNode node : codeGeneratorData.getGuiItems()) { if (node.shouldInsertCode() && node.getNodeType().equals(LayoutNode.LayoutNodeViewType.RadioButton.name())) { boolean containMethodDeclared = checkIfInvokeMethodIsDeclared(node, JavaViewBasedOnLayoutModifierConstants.SET_ON_CLICK_LISTENER); if (!containMethodDeclared) { SimpleName method = onCreateDeclaration.getAST() .newSimpleName(JavaViewBasedOnLayoutModifierConstants.SET_ON_CLICK_LISTENER); SimpleName bId = onCreateDeclaration.getAST().newSimpleName(node.getNodeId()); FieldAccess fieldAccess = onCreateDeclaration.getAST().newFieldAccess(); fieldAccess.setExpression(onCreateDeclaration.getAST().newThisExpression()); fieldAccess.setName(bId); SimpleName handler = onCreateDeclaration.getAST() .newSimpleName(JavaViewBasedOnLayoutModifierConstants.HANDLER_ONCLICK_LISTENER); MethodInvocation mI = onCreateDeclaration.getAST().newMethodInvocation(); mI.arguments().add(handler); mI.setName(method); mI.setExpression(fieldAccess); ExpressionStatement expr = onCreateDeclaration.getAST().newExpressionStatement(mI); if (!onCreateDeclaration.toString().contains(expr.toString())) { //avoid to duplicate statement insertStatementsAtOnCreateDeclaration(expr, false); } } } subMonitor.worked(1); } }
From source file:de.crowdcode.kissmda.cartridges.simplejava.EnumGenerator.java
License:Apache License
/** * Generate constructor./*w w w .ja va2 s .c om*/ * * @param clazz * UML2 class * @param ast * JDT AST * @param ed * EnumDeclaration JDT */ @SuppressWarnings("unchecked") public void generateConstructor(Classifier clazz, AST ast, EnumDeclaration ed) { // Constructor MethodDeclaration md = ast.newMethodDeclaration(); md.setConstructor(true); md.setName(ast.newSimpleName(clazz.getName())); md.modifiers().add(ast.newModifier(Modifier.ModifierKeyword.PRIVATE_KEYWORD)); ed.bodyDeclarations().add(md); // We need to build contructor parameters for each properties generateContructorParameters(clazz, ast, md); // Content of constructor Block block = ast.newBlock(); EList<Property> properties = clazz.getAttributes(); for (Property property : properties) { logger.log(Level.FINE, "Class: " + clazz.getName() + " - " + "Property: " + property.getName() + " - " + "Property Upper: " + property.getUpper() + " - " + "Property Lower: " + property.getLower()); // Left expression SimpleName simpleName = ast.newSimpleName(property.getName()); ThisExpression thisExpression = ast.newThisExpression(); FieldAccess fieldAccess = ast.newFieldAccess(); fieldAccess.setName(simpleName); fieldAccess.setExpression(thisExpression); // Right expression SimpleName parameter = ast.newSimpleName(property.getName()); Assignment assignment = ast.newAssignment(); assignment.setOperator(org.eclipse.jdt.core.dom.Assignment.Operator.ASSIGN); assignment.setLeftHandSide(fieldAccess); assignment.setRightHandSide(parameter); // Expression ExpressionStatement expressionStatement = ast.newExpressionStatement(assignment); block.statements().add(expressionStatement); } // Set Body to MethodDeclaration md.setBody(block); }
From source file:de.dentrassi.varlink.generator.JdtGenerator.java
License:Open Source License
@SuppressWarnings("unchecked") private void createImpl(final AST ast, final CompilationUnit cu, final Interface iface, final String name) { // create type final String implName = name + "Impl"; final TypeDeclaration td = ast.newTypeDeclaration(); cu.types().add(td);/*from w w w . ja va 2 s.co m*/ td.setName(ast.newSimpleName(implName)); make(td, PUBLIC_KEYWORD); final Type parentType = ast.newSimpleType(ast.newName(name)); td.superInterfaceTypes().add(parentType); // create factory createImplFactory(ast, td); // create fields createField(td, "de.dentrassi.varlink.spi.Connection", "connection", PRIVATE_KEYWORD, FINAL_KEYWORD); createField(td, "de.dentrassi.varlink.internal.VarlinkImpl", "varlink", PRIVATE_KEYWORD, FINAL_KEYWORD); // create constructor final MethodDeclaration ctor = ast.newMethodDeclaration(); td.bodyDeclarations().add(ctor); ctor.setConstructor(true); ctor.setName(ast.newSimpleName(implName)); make(ctor, PRIVATE_KEYWORD); createParameter(ctor, "de.dentrassi.varlink.spi.Connection", "connection", FINAL_KEYWORD); createParameter(ctor, "de.dentrassi.varlink.internal.VarlinkImpl", "varlink", FINAL_KEYWORD); // constructor body { final Block body = ast.newBlock(); ctor.setBody(body); createThisAssignment(body, "connection"); createThisAssignment(body, "varlink"); } // error mapper { final MethodDeclaration md = ast.newMethodDeclaration(); make(md, PUBLIC_KEYWORD); td.bodyDeclarations().add(md); md.setName(ast.newSimpleName("checkError")); createParameter(md, "de.dentrassi.varlink.spi.CallResponse", "response", FINAL_KEYWORD); final Block body = ast.newBlock(); md.setBody(body); final MethodInvocation mi = ast.newMethodInvocation(); mi.setExpression(ast.newName("de.dentrassi.varlink.spi.Errors")); mi.setName(ast.newSimpleName("checkErrors")); mi.arguments().add(ast.newSimpleName("response")); final ExpressionMethodReference ref = ast.newExpressionMethodReference(); ref.setExpression(ast.newThisExpression()); ref.setName(ast.newSimpleName("mapError")); mi.arguments().add(ref); body.statements().add(ast.newExpressionStatement(mi)); } { final MethodDeclaration md = ast.newMethodDeclaration(); make(md, PUBLIC_KEYWORD); td.bodyDeclarations().add(md); md.setName(ast.newSimpleName("mapError")); createParameter(md, "java.lang.String", "error", FINAL_KEYWORD); createParameter(md, "de.dentrassi.varlink.spi.CallResponse", "response", FINAL_KEYWORD); md.setReturnType2(ast.newSimpleType(ast.newName("java.lang.RuntimeException"))); final Block body = ast.newBlock(); md.setBody(body); final SwitchStatement sw = ast.newSwitchStatement(); body.statements().add(sw); sw.setExpression(ast.newSimpleName("error")); errors(iface).forEach(error -> { final String errorName = errorTypeName(error); final String fullErrorName = iface.getName() + "." + errorName; final SwitchCase sc = ast.newSwitchCase(); sc.setExpression(JdtHelper.newStringLiteral(ast, fullErrorName)); sw.statements().add(sc); final FieldAccess fa = ast.newFieldAccess(); fa.setExpression(ast.newThisExpression()); fa.setName(ast.newSimpleName("varlink")); final MethodInvocation fromJson = ast.newMethodInvocation(); fromJson.setExpression(fa); fromJson.setName(ast.newSimpleName("fromJson")); // type name final TypeLiteral typeLiteral = ast.newTypeLiteral(); typeLiteral.setType(ast.newSimpleType(ast.newName(errorName + ".Parameters"))); fromJson.arguments().add(typeLiteral); // parameters final MethodInvocation parameters = ast.newMethodInvocation(); parameters.setExpression(ast.newSimpleName("response")); parameters.setName(ast.newSimpleName("getParameters")); fromJson.arguments().add(parameters); // new exception final ClassInstanceCreation cic = ast.newClassInstanceCreation(); cic.setType(ast.newSimpleType(ast.newName(errorName))); cic.arguments().add(fromJson); // return final ReturnStatement ret = ast.newReturnStatement(); ret.setExpression(cic); sw.statements().add(ret); }); { final SwitchCase sc = ast.newSwitchCase(); sc.setExpression(null); sw.statements().add(sc); final ReturnStatement ret = ast.newReturnStatement(); ret.setExpression(ast.newNullLiteral()); sw.statements().add(ret); } } // async creator /* * @Override public Async async() { return new Async() { * * @Override public CompletableFuture<List<Netdev>> list() { return * executeList(); } }; } */ { final MethodDeclaration md = ast.newMethodDeclaration(); td.bodyDeclarations().add(md); md.setName(ast.newSimpleName("async")); addSimpleAnnotation(md, "Override"); make(md, PUBLIC_KEYWORD); md.setReturnType2(ast.newSimpleType(ast.newName("Async"))); final Block body = ast.newBlock(); md.setBody(body); // inner class final ReturnStatement ret = ast.newReturnStatement(); body.statements().add(ret); final ClassInstanceCreation cic = ast.newClassInstanceCreation(); cic.setType(ast.newSimpleType(ast.newName("Async"))); ret.setExpression(cic); final AnonymousClassDeclaration acc = ast.newAnonymousClassDeclaration(); cic.setAnonymousClassDeclaration(acc); forMethods(ast, iface, (m, amd) -> { acc.bodyDeclarations().add(amd); amd.setName(ast.newSimpleName(m.getName())); make(amd, PUBLIC_KEYWORD); makeAsync(amd); final Block asyncBody = ast.newBlock(); amd.setBody(asyncBody); final ReturnStatement asyncRet = ast.newReturnStatement(); asyncBody.statements().add(asyncRet); final MethodInvocation mi = ast.newMethodInvocation(); mi.setName(ast.newSimpleName(internalMethodName(m.getName()))); for (final String argName : m.getParameters().keySet()) { mi.arguments().add(ast.newSimpleName(argName)); } asyncRet.setExpression(mi); }); } // internal methods forMethods(ast, iface, (m, md) -> { make(md, PROTECTED_KEYWORD); td.bodyDeclarations().add(md); md.setName(ast.newSimpleName(internalMethodName(m.getName()))); makeAsync(md); createInternalMethod(td, m, md); }); }
From source file:de.dentrassi.varlink.generator.JdtGenerator.java
License:Open Source License
@SuppressWarnings("unchecked") private void createInternalMethod(final TypeDeclaration parentTypeDeclaration, final MethodInformation m, final MethodDeclaration md) { final AST ast = md.getAST(); final Block body = ast.newBlock(); md.setBody(body);/*w w w.j av a 2 s . c o m*/ /* * return this.connection.call(CallRequest.of("io.systemd.network.List")) * .thenApply(cr -> { check(cr); * * final Iterator<JsonElement> i = cr.getParameters().values().iterator(); * * return asList( this.varlink .fromJson( Netdev[].class, i.next())); }); } */ // add arguments if (!m.getParameters().isEmpty()) { // code: Map<String,Object> parameters = new HashMap<> (); final VariableDeclarationFragment parameters = ast.newVariableDeclarationFragment(); parameters.setName(ast.newSimpleName("parameters")); final VariableDeclarationStatement decl = ast.newVariableDeclarationStatement(parameters); body.statements().add(decl); final ParameterizedType map = ast.newParameterizedType(ast.newSimpleType(ast.newName("java.util.Map"))); map.typeArguments().add(ast.newSimpleType(ast.newName("java.lang.String"))); map.typeArguments().add(ast.newSimpleType(ast.newName("java.lang.Object"))); decl.setType(map); final ClassInstanceCreation init = ast.newClassInstanceCreation(); init.setType(ast.newParameterizedType(ast.newSimpleType(ast.newName("java.util.HashMap")))); init.arguments().add(ast.newNumberLiteral(Integer.toString(m.getParameters().size()))); parameters.setInitializer(init); for (final String argName : m.getParameters().keySet()) { final MethodInvocation mi = ast.newMethodInvocation(); mi.setExpression(ast.newSimpleName("parameters")); mi.setName(ast.newSimpleName("put")); mi.arguments().add(JdtHelper.newStringLiteral(ast, argName)); mi.arguments().add(ast.newSimpleName(argName)); } } // return final ReturnStatement ret = ast.newReturnStatement(); body.statements().add(ret); final MethodInvocation mi = ast.newMethodInvocation(); mi.setName(ast.newSimpleName("call")); final FieldAccess fa = ast.newFieldAccess(); fa.setExpression(ast.newThisExpression()); fa.setName(ast.newSimpleName("connection")); mi.setExpression(fa); final MethodInvocation cr = ast.newMethodInvocation(); cr.setExpression(ast.newName("de.dentrassi.varlink.spi.CallRequest")); cr.setName(ast.newSimpleName("of")); cr.arguments().add(newStringLiteral(ast, m.getInterface().getName() + "." + toUpperFirst(m.getName()))); if (!m.getParameters().isEmpty()) { cr.arguments().add(ast.newSimpleName("parameters")); } mi.arguments().add(cr); final MethodInvocation thenApply = ast.newMethodInvocation(); thenApply.setName(ast.newSimpleName("thenApply")); thenApply.setExpression(mi); // add transformation final LambdaExpression le = ast.newLambdaExpression(); le.setParentheses(false); thenApply.arguments().add(le); final VariableDeclarationFragment p = ast.newVariableDeclarationFragment(); p.setName(ast.newSimpleName("result")); le.parameters().add(p); final Block transform = ast.newBlock(); le.setBody(transform); { // check result final MethodInvocation check = ast.newMethodInvocation(); check.setName(ast.newSimpleName("checkError")); transform.statements().add(ast.newExpressionStatement(check)); check.arguments().add(ast.newSimpleName("result")); } if (m.getReturnTypes().isEmpty()) { final ReturnStatement transformRet = ast.newReturnStatement(); transformRet.setExpression(ast.newNullLiteral()); transform.statements().add(transformRet); } else { final int returns = m.getReturnTypes().size(); if (returns > 0) { // return this.varlink.fromJson(DriveCondition.class, result.getParameters()); // return this.varlink.fromJson(DriveCondition.class, // result.getFirstParameter()); final FieldAccess varlink = ast.newFieldAccess(); varlink.setExpression(ast.newThisExpression()); varlink.setName(ast.newSimpleName("varlink")); final MethodInvocation fromJson = ast.newMethodInvocation(); fromJson.setExpression(varlink); fromJson.setName(ast.newSimpleName("fromJson")); // FIXME: add to parent { final ParameterizedType ttt = ast .newParameterizedType(ast.newSimpleType(ast.newName(TYPE_TOKEN_TYPE_NAME))); ttt.typeArguments().add(m.createMainReturnType(ast)); final ClassInstanceCreation tt = ast.newClassInstanceCreation(); tt.setType(JdtHelper.copyNode(ast, ttt)); final AnonymousClassDeclaration decl = ast.newAnonymousClassDeclaration(); tt.setAnonymousClassDeclaration(decl); final MethodInvocation getType = ast.newMethodInvocation(); getType.setExpression(tt); getType.setName(ast.newSimpleName("getType")); final VariableDeclarationFragment vdf = ast.newVariableDeclarationFragment(); vdf.setName(ast.newSimpleName(m.getName() + "_returnTypeToken")); vdf.setInitializer(getType); final FieldDeclaration fd = ast.newFieldDeclaration(vdf); fd.setType(ast.newSimpleType(ast.newName("java.lang.reflect.Type"))); make(fd, PRIVATE_KEYWORD, FINAL_KEYWORD, STATIC_KEYWORD); parentTypeDeclaration.bodyDeclarations().add(fd); } fromJson.arguments().add(ast.newSimpleName(m.getName() + "_returnTypeToken")); // json fragment final MethodInvocation fragment = ast.newMethodInvocation(); if (returns == 1) { fragment.setName(ast.newSimpleName("getFirstParameter")); } else { fragment.setName(ast.newSimpleName("getParameters")); } fragment.setExpression(ast.newSimpleName("result")); fromJson.arguments().add(fragment); // return final ReturnStatement transformRet = ast.newReturnStatement(); transformRet.setExpression(fromJson); transform.statements().add(transformRet); } // FIXME: handle return type // FIXME: handle n } // set return ret.setExpression(thenApply); }
From source file:de.dentrassi.varlink.generator.JdtGenerator.java
License:Open Source License
@SuppressWarnings("unchecked") private void createType(final TypeDeclaration parent, final String parentName, final TypeAliasDefinition type) { final AST ast = parent.getAST(); if (type instanceof de.dentrassi.varlink.idl.varlinkIdl.Object) { final TypeDeclaration td = ast.newTypeDeclaration(); parent.bodyDeclarations().add(td); td.setName(ast.newSimpleName(toUpperFirst(parentName))); make(td, PUBLIC_KEYWORD, STATIC_KEYWORD); final de.dentrassi.varlink.idl.varlinkIdl.Object o = (de.dentrassi.varlink.idl.varlinkIdl.Object) type; for (final Field field : o.getFields()) { final String name = toLowerFirst(field.getName()); // create enum type if (field.getType() instanceof de.dentrassi.varlink.idl.varlinkIdl.Enum) { final de.dentrassi.varlink.idl.varlinkIdl.Enum en = (de.dentrassi.varlink.idl.varlinkIdl.Enum) field .getType();//from w w w. j av a 2 s. c o m createEnum(td, toUpperFirst(name), en.getFields()); } // created nested type if (field.getType() instanceof Object) { createType(td, field.getName(), (Object) field.getType()); } // create field { final VariableDeclarationFragment vdf = ast.newVariableDeclarationFragment(); vdf.setName(ast.newSimpleName(name)); final FieldDeclaration fd = ast.newFieldDeclaration(vdf); fd.setType(asType(ast, null, field)); make(fd, PRIVATE_KEYWORD); td.bodyDeclarations().add(fd); } // create getter { final MethodDeclaration md = createGetter(ast, asType(ast, null, field), name); td.bodyDeclarations().add(md); } // create setter { final MethodDeclaration md = ast.newMethodDeclaration(); md.setName(ast.newSimpleName("set" + toUpperFirst(name))); td.bodyDeclarations().add(md); make(md, PUBLIC_KEYWORD); final SingleVariableDeclaration svd = ast.newSingleVariableDeclaration(); svd.setName(ast.newSimpleName(name)); svd.setType(asType(ast, null, field)); md.parameters().add(svd); final Block body = ast.newBlock(); md.setBody(body); final FieldAccess fa = ast.newFieldAccess(); fa.setExpression(ast.newThisExpression()); fa.setName(ast.newSimpleName(name)); final Assignment ass = ast.newAssignment(); ass.setLeftHandSide(fa); ass.setRightHandSide(ast.newSimpleName(name)); body.statements().add(ast.newExpressionStatement(ass)); } } } else if (type instanceof de.dentrassi.varlink.idl.varlinkIdl.Enum) { // FIXME: create enums } }
From source file:de.dentrassi.varlink.generator.util.JdtHelper.java
License:Open Source License
public static void createThisAssignment(final Block body, final String name) { final AST ast = body.getAST(); final Assignment as = ast.newAssignment(); final FieldAccess fa = ast.newFieldAccess(); fa.setExpression(ast.newThisExpression()); fa.setName(ast.newSimpleName(name)); as.setLeftHandSide(fa);//from www .jav a 2 s . co m as.setRightHandSide(ast.newSimpleName(name)); body.statements().add(ast.newExpressionStatement(as)); }