1 19 20 package org.netbeans.modules.java.freeform; 21 22 import org.netbeans.api.java.classpath.ClassPath; 23 import org.netbeans.spi.java.classpath.ClassPathProvider; 24 import org.netbeans.spi.project.LookupMerger; 25 import org.openide.filesystems.FileObject; 26 import org.openide.util.Lookup; 27 28 33 public class LookupMergerImpl implements LookupMerger<ClassPathProvider> { 34 35 public LookupMergerImpl() {} 36 37 public Class <ClassPathProvider> getMergeableClass() { 38 return ClassPathProvider.class; 39 } 40 41 public ClassPathProvider merge(Lookup lookup) { 42 return new ClassPathProviderImpl(lookup); 43 } 44 45 private static class ClassPathProviderImpl implements ClassPathProvider { 46 47 private Lookup lkp; 48 49 public ClassPathProviderImpl(Lookup lkp) { 50 this.lkp = lkp; 51 } 52 53 public ClassPath findClassPath(FileObject file, String type) { 54 for (ClassPathProvider cpp : lkp.lookupAll(ClassPathProvider.class)) { 55 ClassPath cp = cpp.findClassPath(file, type); 56 if (cp != null) { 57 return cp; 58 } 59 } 60 return null; 61 } 62 63 } 64 65 } 66 | Popular Tags |