1 16 package com.google.gwt.dev.shell; 17 18 import com.google.gwt.core.ext.TreeLogger; 19 import com.google.gwt.core.ext.UnableToCompleteException; 20 import com.google.gwt.core.ext.typeinfo.CompilationUnitProvider; 21 import com.google.gwt.core.ext.typeinfo.TypeOracle; 22 import com.google.gwt.dev.jdt.StandardSourceOracle; 23 import com.google.gwt.dev.jdt.StaticCompilationUnitProvider; 24 import com.google.gwt.util.tools.Utility; 25 26 import java.io.IOException ; 27 28 32 public class HostedModeSourceOracle extends StandardSourceOracle { 33 34 private final JsniInjector injector; 35 36 public HostedModeSourceOracle(TypeOracle typeOracle) { 37 super(typeOracle); 38 this.injector = new JsniInjector(typeOracle); 39 } 40 41 protected CompilationUnitProvider doFilterCompilationUnit(TreeLogger logger, 42 String typeName, CompilationUnitProvider existing) 43 throws UnableToCompleteException { 44 45 50 if (typeName.equals("com.google.gwt.core.client.GWT")) { 51 try { 52 String source = Utility.getFileFromClassPath("com/google/gwt/core/client/GWT.java-hosted"); 53 return new StaticCompilationUnitProvider("com.google.gwt.core.client", 54 "GWT", source.toCharArray()); 55 } catch (IOException e) { 56 logger.log( 57 TreeLogger.ERROR, 58 "Unable to load 'com/google/gwt/core/client/GWT.java-hosted' from class path; is your installation corrupt?", 59 e); 60 throw new UnableToCompleteException(); 61 } 62 } 63 64 CompilationUnitProvider jsnified = injector.inject(logger, existing); 68 return jsnified; 69 } 70 } 71 | Popular Tags |