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 20 package org.netbeans.spi.editor.mimelookup; 21 22 import org.netbeans.api.editor.mimelookup.MimePath; 23 import org.openide.util.Lookup; 24 25 /** 26 * Provides a <code>Lookup</code> for the specific <code>MimePath</code>. 27 * 28 * <p>The implementations of this interface should be registered among the services 29 * in the default lookup, for details look at 30 * <a HREF="http://openide.netbeans.org/lookup/index.html"> META-INF/services registration</a>. 31 * 32 * @author Miloslav Metelka, Vita Stejskal 33 */ 34 public interface MimeDataProvider { 35 36 /** 37 * Retrieves a <code>Lookup</code> for the given <code>MimePath</code>. 38 * 39 * <p>The <code>Lookup</code> returned by this method should hold a reference 40 * to the <code>MimePath</code> it was created for. 41 * 42 * <p>The implementors should consider caching of the <code>Lookup</code> instances 43 * returned by this method for performance reasons. The <code>MimePath</code> 44 * object can be used as a stable key for such a cache, because it implements 45 * its <code>equals</code> and <code>hashCode</code> method in the suitable way. 46 * 47 * @param mimePath The mime path to get the <code>Lookup</code> for. The mime 48 * path passed in can't be <code>null</code>, but it can be the 49 * {@link MimePath#EMPTY} mime path. 50 * 51 * @return The <code>Lookup</code> for the given <code>MimePath</code> or 52 * <code>null</code> if there is no lookup available for this mime path. 53 */ 54 public Lookup getLookup(MimePath mimePath); 55 56 } 57