1 /******************************************************************************* 2 * Copyright (c) 2000, 2006 IBM Corporation and others. 3 * All rights reserved. This program and the accompanying materials 4 * are made available under the terms of the Eclipse Public License v1.0 5 * which accompanies this distribution, and is available at 6 * http://www.eclipse.org/legal/epl-v10.html 7 * 8 * Contributors: 9 * IBM Corporation - initial API and implementation 10 *******************************************************************************/ 11 package org.eclipse.jdt.internal.compiler.env; 12 13 /** 14 * This interface denotes a compilation unit, providing its name and content. 15 */ 16 public interface ICompilationUnit extends IDependent { 17 /** 18 * Answer the contents of the compilation unit. 19 * 20 * In normal use, the contents are requested twice. 21 * Once during the initial lite parsing step, then again for the 22 * more detailed parsing step. 23 * Implementors must never return null - return an empty char[] instead, 24 * CharOperation.NO_CHAR being the candidate of choice. 25 */ 26 char[] getContents(); 27 /** 28 * Answer the name of the top level public type. 29 * For example, {Hashtable}. 30 */ 31 char[] getMainTypeName(); 32 /** 33 * Answer the name of the package according to the directory structure 34 * or null if package consistency checks should be ignored. 35 * For example, {java, lang}. 36 */ 37 char[][] getPackageName(); 38 } 39