/* * 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.core.ext.soyc.impl; import com.google.gwt.core.ext.soyc.ClassMember; import com.google.gwt.core.ext.soyc.MethodMember; import com.google.gwt.dev.jjs.ast.JMethod; import com.google.gwt.dev.jjs.ast.JType; /** * An implementation of MethodMember. */ public class StandardMethodMember extends AbstractMemberWithDependencies implements MethodMember { private final ClassMember enclosing; private final String sourceName; /** * Constructed by {@link MemberFactory#get(JMethod)}. */ public StandardMethodMember(MemberFactory factory, JMethod method) { this.enclosing = factory.get(method.getEnclosingType()); StringBuilder sb = new StringBuilder(); sb.append(method.getEnclosingType().getName()).append("::"); sb.append(method.getName()).append("("); for (JType type : method.getOriginalParamTypes()) { sb.append(type.getJsniSignatureName()); } sb.append(")"); sb.append(method.getOriginalReturnType().getJsniSignatureName()); this.sourceName = sb.toString(); } public ClassMember getEnclosing() { return enclosing; } @Override public String getSourceName() { return sourceName; } /** * For debugging use only. */ @Override public String toString() { return "MethodMember " + sourceName; } }