1 19 package org.netbeans.modules.j2ee.ejbjarproject; 20 21 import java.beans.PropertyChangeEvent ; 22 import java.beans.PropertyChangeListener ; 23 import org.netbeans.modules.j2ee.ejbjarproject.ui.customizer.EjbJarProjectProperties; 24 import org.openide.filesystems.FileObject; 25 import org.netbeans.api.queries.FileBuiltQuery; 26 import org.netbeans.spi.queries.FileBuiltQueryImplementation; 27 import org.netbeans.spi.project.support.ant.AntProjectHelper; 28 import org.netbeans.spi.project.support.ant.PropertyEvaluator; 29 30 31 32 33 34 public class EjbJarFileBuiltQuery implements FileBuiltQueryImplementation, PropertyChangeListener { 35 36 private FileBuiltQueryImplementation delegate; 37 private final AntProjectHelper helper; 38 private final PropertyEvaluator evaluator; 39 private final SourceRoots sourceRoots; 40 private final SourceRoots testRoots; 41 42 EjbJarFileBuiltQuery (AntProjectHelper helper, PropertyEvaluator evaluator, 43 SourceRoots sourceRoots, SourceRoots testRoots) { 44 this.helper = helper; 45 this.evaluator = evaluator; 46 this.sourceRoots = sourceRoots; 47 this.testRoots = testRoots; 48 } 49 50 public synchronized FileBuiltQuery.Status getStatus(FileObject file) { 51 if (this.delegate == null) { 52 this.delegate = createDelegate (); 53 } 54 return this.delegate.getStatus (file); 55 } 56 57 58 private FileBuiltQueryImplementation createDelegate () { 59 String [] srcRoots = this.sourceRoots.getRootProperties(); 60 String [] tstRoots = this.testRoots.getRootProperties(); 61 String [] from = new String [srcRoots.length + tstRoots.length]; 62 String [] to = new String [srcRoots.length + tstRoots.length]; 63 for (int i=0; i< srcRoots.length; i++) { 64 from[i] = "${" + srcRoots[i] + "}/*.java"; to[i] = "${" + EjbJarProjectProperties.BUILD_CLASSES_DIR + "}/*.class"; } 67 for (int i=0; i<tstRoots.length; i++) { 68 from[srcRoots.length+i] = "${" + tstRoots[i] + "}/*.java"; to[srcRoots.length+i] = "${" + EjbJarProjectProperties.BUILD_TEST_CLASSES_DIR + "}/*.class"; } 71 return helper.createGlobFileBuiltQuery(evaluator, from, to); } 73 74 public void propertyChange(PropertyChangeEvent evt) { 75 if (SourceRoots.PROP_ROOT_PROPERTIES.equals (evt.getPropertyName())) { 76 synchronized(this) { 77 this.delegate = null; 78 } 80 } 81 } 82 } 83 | Popular Tags |