1 /* 2 * The contents of this file are subject to the terms of the Common Development 3 * and Distribution License (the License). You may not use this file except in 4 * compliance with the License. 5 * 6 * You can obtain a copy of the License at http://www.netbeans.org/cddl.html 7 * or http://www.netbeans.org/cddl.txt. 8 * 9 * When distributing Covered Code, include this CDDL Header Notice in each file 10 * and include the License file at http://www.netbeans.org/cddl.txt. 11 * If applicable, add the following below the CDDL Header, with the fields 12 * enclosed by brackets [] replaced by your own identifying information: 13 * "Portions Copyrighted [year] [name of copyright owner]" 14 * 15 * The Original Software is NetBeans. The Initial Developer of the Original 16 * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun 17 * Microsystems, Inc. All Rights Reserved. 18 */ 19 package org.netbeans.spi.java.queries; 20 21 import org.openide.filesystems.FileObject; 22 23 /** 24 * Permits providers to return specification source level of Java source file. 25 * <p> 26 * A default implementation is registered by the 27 * <code>org.netbeans.modules.java.project</code> module which looks up the 28 * project corresponding to the file (if any) and checks whether that 29 * project has an implementation of this interface in its lookup. If so, it 30 * delegates to that implementation. Therefore it is not generally necessary 31 * for a project type provider to register its own global implementation of 32 * this query, if it depends on the Java Project module and uses this style. 33 * </p> 34 * @see org.netbeans.api.java.queries.SourceLevelQuery 35 * @see org.netbeans.api.queries.FileOwnerQuery 36 * @see org.netbeans.api.project.Project#getLookup 37 * @see org.netbeans.api.java.classpath.ClassPath#BOOT 38 * @author David Konecny 39 * @since org.netbeans.api.java/1 1.5 40 */ 41 public interface SourceLevelQueryImplementation { 42 43 /** 44 * Returns source level of the given Java file. For acceptable return values 45 * see the documentation of <code>-source</code> command line switch of 46 * <code>javac</code> compiler . 47 * @param javaFile Java source file in question 48 * @return source level of the Java file, e.g. "1.3", "1.4" or "1.5", or 49 * null if it is not known 50 */ 51 public String getSourceLevel(FileObject javaFile); 52 53 } 54