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 mark certain Java packages as being inaccessible to 25 * outside code despite possibly containing public classes. 26 * <p> 27 * A default implementation is registered by the 28 * <code>org.netbeans.modules.java.project</code> module which looks up the 29 * project corresponding to the file (if any) and checks whether that 30 * project has an implementation of this interface in its lookup. If so, it 31 * delegates to that implementation. Therefore it is not generally necessary 32 * for a project type provider to register its own global implementation of 33 * this query, if it depends on the Java Project module and uses this style. 34 * </p> 35 * @see org.netbeans.api.java.queries.AccessibilityQuery 36 * @see org.netbeans.api.queries.FileOwnerQuery 37 * @see org.netbeans.api.project.Project#getLookup 38 * @author Jesse Glick 39 * @since org.netbeans.api.java/1 1.4 40 */ 41 public interface AccessibilityQueryImplementation { 42 43 /** 44 * Checks whether a given Java package (folder of source files) 45 * is intended to be publicly accessed by code residing in other 46 * compilation units. 47 * @param pkg a Java source package 48 * @return true if it is definitely intended for public access, false if it 49 * is definitely not, or null if nothing is known about it 50 */ 51 public Boolean isPubliclyAccessible(FileObject pkg); 52 53 } 54