1 16 package com.google.gwt.i18n.rebind; 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.JClassType; 21 import com.google.gwt.core.ext.typeinfo.JMethod; 22 import com.google.gwt.core.ext.typeinfo.NotFoundException; 23 import com.google.gwt.core.ext.typeinfo.TypeOracle; 24 import com.google.gwt.i18n.rebind.util.AbstractResource; 25 import com.google.gwt.user.rebind.SourceWriter; 26 27 31 class MessagesImplCreator extends AbstractLocalizableImplCreator { 32 42 public MessagesImplCreator(TreeLogger logger, SourceWriter writer, 43 JClassType localizableClass, AbstractResource messageBindings, 44 TypeOracle oracle) throws UnableToCompleteException { 45 super(writer, localizableClass, messageBindings); 46 try { 47 JClassType stringClass = oracle.getType(String .class.getName()); 48 register(stringClass, new MessagesMethodCreator(this)); 49 } catch (NotFoundException e) { 50 throw error(logger, e); 52 } 53 } 54 55 62 private void checkMessagesMethod(TreeLogger logger, JMethod method) 63 throws UnableToCompleteException { 64 if (!method.getReturnType().getQualifiedSourceName().equals( 65 "java.lang.String")) { 66 throw error( 67 logger, 68 "All methods in interfaces extending Messages must have a return type of String."); 69 } 70 } 71 72 79 protected void emitMethodBody(TreeLogger logger, JMethod m) 80 throws UnableToCompleteException { 81 checkMessagesMethod(logger, m); 82 delegateToCreator(logger, m); 83 } 84 } 85 | Popular Tags |