private static <RequestT extends StorageRequest<?>> void setUserProject( RequestT request, String projectId) { Field userProjectField = request.getClassInfo().getField(USER_PROJECT_FIELD_NAME); if (userProjectField != null) { request.set(USER_PROJECT_FIELD_NAME, projectId); } } }
/** Sets the entry classes to use when parsing. */ public void setEntryClasses(Class<?>... entryClasses) { int numEntries = entryClasses.length; HashMap<String, Class<?>> kindToEntryClassMap = this.kindToEntryClassMap; for (int i = 0; i < numEntries; i++) { Class<?> entryClass = entryClasses[i]; ClassInfo typeInfo = ClassInfo.of(entryClass); Field field = typeInfo.getField("@gd:kind"); if (field == null) { throw new IllegalArgumentException("missing @gd:kind field for " + entryClass.getName()); } Object entry = Types.newInstance(entryClass); String kind = (String) FieldInfo.getFieldValue(field, entry); if (kind == null) { throw new IllegalArgumentException( "missing value for @gd:kind field in " + entryClass.getName()); } kindToEntryClassMap.put(kind, entryClass); } }
/** * @param parser JSON parser * @param feedClass feed class * @param itemClasses item classes */ public JsonMultiKindFeedParser(JsonParser parser, Class<T> feedClass, Class<?>... itemClasses) { super(parser, feedClass); int numItems = itemClasses.length; HashMap<String, Class<?>> kindToItemClassMap = this.kindToItemClassMap; for (int i = 0; i < numItems; i++) { Class<?> itemClass = itemClasses[i]; ClassInfo classInfo = ClassInfo.of(itemClass); Field field = classInfo.getField("kind"); if (field == null) { throw new IllegalArgumentException("missing kind field for " + itemClass.getName()); } Object item = Types.newInstance(itemClass); String kind = (String) FieldInfo.getFieldValue(field, item); if (kind == null) { throw new IllegalArgumentException( "missing value for kind field in " + itemClass.getName()); } kindToItemClassMap.put(kind, itemClass); } }
String value = line.substring(equals + 1); Field field = classInfo.getField(key); if (field != null) { Class<?> fieldClass = field.getType();
? "" : namespaceDictionary.getNamespaceAliasForUriErrorOnUnknown(attributeNamespace); String fieldName = getFieldName(true, attributeAlias, attributeNamespace, attributeName); Field field = classInfo == null ? null : classInfo.getField(fieldName); parseAttributeOrTextContent(parser.getAttributeValue(i), field, field = classInfo == null ? null : classInfo.getField(TEXT_CONTENT); parseAttributeOrTextContent(parser.getText(), field, field = classInfo == null ? null : classInfo.getField(fieldName); Type fieldType = field == null ? valueType : field.getGenericType(); fieldType = Data.resolveWildcardTypeOrTypeVariable(context, fieldType);