/** * Compute the mapping of original class names to obfuscated type names for a * given subtype of CssResource. Mappings are inherited from the type's * supertypes. */ private Map<JMethod, String> computeReplacementsForType(JClassType type) { Map<JMethod, String> toReturn = new IdentityHashMap<JMethod, String>(); if (replacementsByClassAndMethod.containsKey(type)) { toReturn.putAll(replacementsByClassAndMethod.get(type)); } /* * Replacements for methods defined in shared types will override any * locally-computed values. */ for (JMethod method : type.getOverridableMethods()) { if (replacementsForSharedMethods.containsKey(method)) { assert toReturn.containsKey(method); toReturn.put(method, replacementsForSharedMethods.get(method)); } } return toReturn; }
new MinimalSubstitutionMap(), obfuscationPrefix + resourcePrefix + "-"); for (JMethod method : cssResource.getOverridableMethods()) { if (method == getNameMethod || method == getTextMethod || method == ensuredInjectedMethod) { continue;
replacementsByClassAndMethod.put(type, replacements); for (JMethod method : type.getOverridableMethods()) { String name = method.getName(); if (ignoredMethods.contains(name)) {
private Map<JMethod, String> writeMethods(TreeLogger logger, ResourceContext context, JMethod method, SourceWriter sw, ConstantDefinitions constantDefinitions, Map<String, String> originalConstantNameMapping, Map<String, String> substitutionMap) throws UnableToCompleteException { JClassType gssResource = method.getReturnType().isInterface(); boolean success = true; Map<JMethod, String> methodToClassName = new LinkedHashMap<>(); for (JMethod toImplement : gssResource.getOverridableMethods()) { if (toImplement == getTextMethod) { writeGetText(logger, context, method, sw); } else if (toImplement == ensuredInjectedMethod) { writeEnsureInjected(sw); } else if (toImplement == getNameMethod) { writeGetName(method, sw); } else { success &= writeUserMethod(logger, toImplement, sw, constantDefinitions, originalConstantNameMapping, substitutionMap, methodToClassName); } } if (!success) { throw new UnableToCompleteException(); } return methodToClassName; }
protected String getResourceImplAsString(TreeLogger logger, ResourceContext context, JMethod method, Map<JMethod, String> actualReplacements, JClassType cssResourceSubtype, CssStylesheet stylesheet) throws UnableToCompleteException { SourceWriter sw = new StringSourceWriter(); // Write the expression to create the subtype. sw.println("new " + method.getReturnType().getQualifiedSourceName() + "() {"); sw.indent(); // Methods defined by CssResource interface writeEnsureInjected(sw); writeGetName(method, sw); // Create the Java expression that generates the CSS writeGetText(logger, context, method, sw); // getOverridableMethods is used to handle CssResources extending // non-CssResource types. See the discussion in computeReplacementsForType. writeUserMethods(logger, sw, stylesheet, cssResourceSubtype.getOverridableMethods(), actualReplacements); sw.outdent(); sw.println("}"); return sw.toString(); }
public static Collection<JMethod> listMethod(JClassType type, Class<? extends Annotation> annotationClass) { Collection<JMethod> methodAnnoted = Lists.newArrayList(); JMethod[] methods = type.getOverridableMethods(); for (JMethod method : methods) { Annotation annotation = method.getAnnotation(annotationClass); if (annotation != null) { methodAnnoted.add(method); } } return methodAnnoted; }
public static Collection<JMethod> listMethod(JClassType type, Class<? extends Annotation> annotationClass) { Collection<JMethod> methodAnnoted = Lists.newArrayList(); JMethod[] methods = type.getOverridableMethods(); for (JMethod method : methods) { Annotation annotation = method.getAnnotation(annotationClass); if (annotation != null) { methodAnnoted.add(method); } } return methodAnnoted; }
public void loadMethods() throws UnableToCompleteException { for (JMethod method : providerType.getOverridableMethods()) { if(!validateMethodDef(method)){ continue; } StorageKeyProviderMethod keyMethod = buildKeyMethod(method); methods.add(keyMethod); } }
private void collectImports() { Collection<JType> toImports = Sets.newHashSet(); for (JMethod method : this.serviceType.getOverridableMethods()) { toImports.add(method.getReturnType()); for (JParameter parameter : method.getParameters()) { toImports.add(parameter.getType()); } } this.imports.addAll(toImports); for (JType importType : this.imports) { if (importType instanceof JParameterizedType) { JParameterizedType parameterizedType = (JParameterizedType) importType; for (JType paramType : parameterizedType.getTypeArgs()) { toImports.add(paramType); } } } this.imports.addAll(toImports); }
private void collectImports() { Collection<JType> toImports = Sets.newHashSet(); for (JMethod method : this.serviceType.getOverridableMethods()) { toImports.add(method.getReturnType()); for (JParameter parameter : method.getParameters()) { toImports.add(parameter.getType()); } } this.imports.addAll(toImports); for (JType importType : this.imports) { if (importType instanceof JParameterizedType) { JParameterizedType parameterizedType = (JParameterizedType) importType; for (JType paramType : parameterizedType.getTypeArgs()) { toImports.add(paramType); } } } this.imports.addAll(toImports); }
private void collectImports() { Collection<JType> toImports = Sets.newHashSet(); for (JMethod method : this.serviceType.getOverridableMethods()) { toImports.add(method.getReturnType()); for (JParameter parameter : method.getParameters()) { toImports.add(parameter.getType()); } } this.imports.addAll(toImports); for (JType importType : this.imports) { if (importType instanceof JParameterizedType) { JParameterizedType parameterizedType = (JParameterizedType) importType; for (JType paramType : parameterizedType.getTypeArgs()) { toImports.add(paramType); } } } this.imports.addAll(toImports); }
boolean checkIfParentEventReturnsString(EventElement e) { if (parentEventBus != null) { try { String eventType = e.getType(); JClassType string = oracle.getType(String.class.getName()); for (JMethod m : parentEventBus.getOverridableMethods()) { if (eventType.equals(m.getName())) { return m.getReturnType() .equals(string); } } } catch (NotFoundException e1) { // nothing to do } } return false; }
private void validateType() throws UnableToCompleteException { // check for duplicate method names Set<String> methodNames = new HashSet<String>(); for (JMethod method : type.getOverridableMethods()) { if (methodNames.contains(method.getName())) { logger.log(TreeLogger.ERROR, "Class " + type + " must not contain multiple methods of the same name. [" + method.getName() + "]"); throw new UnableToCompleteException(); } methodNames.add(method.getName()); } }
String getRunAsync(JClassType originalType) { JMethod[] methods = originalType.getOverridableMethods(); for (JMethod method : methods) { if ("load".equals(method.getName())) { return method.getParameters()[0].getType() .getQualifiedSourceName(); } } return null; }
String getRunAsync(JClassType originalType) { JMethod[] methods = originalType.getOverridableMethods(); for (JMethod method : methods) { if ("load".equals(method.getName())) { return method.getParameters()[0].getType() .getQualifiedSourceName(); } } return null; }
@Override public String generate(TreeLogger logger, GeneratorContext context, String typeName) throws UnableToCompleteException { this.logger = logger; this.context = context; TypeOracle typeOracle = context.getTypeOracle(); // Get metadata describing the user's class. JClassType userType = getValidUserType(logger, typeName, typeOracle); // Write the new class. JMethod[] imgMethods = userType.getOverridableMethods(); String resultName = generateImplClass(logger, context, userType, imgMethods); // Return the complete name of the generated class. return resultName; }
@Override public String generate(TreeLogger logger, GeneratorContext context, String typeName) throws UnableToCompleteException { this.logger = logger; this.context = context; TypeOracle typeOracle = context.getTypeOracle(); // Get metadata describing the user's class. JClassType userType = getValidUserType(logger, typeName, typeOracle); // Write the new class. JMethod[] imgMethods = userType.getOverridableMethods(); String resultName = generateImplClass(logger, context, userType, imgMethods); // Return the complete name of the generated class. return resultName; }
private void generateServiceImplementation(TreeLogger logger, SourceWriter srcWriter) { Set<String> addedMethods = Sets.newHashSet(); for (JMethod method : this.serviceType.getOverridableMethods()) { if (!addedMethods.contains(method.getName())) { addedMethods.add(method.getName()); this.writeStartMethod(srcWriter, method); this.writeMethodCallback(srcWriter, method, this.listCallbackMethods(logger, method), null); this.writeMethodCall(srcWriter, method, null); this.writeEndMethod(srcWriter, method); } } }
private void generateServiceImplementation(TreeLogger logger, SourceWriter srcWriter) throws UnableToCompleteException { Set<String> addedMethods = Sets.newHashSet(); for (JMethod method : this.serviceType.getOverridableMethods()) { if (!addedMethods.contains(method.getName())) { addedMethods.add(method.getName()); this.writeStartMethod(srcWriter, method); this.writeCommandDefinition(logger, srcWriter, method, null); this.writeCommandParam(srcWriter, method, this.listCallbackMethods(logger, method), null); this.writeEndMethod(srcWriter, method); } } }
private void generateServiceImplementation(TreeLogger logger, SourceWriter srcWriter) throws UnableToCompleteException { Set<String> addedMethods = Sets.newHashSet(); for (JMethod method : this.serviceType.getOverridableMethods()) { if (!addedMethods.contains(method.getName())) { addedMethods.add(method.getName()); this.writeStartMethod(srcWriter, method); this.writeCommandDefinition(logger, srcWriter, method, null); this.writeCommandParam(srcWriter, method, this.listCallbackMethods(logger, method), null); this.writeEndMethod(srcWriter, method); } } }