/** * Returns the full name of this element, including package and outer messages for nested * elements. For a file, this will return the package name of the file. */ @Override public String getFullName() { // Don't need to care about root case as that overrides. if (Strings.isNullOrEmpty(parent.getFullName())) { return getSimpleName(); } return parent.getFullName() + "." + getSimpleName(); }
@Override public String getParentSimpleName() { return method.getParent().getSimpleName(); }
/** * Returns the full name of this element, including package and outer messages for nested * elements. For a file, this will return the package name of the file. */ @Override public String getFullName() { // Don't need to care about root case as that overrides. if (Strings.isNullOrEmpty(parent.getFullName())) { return getSimpleName(); } return parent.getFullName() + "." + getSimpleName(); }
@Override public String getParentSimpleName() { return protoField.getParent().getSimpleName(); }
private String getElemName(ProtoElement elem) { // Fast path if we have a top-level message if (elem.getParent() instanceof ProtoFile) { return elem.getSimpleName(); } // The number of components in the same with the layers of nesting. // Init the list to something a little more than sensible. List<String> nameComponents = new ArrayList<>(5); while (!(elem instanceof ProtoFile)) { nameComponents.add(elem.getSimpleName()); elem = elem.getParent(); } Collections.reverse(nameComponents); return Joiner.on("_").join(nameComponents); }
private static <E extends ProtoElement> E getElementWithName( Collection<E> elements, String name) { for (E e : elements) { if (e.getSimpleName().equals(name)) { return e; } } return null; } }
private List<String> getClassNamePath(ProtoElement elem) { List<String> path = new LinkedList<>(); for (ProtoElement elt = elem; elt.getParent() != null; elt = elt.getParent()) { path.add(0, elt.getSimpleName()); } return path; }
public String getLinkedElementName(ProtoElement element) { String simpleName = element.getSimpleName(); String packageName = element.getFile().getFullName(); return String.format("[%s]{@link %s.%s}", simpleName, packageName, simpleName); } }
/** Return the entity name, e.g. "shelf" for a resource field. */ String getResourceEntityName(Field field) { Resource resource = getResource(field); if (resource != null && !Strings.isNullOrEmpty(resource.getName())) { return resource.getName(); } return field.getParent().getSimpleName(); }
private static String getEnumTypeClassName(MethodContext context, TypeModel type) { checkArgument( type instanceof ProtoTypeRef, "%s: type %s is not a proto type", context.getMethodModel().getSimpleName(), type); checkArgument( ((ProtoTypeRef) type).isEnum(), "%s: type %s is not an enum type", context.getMethodModel().getSimpleName(), type); TypeRef protoType = ((ProtoTypeRef) type).getProtoType(); ProtoElement t = protoType.getEnumType(); List<String> names = new ArrayList<>(); while (!(t instanceof ProtoFile)) { names.add(t.getSimpleName()); t = t.getParent(); } names.add("enums"); StringBuilder builder = new StringBuilder(); for (String name : Lists.reverse(names)) { builder.append(name).append("."); } return builder.substring(0, builder.length() - 1); } }
/** Return the entity name, e.g. "shelf" for a resource set field. */ private String getResourceSetEntityName(Field field) { ResourceSet resourceSet = getResourceSet(field); if (resourceSet != null && !Strings.isNullOrEmpty(resourceSet.getName())) { return resourceSet.getName(); } return field.getParent().getSimpleName(); }
String fullName = String.format("%s_%s", parentFullName, elem.getSimpleName()); String nickName = fullName.substring(fullName.lastIndexOf("\\") + 1);
@Override public TypeName getTypeName(ProtoElement elem) { // Handle special wrapper types first String wrapper = WRAPPER_TYPE_MAP.getOrDefault(elem.getFullName(), null); if (wrapper != null) { return typeNameConverter.getTypeName(wrapper); } // Handle nested types, construct the required type prefix ProtoElement parentEl = elem.getParent(); String shortNamePrefix = ""; while (parentEl != null && parentEl instanceof MessageType) { shortNamePrefix = parentEl.getSimpleName() + "+Types+" + shortNamePrefix; parentEl = parentEl.getParent(); } String prefix = ""; if (parentEl instanceof ProtoFile) { ProtoFile protoFile = (ProtoFile) parentEl; String namespace = protoFile.getProto().getOptions().getCsharpNamespace(); if (Strings.isNullOrEmpty(namespace)) { for (String name : Splitter.on('.').split(parentEl.getFullName())) { prefix += Name.from(name).toUpperCamelAndDigits() + "."; } } else { prefix = namespace + "."; } } String shortName = shortNamePrefix + elem.getSimpleName(); return typeNameConverter.getTypeName(prefix + shortName); }