Example usage for org.eclipse.jdt.core.dom AST newFieldDeclaration

List of usage examples for org.eclipse.jdt.core.dom AST newFieldDeclaration

Introduction

In this page you can find the example usage for org.eclipse.jdt.core.dom AST newFieldDeclaration.

Prototype

public FieldDeclaration newFieldDeclaration(VariableDeclarationFragment fragment) 

Source Link

Document

Creates a new unparented field declaration node owned by this AST, for the given variable declaration fragment.

Usage

From source file:ac.at.tuwien.dsg.utest.transformation.umlclassdiagram2javadb.id.rules.UMLClassDiagram2JavaDBTransformationRule.java

License:Open Source License

public Object createTarget(ITransformContext context) {

    ClassImpl source = (ClassImpl) context.getSource();

    Document document = new Document("@NodeType \n public class " + source.getName() + "{ \n");

    //below helper classes toi generate our desired .java file
    ASTParser parser = ASTParser.newParser(AST.JLS8);
    parser.setSource(document.get().toCharArray());
    CompilationUnit cu = (CompilationUnit) parser.createAST(null);
    cu.recordModifications();/*  w w  w  . j a  v  a 2  s.c o  m*/
    AST ast = cu.getAST();

    ASTRewrite rewriter = ASTRewrite.create(ast);

    ListRewrite listRewrite = rewriter.getListRewrite(cu, CompilationUnit.TYPES_PROPERTY);

    //TODO: here we take each property introduced by each Stereotype

    for (Stereotype stereotype : source.getAppliedStereotypes()) {

        //get all properties
        for (Property attribute : stereotype.getAllAttributes()) {

            //todo
        }
    }

    for (Property property : source.getAllAttributes()) {
        System.out.println(property.getName());

        Association assoc = property.getAssociation();

        if (assoc == null) {
            System.out.format("this is simple %s \n", property.getName());

            VariableDeclarationFragment varDecl = ast.newVariableDeclarationFragment();
            varDecl.setName(ast.newSimpleName(property.getName()));

            FieldDeclaration propertyField = ast.newFieldDeclaration(varDecl);
            propertyField.setType(ast.newSimpleType(ast.newName(property.getType().getName())));

            final SingleMemberAnnotation annot = ast.newSingleMemberAnnotation();
            annot.setTypeName(ast.newName("Property"));

            StringLiteral st = ast.newStringLiteral();
            st.setLiteralValue("type=\"variable\"");

            annot.setValue(st);

            listRewrite.insertLast(annot, null);
            listRewrite.insertLast(propertyField, null);

        } else {
            System.out.format("this is complex %s \n", property.getName());
            Type type = assoc.getEndTypes().stream().filter(a -> !a.equals(source)).findFirst().get();
            System.out.format("Association end is   %s \n", type.getName());

            AggregationKind kind = property.getAggregation();
            if (kind.equals(AggregationKind.COMPOSITE)) {
                System.out.format("Composition \n");
            } else if (kind.equals(AggregationKind.SHARED)) {
                System.out.format("Aggregation \n");
            } else if (kind.equals(AggregationKind.NONE)) {
                System.out.format("Association \n");
            }

        }

    }

    TextEdit edits = rewriter.rewriteAST(document, null);
    try {
        UndoEdit undo = edits.apply(document);
    } catch (MalformedTreeException | BadLocationException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    System.out.println(document.get());

    return null;
}

From source file:cn.ieclipse.adt.ext.jdt.SourceGenerator.java

License:Apache License

private static void merge(CompilationUnit unit, String pkgName, String typeName, String auth, String dbName,
        List<String> tableCreators) {
    unit.recordModifications();/*from  w  ww . j  av  a2s.co m*/
    AST ast = unit.getAST();
    TypeDeclaration type = (TypeDeclaration) unit.types().get(0);
    ImportDeclaration id = ast.newImportDeclaration();
    id.setName(ast.newName("cn.ieclipse.aorm.Session"));
    unit.imports().add(id);

    id = ast.newImportDeclaration();
    id.setName(ast.newName("android.content.UriMatcher"));
    unit.imports().add(id);

    id = ast.newImportDeclaration();
    id.setName(ast.newName("android.database.sqlite.SQLiteDatabase"));
    unit.imports().add(id);

    id = ast.newImportDeclaration();
    id.setName(ast.newName("android.database.sqlite.SQLiteOpenHelper"));
    unit.imports().add(id);

    id = ast.newImportDeclaration();
    id.setName(ast.newName("java.net.Uri"));
    unit.imports().add(id);

    id = ast.newImportDeclaration();
    id.setName(ast.newName("android.content.ContentValue"));
    unit.imports().add(id);

    VariableDeclarationFragment vdf = ast.newVariableDeclarationFragment();
    vdf.setName(ast.newSimpleName("AUTH"));
    StringLiteral sl = ast.newStringLiteral();
    sl.setLiteralValue(auth);
    vdf.setInitializer(sl);

    FieldDeclaration fd = ast.newFieldDeclaration(vdf);
    fd.modifiers().addAll(ast.newModifiers((Modifier.PUBLIC | Modifier.STATIC | Modifier.FINAL)));
    fd.setType(ast.newSimpleType(ast.newSimpleName("String")));

    int i = 0;
    type.bodyDeclarations().add(i++, fd);

    // URI = Uri.parse("content://" + AUTH);
    vdf = ast.newVariableDeclarationFragment();
    vdf.setName(ast.newSimpleName("URI"));

    MethodInvocation mi = ast.newMethodInvocation();
    mi.setExpression(ast.newSimpleName("Uri"));
    mi.setName(ast.newSimpleName("parse"));

    InfixExpression fix = ast.newInfixExpression();
    fix.setOperator(InfixExpression.Operator.PLUS);
    sl = ast.newStringLiteral();
    sl.setLiteralValue("content://");
    fix.setLeftOperand(sl);
    fix.setRightOperand(ast.newSimpleName("AUTH"));

    mi.arguments().add(fix);

    vdf.setInitializer(mi);
    fd = ast.newFieldDeclaration(vdf);
    fd.modifiers().addAll(ast.newModifiers((Modifier.PUBLIC | Modifier.STATIC | Modifier.FINAL)));
    fd.setType(ast.newSimpleType(ast.newSimpleName("Uri")));

    type.bodyDeclarations().add(i++, fd);

    // private mOpenHelper;
    vdf = ast.newVariableDeclarationFragment();
    vdf.setName(ast.newSimpleName("mOpenHelper"));

    fd = ast.newFieldDeclaration(vdf);
    fd.modifiers().add(ast.newModifier(Modifier.ModifierKeyword.PRIVATE_KEYWORD));
    fd.setType(ast.newSimpleType(ast.newName("SQLiteOpenHelper")));
    type.bodyDeclarations().add(i++, fd);

    // private static session;
    vdf = ast.newVariableDeclarationFragment();
    vdf.setName(ast.newSimpleName("session"));

    fd = ast.newFieldDeclaration(vdf);
    fd.modifiers().addAll(ast.newModifiers((Modifier.PRIVATE | Modifier.STATIC)));
    fd.setType(ast.newSimpleType(ast.newName("Session")));
    type.bodyDeclarations().add(i++, fd);

    // public static Session getSession(){
    // return session;
    // }

    MethodDeclaration md = ast.newMethodDeclaration();
    md.modifiers().addAll(ast.newModifiers((Modifier.PUBLIC | Modifier.STATIC)));
    md.setReturnType2(ast.newSimpleType(ast.newName("Session")));
    md.setName(ast.newSimpleName("getSession"));

    Block methodBlock = ast.newBlock();
    ReturnStatement returnStmt = ast.newReturnStatement();
    returnStmt.setExpression(ast.newSimpleName("session"));
    methodBlock.statements().add(returnStmt);
    md.setBody(methodBlock);
    type.bodyDeclarations().add(i, md);

    // modify onCreate
    rewriteOnCreate(unit, dbName, tableCreators);
}

From source file:com.alex.example.fixlicense.actions.SampleAction.java

License:Open Source License

private FieldDeclaration createLiceseInLineField(AST ast) {
    VariableDeclarationFragment vdf = ast.newVariableDeclarationFragment();
    vdf.setName(ast.newSimpleName("COPYRIGHT"));
    StringLiteral sl = ast.newStringLiteral();
    sl.setLiteralValue(license_inline);//w w  w  .  j  a v a  2  s . co  m
    vdf.setInitializer(sl);
    FieldDeclaration fd = ast.newFieldDeclaration(vdf);
    fd.modifiers().addAll(ast.newModifiers(Modifier.PUBLIC | Modifier.STATIC | Modifier.FINAL));
    fd.setType(ast.newSimpleType(ast.newSimpleName("String")));

    return fd;
}

From source file:com.crispico.flower.codesync.tests.java.JavaTestsOnSourceCode.java

License:Open Source License

@SuppressWarnings("unchecked")
public void testField_Adders() {
    javaCompilationUnit = JavaSyncUtils.loadJavaFile(folder.getFile("ClassA.java"),
            ASTParser.newParser(AST.JLS3));
    javaCompilationUnit.recordModifications();
    javaClass = JavaSyncUtils.getMasterClass(javaCompilationUnit);

    AST ast = javaClass.getAST();
    VariableDeclarationFragment vdf = null;
    FieldDeclaration field = null;/*from   w  w  w  .  j a va  2  s .c  o  m*/

    // adding field with all 4 kinds of visibilities
    vdf = ast.newVariableDeclarationFragment(); // public a
    field = ast.newFieldDeclaration(vdf);
    ((VariableDeclarationFragment) field.fragments().get(0)).setName(ast.newSimpleName("addedField1"));
    javaClass.bodyDeclarations().add(field);
    JavaSyncUtils.updateVisibilityFromModelToJavaClass(field, VisibilityKind.PUBLIC_LITERAL);

    vdf = ast.newVariableDeclarationFragment(); // protected a:String
    field = ast.newFieldDeclaration(vdf);
    ((VariableDeclarationFragment) field.fragments().get(0)).setName(ast.newSimpleName("addedField2"));
    javaClass.bodyDeclarations().add(field);
    JavaSyncUtils.updateVisibilityFromModelToJavaClass(field, VisibilityKind.PUBLIC_LITERAL);
    field.setType(JavaSyncUtils.getJavaTypeFromString(ast, "String"));

    vdf = ast.newVariableDeclarationFragment(); // private a:ClassB
    field = ast.newFieldDeclaration(vdf);
    ((VariableDeclarationFragment) field.fragments().get(0)).setName(ast.newSimpleName("addedField3"));
    javaClass.bodyDeclarations().add(field);
    JavaSyncUtils.updateVisibilityFromModelToJavaClass(field, VisibilityKind.PUBLIC_LITERAL);
    field.setType(JavaSyncUtils.getJavaTypeFromString(ast, "ClassB"));

    vdf = ast.newVariableDeclarationFragment(); // default a
    field = ast.newFieldDeclaration(vdf);
    ((VariableDeclarationFragment) field.fragments().get(0)).setName(ast.newSimpleName("addedField4"));
    javaClass.bodyDeclarations().add(field);
    JavaSyncUtils.updateVisibilityFromModelToJavaClass(field, VisibilityKind.PUBLIC_LITERAL);
    field.setType(JavaSyncUtils.getJavaTypeFromString(ast, "ClassA"));

    synchronizeAndCompareMasterClass();
}

From source file:com.crispico.flower.mp.codesync.code.java.adapter.JavaTypeModelAdapter.java

License:Open Source License

public static Object createCorrespondingModelElement(AST ast, CodeSyncElement cse) {
    ASTNode child = null;//from ww w  .  j  a  v a  2 s  .c o m
    if (JavaAttributeModelAdapter.ATTRIBUTE.equals(cse.getType())) {
        VariableDeclarationFragment fragment = ast.newVariableDeclarationFragment();
        FieldDeclaration field = ast.newFieldDeclaration(fragment);
        child = field;
    }
    if (JavaOperationModelAdapter.OPERATION.equals(cse.getType())) {
        child = ast.newMethodDeclaration();
    }
    if (CLASS.equals(cse.getType())) {
        child = ast.newTypeDeclaration();
    }
    if (INTERFACE.equals(cse.getType())) {
        TypeDeclaration type = ast.newTypeDeclaration();
        type.setInterface(true);
        child = type;
    }
    if (ENUM.equals(cse.getType())) {
        child = ast.newEnumDeclaration();
    }
    if (ANNOTATION.equals(cse.getType())) {
        child = ast.newAnnotationTypeDeclaration();
    }
    return child;
}

From source file:com.crispico.flower.mp.metamodel.codesyncjava.algorithm.forward.ForwardJavaClass_OwnedFields.java

License:Open Source License

/**
 * @flowerModelElementId _zbW4ZZiOEd6aNMdNFvR5WQ
 */// ww w  .  jav a 2 s. c om
@SuppressWarnings("unchecked")
@Override
protected FieldDeclaration createAndAddNewASTElement(Property modelElement, CompilationUnit parentAstElement) {
    TypeDeclaration parentClass = JavaSyncUtils.getMasterClass((CompilationUnit) parentAstElement);
    AST ast = parentClass.getAST();

    VariableDeclarationFragment vdf = ast.newVariableDeclarationFragment();
    FieldDeclaration field = ast.newFieldDeclaration(vdf);
    parentClass.bodyDeclarations().add(field);

    return field;
}

From source file:com.google.devtools.j2cpp.translate.ClassConverter.java

License:Open Source License

protected FieldDeclaration createField(String name, ITypeBinding varType, ITypeBinding declaringClass,
        AST ast) {
    VariableDeclarationFragment fragment = ast.newVariableDeclarationFragment();
    SimpleName fieldName = ast.newSimpleName(name);
    GeneratedVariableBinding fieldBinding = new GeneratedVariableBinding(fieldName.getIdentifier(),
            Modifier.PRIVATE | Modifier.FINAL, varType, true, false, declaringClass, null);
    Types.addBinding(fieldName, fieldBinding);
    fragment.setName(fieldName);/*  w  ww.  j a v  a2 s. c om*/
    Types.addBinding(fragment, fieldBinding);

    FieldDeclaration field = ast.newFieldDeclaration(fragment);
    field.setType(Types.makeType(varType));
    @SuppressWarnings("unchecked")
    List<IExtendedModifier> mods = field.modifiers(); // safe by definition
    mods.add(ast.newModifier(ModifierKeyword.PRIVATE_KEYWORD));
    mods.add(ast.newModifier(ModifierKeyword.FINAL_KEYWORD));
    return field;
}

From source file:com.google.devtools.j2objc.translate.ASTFactory.java

License:Apache License

public static FieldDeclaration newFieldDeclaration(AST ast, VariableDeclarationFragment fragment) {
    IVariableBinding varBinding = Types.getVariableBinding(fragment);
    FieldDeclaration decl = ast.newFieldDeclaration(fragment);
    decl.setType(newType(ast, varBinding.getType()));
    ASTUtil.getModifiers(decl).addAll(newModifiers(ast, varBinding.getModifiers()));
    return decl;/*w ww  . j a  va2s.  c om*/
}

From source file:de.crowdcode.kissmda.cartridges.simplejava.EnumGenerator.java

License:Apache License

/**
 * Generate the attribute.//from   w  ww  .j a va  2s .com
 * 
 * @param clazz
 *            UM2 class
 * @param ast
 *            JDT AST
 * @param property
 *            UML2 property
 * @return FieldDeclaration
 */
public FieldDeclaration generateAttribute(Classifier clazz, AST ast, Property property) {
    Type type = property.getType();
    logger.log(Level.FINE, "Class: " + clazz.getName() + " - " + "Property: " + property.getName() + " - "
            + "Property Upper: " + property.getUpper() + " - " + "Property Lower: " + property.getLower());
    String umlTypeName = type.getName();
    String umlQualifiedTypeName = type.getQualifiedName();

    // Check whether primitive or array type or simple type?
    org.eclipse.jdt.core.dom.Type chosenType = jdtHelper.getChosenType(ast, umlTypeName, umlQualifiedTypeName,
            sourceDirectoryPackageName);

    VariableDeclarationFragment fragment = ast.newVariableDeclarationFragment();
    SimpleName variableName = ast.newSimpleName(property.getName());
    fragment.setName(variableName);

    FieldDeclaration fieldDeclaration = ast.newFieldDeclaration(fragment);
    fieldDeclaration.setType(chosenType);

    return fieldDeclaration;
}

From source file:de.crowdcode.kissmda.cartridges.simplejava.ExceptionGenerator.java

License:Apache License

/**
 * Generate the serial version UID for the Exception class.
 * //  www . j a  v  a  2  s  .  c om
 * @param clazz
 *            UML class
 * @param ast
 *            JDT AST tree
 * @param td
 *            JDT type declaration (Class)
 */
@SuppressWarnings("unchecked")
public void generateSerialVersionUID(Classifier clazz, AST ast, TypeDeclaration td) {
    VariableDeclarationFragment fragment = ast.newVariableDeclarationFragment();
    SimpleName variableName = ast.newSimpleName("serialVersionUID");
    fragment.setName(variableName);
    NumberLiteral initializer = ast.newNumberLiteral();
    initializer.setToken("1L");
    fragment.setInitializer(initializer);

    FieldDeclaration fieldDeclaration = ast.newFieldDeclaration(fragment);
    fieldDeclaration.modifiers().add(ast.newModifier(Modifier.ModifierKeyword.PRIVATE_KEYWORD));
    fieldDeclaration.modifiers().add(ast.newModifier(Modifier.ModifierKeyword.STATIC_KEYWORD));
    fieldDeclaration.modifiers().add(ast.newModifier(Modifier.ModifierKeyword.FINAL_KEYWORD));
    fieldDeclaration.setType(ast.newPrimitiveType(PrimitiveType.LONG));

    td.bodyDeclarations().add(fieldDeclaration);
}