1 package net.sourceforge.jenesis4java; 2 3 /* 4 * #%L 5 * Jenesis 4 Java Code Generator 6 * %% 7 * Copyright (C) 2000 - 2015 jenesis4java 8 * %% 9 * This program is free software: you can redistribute it and/or modify 10 * it under the terms of the GNU Lesser General Public License as 11 * published by the Free Software Foundation, either version 3 of the 12 * License, or (at your option) any later version. 13 * 14 * This program is distributed in the hope that it will be useful, 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 * GNU General Lesser Public License for more details. 18 * 19 * You should have received a copy of the GNU General Lesser Public 20 * License along with this program. If not, see 21 * <http://www.gnu.org/licenses/lgpl-3.0.html>. 22 * #L% 23 */ 24 25 import java.util.Comparator; 26 import java.util.List; 27 28 /** 29 * Copyright (C) 2008, 2010 Richard van Nieuwenhoven - ritchie [at] gmx [dot] at 30 * Copyright (C) 2000, 2001 Paul Cody Johnston - pcj@inxar.org <br> 31 * This file is part of Jenesis4java. Jenesis4java is free software: you can 32 * redistribute it and/or modify it under the terms of the GNU Lesser General 33 * Public License as published by the Free Software Foundation, either version 3 34 * of the License, or (at your option) any later version.<br> 35 * Jenesis4java is distributed in the hope that it will be useful, but WITHOUT 36 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 37 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 38 * details.<br> 39 * You should have received a copy of the GNU Lesser General Public License 40 * along with Jenesis4java. If not, see <http://www.gnu.org/licenses/>. 41 */ 42 /** 43 * {@code Declaration} subinterface for type declaration including class and 44 * interface declarations. 45 */ 46 public interface TypeDeclaration extends Member { 47 48 /** 49 * @return the class as a {@code Type} 50 */ 51 ClassType asClassType(); 52 53 /** 54 * @return the list of member declarations as an list of {@code Member} . 55 */ 56 List<Member> getMembers(); 57 58 /** 59 * @return the enclosing compilation unit. 60 */ 61 CompilationUnit getUnit(); 62 63 /** 64 * remove a member from the members and return true if the element was in 65 * the list. 66 */ 67 boolean removeMember(Member member); 68 69 /** 70 * Creates a new method with return type void and the given name. 71 */ 72 Method newMethod(String name); 73 74 /** 75 * Creates a new method with the given type and name. 76 */ 77 Method newMethod(Type type, String name); 78 79 void setComparator(Comparator comparator); 80 81 }