Package japa.parser.ast.body

Examples of japa.parser.ast.body.ClassOrInterfaceDeclaration


  @Test
  public void testAddMethod() throws Exception {
    CompilerAssert<File, File> helper = incrementalCompiler("metamodel.controller");
    JavaFile file = helper.assertJavaSource("metamodel.controller.A");
    ClassOrInterfaceDeclaration a = file.assertDeclaration();
    MethodDeclaration decl = (MethodDeclaration)a.getMembers().get(0);
    assertTrue(a.getMembers().remove(decl));
    file.assertSave();
    helper.assertCompile();

    //
    File ser = helper.getSourceOutput().getPath("juzu", "metamodel.ser");
    MetaModelState unserialize = Tools.unserialize(MetaModelState.class, ser);
    ModuleMetaModel mm = (ModuleMetaModel)unserialize.metaModel;
    List<MetaModelEvent> events = mm.getQueue().clear();
    assertEquals(1, events.size());
    assertEquals(MetaModelEvent.AFTER_ADD, events.get(0).getType());
    assertTrue(events.get(0).getObject() instanceof ApplicationMetaModel);
    Tools.serialize(unserialize, ser);

    //
    a.getMembers().add(decl);
    file.assertSave();
    helper.assertCompile();

    //
    mm = (ModuleMetaModel)Tools.unserialize(MetaModelState.class, ser).metaModel;
View Full Code Here


    mm.getQueue().clear();
    Tools.serialize(unserialize, ser);

    //
    JavaFile file = helper.assertJavaSource("metamodel.controller.A");
    ClassOrInterfaceDeclaration a = file.assertDeclaration();
    a.getMembers().clear();
    file.assertSave();

    //
    helper.assertCompile();
    mm = (ModuleMetaModel)Tools.unserialize(MetaModelState.class, ser).metaModel;
View Full Code Here

  public void testRemoveMethod() throws Exception {
    CompilerAssert<File, File> helper = incrementalCompiler("metamodel.controller");

    //
    JavaFile file = helper.assertJavaSource("metamodel.controller.A");
    ClassOrInterfaceDeclaration a = file.assertDeclaration();
    MethodDeclaration show = new MethodDeclaration(Modifier.PUBLIC, ASTHelper.VOID_TYPE, "show");
    show.setAnnotations(Collections.<AnnotationExpr>singletonList(new NormalAnnotationExpr(ASTHelper.createNameExpr(View.class.getName()), Collections.<MemberValuePair>emptyList())));
    show.setBody(new BlockStmt());
    a.getMembers().add(show);
    file.assertSave();
    helper.assertCompile();

    //
    File ser = helper.getSourceOutput().getPath("juzu", "metamodel.ser");
    MetaModelState unserialize = Tools.unserialize(MetaModelState.class, ser);
    ModuleMetaModel mm = (ModuleMetaModel)unserialize.metaModel;
    mm.getQueue().clear();
    Tools.serialize(unserialize, ser);

    //
    assertTrue(a.getMembers().remove(show));
    file.assertSave();
    helper.assertCompile();
    mm = (ModuleMetaModel)Tools.unserialize(MetaModelState.class, ser).metaModel;

    //
View Full Code Here

  @Test
  public void testRemoveOverloadedMethod() throws Exception {
    CompilerAssert<File, File> helper = incrementalCompiler("metamodel.controller");
    JavaFile file = helper.assertJavaSource("metamodel.controller.A");
    ClassOrInterfaceDeclaration a = file.assertDeclaration();
    MethodDeclaration index = new MethodDeclaration(Modifier.PUBLIC, ASTHelper.VOID_TYPE, "index");
    ASTHelper.addParameter(index, ASTHelper.createParameter(new ClassOrInterfaceType(String.class.getName()), "s"));
    index.setAnnotations(Collections.<AnnotationExpr>singletonList(new NormalAnnotationExpr(ASTHelper.createNameExpr(View.class.getName()), Collections.<MemberValuePair>emptyList())));
    index.setBody(new BlockStmt());
    a.getMembers().add(index);
    file.assertSave();
    helper.assertCompile();

    //
    File ser = helper.getSourceOutput().getPath("juzu", "metamodel.ser");
    MetaModelState unserialize = Tools.unserialize(MetaModelState.class, ser);
    ModuleMetaModel mm = (ModuleMetaModel)unserialize.metaModel;
    mm.getQueue().clear();
    Tools.serialize(unserialize, ser);

    //
    assertTrue(a.getMembers().remove(index));
    file.assertSave();

    //
    helper.assertCompile();
    mm = (ModuleMetaModel)Tools.unserialize(MetaModelState.class, ser).metaModel;
View Full Code Here

    CompilerAssert<File, File> helper = incrementalCompiler("metamodel.controller").formalErrorReporting();
    helper.assertCompile();

    //
    JavaFile file = helper.assertJavaSource("metamodel.controller.A");
    ClassOrInterfaceDeclaration a = file.assertDeclaration();
    a.setModifiers(a.getModifiers() | Modifier.ABSTRACT);
    file.assertSave();
    List<CompilationError> errors = helper.failCompile();
    CompilationError error = errors.get(0);
    assertEquals(ControllerMetaModel.CONTROLLER_IS_ABSTRACT, error.getCode());
    assertTrue("Was expecting " + error.getSource() + " to end with A.java", error.getSource().endsWith("A.java"));
View Full Code Here

    CompilerAssert<File, File> helper = compiler("metamodel.template");
    helper.assertCompile();

    //
    JavaFile file = helper.assertJavaSource("metamodel.template.A");
    ClassOrInterfaceDeclaration a = file.assertDeclaration();
    FieldDeclaration decl = (FieldDeclaration)a.getMembers().get(0);
    decl.getAnnotations().clear();
    file.assertSave();

    //
    File ser = helper.getSourceOutput().getPath("juzu", "metamodel.ser");
View Full Code Here

            return casted.getType();
        } else if (node instanceof FieldDeclaration) {
            FieldDeclaration casted = (FieldDeclaration) node;
            return casted.getType();
        } else if (node instanceof ClassOrInterfaceDeclaration) {
            ClassOrInterfaceDeclaration casted = (ClassOrInterfaceDeclaration) node;
            return casted.getNameExpr();
        else {
            return node;
        }
    }
View Full Code Here

    List<ClassOrInterfaceType> extendsList = visit(_n.getExtends(), _arg);
    List<ClassOrInterfaceType> implementsList = visit(_n.getImplements(), _arg);
    List<BodyDeclaration> members = visit(_n.getMembers(), _arg);
    Comment comment = cloneNodes(_n.getComment(), _arg);

    ClassOrInterfaceDeclaration r = new ClassOrInterfaceDeclaration(
        _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(),
        _n.getModifiers(), annotations, _n.isInterface(), _n.getName(), typeParameters, extendsList, implementsList, members
    );
    r.setComment(comment);
    return r;
  }
View Full Code Here

    return Boolean.TRUE;
  }

  @Override public Boolean visit(final ClassOrInterfaceDeclaration n1, final Node arg) {
    final ClassOrInterfaceDeclaration n2 = (ClassOrInterfaceDeclaration) arg;

    // javadoc are checked at CompilationUnit

    if (n1.getModifiers() != n2.getModifiers()) {
      return Boolean.FALSE;
    }

    if (n1.isInterface() != n2.isInterface()) {
      return Boolean.FALSE;
    }

    if (!objEquals(n1.getName(), n2.getName())) {
      return Boolean.FALSE;
    }

    if (!nodesEquals(n1.getAnnotations(), n2.getAnnotations())) {
      return Boolean.FALSE;
    }

    if (!nodesEquals(n1.getTypeParameters(), n2.getTypeParameters())) {
      return Boolean.FALSE;
    }

    if (!nodesEquals(n1.getExtends(), n2.getExtends())) {
      return Boolean.FALSE;
    }

    if (!nodesEquals(n1.getImplements(), n2.getImplements())) {
      return Boolean.FALSE;
    }

    if (!nodesEquals(n1.getMembers(), n2.getMembers())) {
      return Boolean.FALSE;
    }

    return Boolean.TRUE;
  }
View Full Code Here

TOP

Related Classes of japa.parser.ast.body.ClassOrInterfaceDeclaration

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.