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 /** 26 * Copyright (C) 2008, 2010 Richard van Nieuwenhoven - ritchie [at] gmx [dot] at 27 * Copyright (C) 2000, 2001 Paul Cody Johnston - pcj@inxar.org <br> 28 * This file is part of Jenesis4java. Jenesis4java is free software: you can 29 * redistribute it and/or modify it under the terms of the GNU Lesser General 30 * Public License as published by the Free Software Foundation, either version 3 31 * of the License, or (at your option) any later version.<br> 32 * Jenesis4java is distributed in the hope that it will be useful, but WITHOUT 33 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 34 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 35 * details.<br> 36 * You should have received a copy of the GNU Lesser General Public License 37 * along with Jenesis4java. If not, see <http://www.gnu.org/licenses/>. 38 */ 39 /** 40 * The {@code Type} superinterface. 41 */ 42 public interface Type extends Codeable { 43 44 /** 45 * Constant for the {@code void} type. 46 */ 47 int VOID = -1; 48 49 /** 50 * Constant for the {@code null} type. 51 */ 52 int NULL = 0; 53 54 /** 55 * Constant for the {@code boolean} type. 56 */ 57 int BOOLEAN = 1; 58 59 /** 60 * Constant for the {@code byte} type. 61 */ 62 int BYTE = 2; 63 64 /** 65 * Constant for the {@code short} type. 66 */ 67 int SHORT = 3; 68 69 /** 70 * Constant for the {@code int} type. 71 */ 72 int INT = 4; 73 74 /** 75 * Constant for the {@code long} type. 76 */ 77 int LONG = 5; 78 79 /** 80 * Constant for the {@code float} type. 81 */ 82 int FLOAT = 6; 83 84 /** 85 * Constant for the {@code double} type. 86 */ 87 int DOUBLE = 7; 88 89 /** 90 * Constant for the {@code char} type. 91 */ 92 int CHAR = 8; 93 94 /** 95 * Constant for the {@code class} type. 96 */ 97 int CLASS = 9; 98 99 /** 100 * Constant for the {@code array} type. 101 */ 102 int ARRAY = 10; 103 104 /** 105 * Returns {@code true} if this is an array, {@code false} otherwise. 106 */ 107 boolean isArray(); 108 109 /** 110 * Returns {@code true} if this is one of the primitive types, {@code false} 111 * otherwise. 112 */ 113 boolean isPrimitive(); 114 115 /** 116 * Returns the integer type as one of the constants in the type interface. 117 */ 118 int type(); 119 }