| /* |
| * Copyright 2008 Google Inc. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); you may not |
| * use this file except in compliance with the License. You may obtain a copy of |
| * the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| * License for the specific language governing permissions and limitations under |
| * the License. |
| */ |
| package com.google.gwt.user.rebind; |
| |
| import com.google.gwt.core.ext.TreeLogger; |
| import com.google.gwt.core.ext.UnableToCompleteException; |
| import com.google.gwt.core.ext.typeinfo.JMethod; |
| import com.google.gwt.i18n.rebind.AbstractResource.ResourceList; |
| import com.google.gwt.i18n.shared.GwtLocale; |
| |
| /** |
| * Creates method factories depending upon the method type. Includes the core |
| * concrete implementations as package-protected classes to avoid cluttering up |
| * the package space. |
| */ |
| public abstract class AbstractMethodCreator extends AbstractSourceCreator { |
| |
| /** |
| * AbstractGeneratorClassCreator associated with the method currently in |
| * process. |
| */ |
| protected AbstractGeneratorClassCreator currentCreator; |
| |
| /** |
| * Constructor for <code>AbstractMethodCreator</code>. |
| * |
| * @param classCreator |
| */ |
| public AbstractMethodCreator(AbstractGeneratorClassCreator classCreator) { |
| this.currentCreator = classCreator; |
| } |
| |
| /** |
| * Generate the method body for the target method. |
| * |
| * @param logger TreeLogger for logging |
| * @param targetMethod Method |
| * @param resourceList base resource to use for lookup |
| * @throws UnableToCompleteException |
| */ |
| public abstract void createMethodFor(TreeLogger logger, JMethod targetMethod, |
| String key, ResourceList resourceList, GwtLocale locale) |
| throws UnableToCompleteException; |
| |
| /** |
| * Prints to the current <code>AbstractGeneratorClassCreator</code>. |
| * |
| * @param printMe <code>Object</code> to print |
| */ |
| public void println(Object printMe) { |
| currentCreator.getWriter().println(printMe.toString()); |
| } |
| |
| /** |
| * Indent subsequent lines. |
| */ |
| protected void indent() { |
| currentCreator.getWriter().indent(); |
| } |
| |
| /** |
| * Outdent subsequent lines. |
| */ |
| protected void outdent() { |
| currentCreator.getWriter().outdent(); |
| } |
| |
| /** |
| * Prints to the current <code>AbstractGeneratorClassCreator</code>. |
| * |
| * @param printMe |
| */ |
| protected void print(String printMe) { |
| currentCreator.getWriter().print(printMe); |
| } |
| } |