01: /*
02: * Spoon - http://spoon.gforge.inria.fr/
03: * Copyright (C) 2006 INRIA Futurs <renaud.pawlak@inria.fr>
04: *
05: * This software is governed by the CeCILL-C License under French law and
06: * abiding by the rules of distribution of free software. You can use, modify
07: * and/or redistribute the software under the terms of the CeCILL-C license as
08: * circulated by CEA, CNRS and INRIA at http://www.cecill.info.
09: *
10: * This program is distributed in the hope that it will be useful, but WITHOUT
11: * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12: * FITNESS FOR A PARTICULAR PURPOSE. See the CeCILL-C License for more details.
13: *
14: * The fact that you are presently reading this means that you have had
15: * knowledge of the CeCILL-C license and that you accept its terms.
16: */
17:
18: package spoon.reflect.declaration;
19:
20: import java.util.List;
21: import java.util.Set;
22:
23: import spoon.reflect.reference.CtTypeReference;
24:
25: /**
26: * This element represents a class declaration.
27: *
28: * @author Renaud Pawlak
29: */
30: public interface CtClass<T extends Object> extends CtType<T> {
31:
32: /**
33: * Gets the fields defined by this class.
34: */
35: List<CtField<?>> getFields();
36:
37: /**
38: * Returns the anonymous blocks of this class.
39: */
40: List<CtAnonymousExecutable> getAnonymousExecutables();
41:
42: /**
43: * Returns the constructor of the class that takes the given argument types.
44: */
45: CtConstructor<T> getConstructor(
46: CtTypeReference<?>... parameterTypes);
47:
48: /**
49: * Returns the constructors of this class. This includes the default
50: * constructor if this class has no constructors explicitly declared.
51: */
52: Set<CtConstructor<T>> getConstructors();
53:
54: /**
55: * Returns the class type directly extended by this class.
56: *
57: * @return the class type directly extended by this class, or null if there
58: * is none
59: */
60: CtTypeReference<?> getSuperclass();
61:
62: /**
63: * Sets the anonymous blocks of this class.
64: */
65: void setAnonymousExecutables(List<CtAnonymousExecutable> e);
66:
67: /**
68: * Sets the constructors for this class.
69: */
70: void setConstructors(Set<CtConstructor<T>> constructors);
71:
72: /**
73: * Sets the superclass type.
74: */
75: void setSuperclass(CtTypeReference<?> classType);
76:
77: }
|