|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- /********************************************************************
- * Copyright (c) 2006 Contributors. All rights reserved.
- * This program and the accompanying materials are made available
- * under the terms of the Eclipse Public License v 2.0
- * which accompanies this distribution and is available at
- * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt
- *
- * Contributors: IBM Corporation - initial API and implementation
- * Helen Hawkins - initital version
- * Matthew Webster - moved tests
- *******************************************************************/
- package org.aspectj.tools.ajc;
-
- import java.util.List;
-
- import org.aspectj.org.eclipse.jdt.core.dom.AST;
- import org.aspectj.org.eclipse.jdt.core.dom.AbstractTypePattern;
- import org.aspectj.org.eclipse.jdt.core.dom.AjAST;
- import org.aspectj.org.eclipse.jdt.core.dom.AjTypeDeclaration;
- import org.aspectj.org.eclipse.jdt.core.dom.AspectDeclaration;
- import org.aspectj.org.eclipse.jdt.core.dom.ChildListPropertyDescriptor;
- import org.aspectj.org.eclipse.jdt.core.dom.ChildPropertyDescriptor;
- import org.aspectj.org.eclipse.jdt.core.dom.DeclareParentsDeclaration;
- import org.aspectj.org.eclipse.jdt.core.dom.DefaultTypePattern;
- import org.aspectj.org.eclipse.jdt.core.dom.PerTypeWithin;
- import org.aspectj.org.eclipse.jdt.core.dom.SimplePropertyDescriptor;
-
- public class AjAST5Test extends AjASTTestCase {
-
- public void testInternalAspectDeclaration() {
- AjAST ajast = createAjAST();
- AspectDeclaration d = ajast.newAspectDeclaration();
- List props = AspectDeclaration.propertyDescriptors(AST.JLS3);
- for (Object o : props) {
- if (o instanceof ChildPropertyDescriptor) {
- ChildPropertyDescriptor element = (ChildPropertyDescriptor) o;
- if (element.getId().equals("perClause")) {
- assertNull("AspectDeclaration's " + element.getId() + " property" +
- "should be null since we haven't set it yet",
- d.getStructuralProperty(element));
- }
- } else if (o instanceof SimplePropertyDescriptor) {
- SimplePropertyDescriptor element = (SimplePropertyDescriptor) o;
- assertNotNull("AspectDeclaration's " + element.getId() + " property" +
- "should not be null since it is a boolean",
- d.getStructuralProperty(element));
- }
- }
- for (Object o : props) {
- if (o instanceof ChildPropertyDescriptor) {
- ChildPropertyDescriptor element = (ChildPropertyDescriptor) o;
- if (element.getId().equals("perClause")) {
- PerTypeWithin ptw = ajast.newPerTypeWithin();
- d.setStructuralProperty(element, ptw);
- assertEquals("AspectDeclaration's perClause property should" +
- " now be a perTypeWithin", ptw, d.getStructuralProperty(element));
- } else if (element.getId().equals("javadoc")) {
- // do nothing since makes no sense to have javadoc
- }
- } else if (o instanceof SimplePropertyDescriptor) {
- SimplePropertyDescriptor element = (SimplePropertyDescriptor) o;
- if (element.getId().equals("privileged")) {
- Boolean b = Boolean.TRUE;
- d.setStructuralProperty(element, b);
- assertEquals("AspectDeclaration's isPrivileged property should" +
- " now be a boolean", b, d.getStructuralProperty(element));
- }
- }
- }
- }
-
- public void testInternalAjTypeDeclaration() {
- AjAST ajast = createAjAST();
- AjTypeDeclaration d = ajast.newAjTypeDeclaration();
- List props = AjTypeDeclaration.propertyDescriptors(AST.JLS3);
- for (Object o : props) {
- if (o instanceof SimplePropertyDescriptor) {
- SimplePropertyDescriptor element = (SimplePropertyDescriptor) o;
- if (element.getId().equals("aspect")) {
- assertNotNull("AjTypeDeclaration's " + element.getId() + " property" +
- " should not be null since it is a boolean",
- d.getStructuralProperty(element));
- }
- }
- }
- for (Object o : props) {
- if (o instanceof SimplePropertyDescriptor) {
- SimplePropertyDescriptor element = (SimplePropertyDescriptor) o;
- if (element.getId().equals("aspect")) {
- Boolean b = Boolean.TRUE;
- d.setStructuralProperty(element, b);
- assertEquals("AjTypeDeclaration's aspect property should" +
- " now be a SignaturePattern", b, d.getStructuralProperty(element));
- }
- }
- }
- }
-
- public void testInternalDeclareParentsDeclaration() {
- AjAST ajast = createAjAST();
- DeclareParentsDeclaration d = ajast.newDeclareParentsDeclaration();
- List props = DeclareParentsDeclaration.propertyDescriptors(AST.JLS3);
- for (Object o : props) {
- if (o instanceof ChildPropertyDescriptor) {
- ChildPropertyDescriptor element = (ChildPropertyDescriptor) o;
- assertNull("DeclareParentsDeclaration's " + element.getId() + " property" +
- "should be null since we haven't set it yet",
- d.getStructuralProperty(element));
- } else if (o instanceof ChildListPropertyDescriptor) {
- ChildListPropertyDescriptor element = (ChildListPropertyDescriptor) o;
- assertNotNull("DeclareParentsDeclaration's " + element.getId() + " property" +
- "should not be null since it is a list",
- d.getStructuralProperty(element));
- assertEquals("should only be able to put TypePattern's into the list",
- AbstractTypePattern.class, element.getElementType());
- } else if (o instanceof SimplePropertyDescriptor) {
- SimplePropertyDescriptor element = (SimplePropertyDescriptor) o;
- assertNotNull("DeclareParentsDeclaration's " + element.getId() + " property" +
- "should not be null since it is a boolean",
- d.getStructuralProperty(element));
- } else {
- fail("unknown PropertyDescriptor associated with DeclareParentsDeclaration: " + o);
- }
- }
- for (Object o : props) {
- if (o instanceof ChildPropertyDescriptor) {
- ChildPropertyDescriptor element = (ChildPropertyDescriptor) o;
- if (element.getId().equals("childTypePattern")) {
- DefaultTypePattern dtp = ajast.newDefaultTypePattern();
- d.setStructuralProperty(element, dtp);
- assertEquals("DeclareParentsDeclaration's typePattern property should" +
- " now be a DefaultTypePattern", dtp, d.getStructuralProperty(element));
- } else if (element.getId().equals("javadoc")) {
- // do nothing since makes no sense to have javadoc
- } else {
- fail("unknown property for DeclareParentsDeclaration");
- }
- } else if (o instanceof SimplePropertyDescriptor) {
- SimplePropertyDescriptor element = (SimplePropertyDescriptor) o;
- if (element.getId().equals("isExtends")) {
- Boolean b = Boolean.TRUE;
- d.setStructuralProperty(element, b);
- assertEquals("DeclareParentsDeclaration's isExtends property should" +
- " now be a boolean", b, d.getStructuralProperty(element));
- }
- }
- }
- }
-
- }
|