/** * Returns the field for the key of a map type. Error if type is not a map. */ public Field getMapKeyField() { Preconditions.checkArgument(isMap()); return messageType.getFields().get(0); }
/** * Returns the field for a value of a map type. Error if type is not a map. */ public Field getMapValueField() { Preconditions.checkArgument(isMap()); return messageType.getFields().get(1); }
@Override public boolean apply(Field field) { return field.getType().isMap(); } };
/** * Returns the field for the key of a map type. Error if type is not a map. */ public Field getMapKeyField() { Preconditions.checkArgument(isMap()); return messageType.getFields().get(0); }
/** * Returns the field for a value of a map type. Error if type is not a map. */ public Field getMapValueField() { Preconditions.checkArgument(isMap()); return messageType.getFields().get(1); }
@Override public boolean apply(Field field) { return field.getType().isMap(); } };
@Override public boolean isMap() { return protoField.getType().isMap(); }
@Override public boolean isMap() { return getProtoType().isMap(); }
@Override public TypeName getTypeName(TypeRef type) { if (type.isMap()) { return new TypeName("dict"); } else if (type.isRepeated()) { return new TypeName("list"); } else { return getTypeNameForElementType(type); } }
@Override public TypeName getTypeName(TypeRef type) { if (type.isMap()) { return new TypeName("Hash"); } else if (type.isRepeated()) { return new TypeName("Array"); } else { return getTypeNameForElementType(type); } }
@Override public TypeName getTypeName(TypeRef type) { if (type.isMap()) { return new TypeName("array"); } else if (type.isRepeated()) { TypeName elementTypeName = getTypeNameForElementType(type); return new TypeName("", "", "%i[]", elementTypeName); } else { return getTypeNameForElementType(type); } }
@Override public TypeName getTypeName(TypeRef type) { if (type.isMap()) { return new TypeName("Object"); } else if (type.isRepeated()) { TypeName elementTypeName = getTypeNameForElementType(type); return new TypeName("", "", "%i[]", elementTypeName); } else { return getTypeNameForElementType(type); } }
private TypeName getTypeNameForTypedResourceName( ResourceNameConfig resourceNameConfig, TypeRef type, String typedResourceShortName) { String longName = getResourceNamePackage(resourceNameConfig) + "." + typedResourceShortName; TypeName simpleTypeName = new TypeName(longName, typedResourceShortName); if (type.isMap()) { throw new IllegalArgumentException("Map type not supported for typed resource name"); } else if (type.isRepeated()) { TypeName listTypeName = typeNameConverter.getTypeName("java.util.List"); return new TypeName( listTypeName.getFullName(), listTypeName.getNickname(), "%s<%i>", simpleTypeName); } else { return simpleTypeName; } }
@Override public TypedValue getSnippetZeroValue(TypeRef type) { // Don't call getTypeName; we don't need to import these. if (type.isMap()) { return TypedValue.create(new TypeName("dict"), "{}"); } if (type.isRepeated()) { return TypedValue.create(new TypeName("list"), "[]"); } if (PRIMITIVE_ZERO_VALUE.containsKey(type.getKind())) { return TypedValue.create(getTypeName(type), PRIMITIVE_ZERO_VALUE.get(type.getKind())); } if (type.isMessage()) { return TypedValue.create(getTypeName(type), "{}"); } if (type.isEnum()) { return getEnumValue(type, type.getEnumType().getValues().get(0)); } return TypedValue.create(new TypeName(""), "None"); }
/** * Returns the PHP representation of a zero value for that type, to be used in code sample doc. */ @Override public TypedValue getSnippetZeroValue(TypeRef type) { // Don't call getTypeName; we don't need to import these. if (type.isMap()) { return TypedValue.create(new TypeName("array"), "[]"); } if (type.isRepeated()) { return TypedValue.create(new TypeName("array"), "[]"); } if (PRIMITIVE_ZERO_VALUE.containsKey(type.getKind())) { return TypedValue.create(getTypeName(type), PRIMITIVE_ZERO_VALUE.get(type.getKind())); } if (type.isMessage()) { return TypedValue.create(getTypeName(type), "new %s()"); } if (type.isEnum()) { return getEnumValue(type, type.getEnumType().getValues().get(0)); } return TypedValue.create(new TypeName(""), "null"); }
/** * Returns the Ruby representation of a zero value for that type, to be used in code sample doc. */ @Override public TypedValue getSnippetZeroValue(TypeRef type) { // Don't call getTypeName; we don't need to import these. if (type.isMap()) { return TypedValue.create(new TypeName("Hash"), "{}"); } if (type.isRepeated()) { return TypedValue.create(new TypeName("Array"), "[]"); } if (PRIMITIVE_ZERO_VALUE.containsKey(type.getKind())) { return TypedValue.create(getTypeName(type), PRIMITIVE_ZERO_VALUE.get(type.getKind())); } if (type.isMessage()) { TypeName typeName = getTypeName(type); return TypedValue.create(typeName, "{}"); } if (type.isEnum()) { return getEnumValue(type, type.getEnumType().getValues().get(0)); } return TypedValue.create(new TypeName(""), "nil"); }
@Override public TypeName getTypeName(TypeRef type) { if (type.isMap()) { TypeName keyTypeName = getTypeNameForElementType(type.getMapKeyField().getType()); TypeName valueTypeName = getTypeNameForElementType(type.getMapValueField().getType()); return new TypeName("", "", "map[%i]%i", keyTypeName, valueTypeName); } else if (type.isRepeated()) { TypeName elementTypeName = getTypeNameForElementType(type); return new TypeName("", "", "[]%i", elementTypeName); } else { return getTypeNameForElementType(type); } }
@Visits void reach(Field field) { TypeRef type = field.getType(); if (type.isMap()) { visitInScope(type.getMessageType()); if (type.getMapValueField().getType().isMessage()) { // Be sure to generate error message only for the value type, not for the internal // key-value message. However, the later needs to be included, therefore we did // visitInScope above. mustBeInScope(field, type.getMapValueField().getType().getMessageType()); } } else if (type.isMessage()) { mustBeInScope(field, type.getMessageType()); } else if (type.isEnum()) { mustBeInScope(field, type.getEnumType()); } markAsReachable(field); }
@Override public TypeName getTypeName(TypeRef type) { if (type.isMap()) { TypeName mapTypeName = typeNameConverter.getTypeName("java.util.Map"); TypeName keyTypeName = getTypeNameForElementType(type.getMapKeyField().getType(), true); TypeName valueTypeName = getTypeNameForElementType(type.getMapValueField().getType(), true); return new TypeName( mapTypeName.getFullName(), mapTypeName.getNickname(), "%s<%i, %i>", keyTypeName, valueTypeName); } else if (type.isRepeated()) { TypeName listTypeName = typeNameConverter.getTypeName("java.util.List"); TypeName elementTypeName = getTypeNameForElementType(type, true); return new TypeName( listTypeName.getFullName(), listTypeName.getNickname(), "%s<%i>", elementTypeName); } else { return getTypeNameForElementType(type, false); } }
@Visits void reach(Field field) { TypeRef type = field.getType(); if (type.isMap()) { visitInScope(type.getMessageType()); if (type.getMapValueField().getType().isMessage()) { // Be sure to generate error message only for the value type, not for the internal // key-value message. However, the later needs to be included, therefore we did // visitInScope above. mustBeInScope(field, type.getMapValueField().getType().getMessageType()); } } else if (type.isMessage()) { mustBeInScope(field, type.getMessageType()); } else if (type.isEnum()) { mustBeInScope(field, type.getEnumType()); } markAsReachable(field); }