@Override public String getEnum(String fieldName, EnumDataSchema enumDataSchema) { List<String> symbols = enumDataSchema.getSymbols(); return symbols.get(nonNegative(symbols.size() - 1)); }
public String docString() { String symbolDoc = _dataSchema.getSymbolDocs().get(_symbolString); DataMap deprecatedSymbols = (DataMap) _dataSchema.getProperties().get("deprecatedSymbols"); Object symbolDeprecation = null; if (deprecatedSymbols != null) { symbolDeprecation = deprecatedSymbols.get(_symbolString); } return docComment( symbolDoc, symbolDeprecation ); } }
protected Object validateEnum(DataElement element, EnumDataSchema schema, Object object) { Object fixed = object; if (object instanceof String) { String value = (String) object; if (schema.contains(value) == false) { addMessage(element, "\"%1$s\" is not an enum symbol", value); } } else { addMessage(element, "enum type is not backed by a String"); } return fixed; }
EnumDataSchema schema = new EnumDataSchema(name); schema.setSymbols(symbols, errorMessageBuilder()); if (symbolDocs.size() > 0) schema.setSymbolDocs(symbolDocs, errorMessageBuilder()); schema.setProperties(props); return schema;
private void writeEnum(EnumDataSchema schema) throws IOException boolean hasDoc = writeDoc(schema.getDoc()); DataMap properties = new DataMap(schema.getProperties()); DataMap propertiesMap = new DataMap(coercePropertyToDataMapOrFail(schema, "symbolProperties", properties.remove("symbolProperties"))); DataMap deprecatedMap = coercePropertyToDataMapOrFail(schema, "deprecatedSymbols", properties.remove("deprecatedSymbols")); Map<String, String> docs = schema.getSymbolDocs(); for (String symbol : schema.getSymbols())
List<String> symbols = getStringList(map, SYMBOLS_KEY, true); DataMap symbolDocsMap = getDataMap(map, SYMBOL_DOCS_KEY, false); EnumDataSchema enumSchema = new EnumDataSchema(name); schema = namedSchema = enumSchema; bindNameToSchema(name, aliasNames, enumSchema); StringBuilder messageBuilder = startCalleeMessageBuilder(); enumSchema.setSymbols(symbols, messageBuilder); enumSchema.setSymbolDocs(symbolDocs, messageBuilder);
private RecordDataSchema.Field buildDiscriminatorEnumField( String parentRecordFullName, List<String> memberKeys, StringBuilder errorMessageBuilder) { Name enumName = new Name(parentRecordFullName + SchemaTranslator.CONTAINER_RECORD_DISCRIMINATOR_ENUM_SUFFIX, errorMessageBuilder); EnumDataSchema enumDataSchema = new EnumDataSchema(enumName); enumDataSchema.setSymbols(memberKeys, errorMessageBuilder); RecordDataSchema.Field field = new RecordDataSchema.Field(enumDataSchema); field.setName(DataSchemaConstants.DISCRIMINATOR_FIELD, errorMessageBuilder); field.setDoc("Contains the name of the field that has its value set."); field.setDeclaredInline(true); field.setOptional(false); return field; } }
break; case ENUM: _builder.writeStringArrayField(SYMBOLS_KEY, ((EnumDataSchema) schema).getSymbols(), true); _builder.writeMapField(SYMBOL_DOCS_KEY, ((EnumDataSchema) schema).getSymbolDocs(), false); break; case FIXED:
EnumDeclarationContext enumDecl) throws ParseException { Name name = toName(enumDecl.name); EnumDataSchema schema = new EnumDataSchema(name); symbols.add(symbolDecl.symbol.value); schema.setSymbols(symbols, errorMessageBuilder()); schema.setSymbolDocs(symbolDocs, errorMessageBuilder()); schema.setProperties(props); return schema;
/** Syntax for all the values in this enum */ public List<TSEnumSymbolSyntax> symbols() { List<TSEnumSymbolSyntax> symbols = new ArrayList<>(); for (String symbol : _dataSchema.getSymbols()) { symbols.add(new TSEnumSymbolSyntax(_template, _dataSchema, symbol)); } return symbols; }
private void checkEnum(EnumDataSchema older, EnumDataSchema newer) { checkName(older, newer); _path.addLast(DataSchemaConstants.SYMBOLS_KEY); // using list to preserve symbol order List<String> newerOnlySymbols = new CheckerArrayList<String>(newer.getSymbols()); newerOnlySymbols.removeAll(older.getSymbols()); List<String> olderOnlySymbols = new CheckerArrayList<String>(older.getSymbols()); olderOnlySymbols.removeAll(newer.getSymbols()); if (newerOnlySymbols.isEmpty() == false) { appendMessage(CompatibilityMessage.Impact.BREAKS_OLD_READER, "new enum added symbols %s", newerOnlySymbols); } if (olderOnlySymbols.isEmpty() == false) { appendMessage(CompatibilityMessage.Impact.BREAKS_NEW_READER, "new enum removed symbols %s", olderOnlySymbols); } _path.removeLast(); }
String enumValue = (String) value; EnumDataSchema enumDataSchema = (EnumDataSchema) dataSchema; if (!enumDataSchema.getSymbols().contains(enumValue)) throw new IllegalArgumentException(message(path, "enum value %1$s not one of %2$s", value, enumDataSchema.getSymbols()));
String enumValue = value.toString(); EnumDataSchema enumDataSchema = (EnumDataSchema) dereferencedDataSchema; if (enumDataSchema.getSymbols().contains(enumValue) == false) appendMessage("enum value %1$s not one of %2$s", enumValue, enumDataSchema.getSymbols()); result = BAD_RESULT; break;
String enumValue = value.toString(); EnumDataSchema enumDataSchema = (EnumDataSchema) dereferencedDataSchema; if (enumDataSchema.getSymbols().contains(enumValue) == false) appendMessage("enum value %1$s not one of %2$s", enumValue, enumDataSchema.getSymbols()); result = BAD_RESULT; break;