本文整理汇总了Java中com.google.api.server.spi.config.Transformer类的典型用法代码示例。如果您正苦于以下问题:Java Transformer类的具体用法?Java Transformer怎么用?Java Transformer使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
Transformer类属于com.google.api.server.spi.config包,在下文中一共展示了Transformer类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: validateParameterSerializers
import com.google.api.server.spi.config.Transformer; //导入依赖的package包/类
private void validateParameterSerializers(ApiParameterConfig config,
List<Class<? extends Transformer<?, ?>>> serializers, TypeToken<?> parameterType)
throws ApiParameterConfigInvalidException {
if (serializers.isEmpty()) {
return;
}
if (serializers.size() > 1) {
throw new MultipleTransformersException(config, serializers);
}
TypeToken<?> sourceType = Serializers.getSourceType(serializers.get(0));
TypeToken<?> serializedType = Serializers.getTargetType(serializers.get(0));
if (sourceType == null || serializedType == null) {
throw new NoTransformerInterfaceException(config, serializers.get(0));
}
if (!sourceType.isSupertypeOf(parameterType)) {
throw new WrongTransformerTypeException(config, serializers.get(0), parameterType,
sourceType);
}
}
开发者ID:cloudendpoints,项目名称:endpoints-java,代码行数:24,代码来源:ApiConfigValidator.java
示例2: getJsonDeserializer
import com.google.api.server.spi.config.Transformer; //导入依赖的package包/类
private static <TFrom, TTo> JsonDeserializer<TFrom> getJsonDeserializer(
@Nullable final Transformer<TFrom, TTo> serializer) {
if (serializer == null) {
return null;
}
final TypeReference<TTo> serializedType = typeReferenceOf(serializer);
if (serializer instanceof ResourceTransformer) {
@SuppressWarnings("unchecked")
final ResourceTransformer<TFrom> resourceSerializer = (ResourceTransformer<TFrom>) serializer;
return new ResourceDeserializer<>(resourceSerializer);
} else {
return new JsonDeserializer<TFrom>() {
@Override
public TFrom deserialize(JsonParser jp, DeserializationContext ctxt)
throws IOException {
TTo deserialized = jp.readValueAs(serializedType);
return serializer.transformFrom(deserialized);
}
};
}
}
开发者ID:cloudendpoints,项目名称:endpoints-java,代码行数:22,代码来源:ApiAnnotationIntrospector.java
示例3: testMissingSerializerInterface_repeatedItemSerializer
import com.google.api.server.spi.config.Transformer; //导入依赖的package包/类
@SuppressWarnings("unchecked") // Deliberate bad cast for testing.
public void testMissingSerializerInterface_repeatedItemSerializer() throws Exception {
final class TestSerializer {}
config.getApiClassConfig().getMethods()
.get(methodToEndpointMethod(TestEndpoint.class.getMethod("getResultNoParams")))
.addParameter("param", null, false, null, TypeToken.of(Integer[].class))
.setRepeatedItemSerializer(
(Class<? extends Transformer<?, ?>>) (Class<?>) TestSerializer.class);
try {
validator.validate(config);
fail("Expected NoSerializerInterfaceException.");
} catch (NoTransformerInterfaceException expected) {
}
}
开发者ID:cloudendpoints,项目名称:endpoints-java,代码行数:17,代码来源:ApiConfigValidatorTest.java
示例4: testInstantiate_typeConstructor
import com.google.api.server.spi.config.Transformer; //导入依赖的package包/类
@Test
public void testInstantiate_typeConstructor() {
Transformer<List<?>, Type> serializer;
serializer =
Serializers.instantiate(ListToTypeSerializer.class, TypeToken.of(ImmutableList.class));
assertEquals(ImmutableList.class, serializer.transformTo(ImmutableList.of()));
Type typeWithGeneric = new TypeToken<List<?>>() {}.getType();
serializer = Serializers.instantiate(ListToTypeSerializer.class, TypeToken.of(typeWithGeneric));
assertEquals(typeWithGeneric, serializer.transformTo(ImmutableList.of()));
assertEquals(ImmutableList.of(typeWithGeneric), serializer.transformFrom(List.class));
try {
Serializers.instantiate(ListToTypeSerializer.class, TypeToken.of(Collection.class));
fail("Shouldn't be able to instantiate with Collection");
} catch (IllegalArgumentException e) {
// expected
}
}
开发者ID:cloudendpoints,项目名称:endpoints-java,代码行数:18,代码来源:SerializersTest.java
示例5: readEndpointClass
import com.google.api.server.spi.config.Transformer; //导入依赖的package包/类
@SuppressWarnings("unchecked")
private boolean readEndpointClass(ApiConfig config, Class<?> endpointClass, Annotation api,
Annotation apiClass, @Nullable Class<?> cycleCheck) throws NoSuchMethodException,
IllegalAccessException, InvocationTargetException, CyclicApiInheritanceException {
cycleCheck = checkForInheritanceCycle(endpointClass, cycleCheck);
boolean hasAnnotation = api != null;
Class<?> inheritanceSource = determineInheritanceSource(endpointClass);
if (inheritanceSource != null) {
Annotation superApi = getDeclaredAnnotation(inheritanceSource, annotationTypes.get("Api"));
Annotation superApiClass =
getDeclaredAnnotation(inheritanceSource, annotationTypes.get("ApiClass"));
hasAnnotation |=
readEndpointClass(config, inheritanceSource, superApi, superApiClass, cycleCheck);
}
if (api != null) {
readApi(new ApiAnnotationConfig(config), api);
readApiAuth(new ApiAuthAnnotationConfig(config.getAuthConfig()),
(Annotation) getAnnotationProperty(api, "auth"));
readApiFrontendLimits(new ApiFrontendLimitsAnnotationConfig(config.getFrontendLimitsConfig()),
(Annotation) getAnnotationProperty(api, "frontendLimits"));
readApiCacheControl(new ApiCacheControlAnnotationConfig(config.getCacheControlConfig()),
(Annotation) getAnnotationProperty(api, "cacheControl"));
readApiNamespace(new ApiNamespaceAnnotationConfig(config.getNamespaceConfig()),
(Annotation) getAnnotationProperty(api, "namespace"));
readSerializers(config.getSerializationConfig(),
(Class<? extends Transformer<?, ?>>[]) getAnnotationProperty(api, "transformers"));
}
if (apiClass != null) {
readApiClass(new ApiClassAnnotationConfig(config.getApiClassConfig()), apiClass);
}
return hasAnnotation;
}
开发者ID:cloudendpoints,项目名称:endpoints-java,代码行数:39,代码来源:ApiConfigAnnotationReader.java
示例6: readMethodRequestParameter
import com.google.api.server.spi.config.Transformer; //导入依赖的package包/类
private void readMethodRequestParameter(ApiMethodConfig methodConfig, Annotation parameterName,
Annotation description, Annotation nullable, Annotation defaultValue, TypeToken<?> type)
throws IllegalArgumentException, SecurityException, IllegalAccessException,
InvocationTargetException, NoSuchMethodException {
String parameterNameString = null;
if (parameterName != null) {
parameterNameString = getAnnotationProperty(parameterName, "value");
}
String descriptionString = null;
if (description != null) {
descriptionString = getAnnotationProperty(description, "value");
}
String defaultValueString = null;
if (defaultValue != null) {
defaultValueString = getAnnotationProperty(defaultValue, "value");
}
ApiParameterConfig parameterConfig =
methodConfig.addParameter(parameterNameString, descriptionString, nullable != null,
defaultValueString, type);
Annotation apiSerializer =
type.getRawType().getAnnotation(annotationTypes.get("ApiTransformer"));
if (apiSerializer != null) {
Class<? extends Transformer<?, ?>> serializer =
getAnnotationProperty(apiSerializer, "value");
parameterConfig.setSerializer(serializer);
}
if (parameterConfig.isRepeated()) {
TypeToken<?> repeatedItemType = parameterConfig.getRepeatedItemType();
apiSerializer =
repeatedItemType.getRawType().getAnnotation(annotationTypes.get("ApiTransformer"));
if (apiSerializer != null) {
Class<? extends Transformer<?, ?>> repeatedItemSerializer =
getAnnotationProperty(apiSerializer, "value");
parameterConfig.setRepeatedItemSerializer(repeatedItemSerializer);
}
}
}
开发者ID:cloudendpoints,项目名称:endpoints-java,代码行数:41,代码来源:ApiConfigAnnotationReader.java
示例7: getJsonSerializer
import com.google.api.server.spi.config.Transformer; //导入依赖的package包/类
@Nullable
private static <TFrom, TTo> JsonSerializer<TFrom> getJsonSerializer(
@Nullable final Transformer<TFrom, TTo> serializer) {
if (serializer == null) {
return null;
}
return new JsonSerializer<TFrom>() {
@Override
public void serialize(TFrom value, JsonGenerator jgen, SerializerProvider provider)
throws IOException {
jgen.writeObject(serializer.transformTo(value));
}
};
}
开发者ID:cloudendpoints,项目名称:endpoints-java,代码行数:15,代码来源:ApiAnnotationIntrospector.java
示例8: getSchemaType
import com.google.api.server.spi.config.Transformer; //导入依赖的package包/类
/**
* Gets the schema type for a type. The schema type is identical to the original type if
* there is no matching {@link com.google.api.server.spi.config.ApiTransformer} annotation for
* the type. If there is a {@link com.google.api.server.spi.config.ResourceTransformer} installed,
* the source type determines schema, not the output map.
*/
public static TypeToken<?> getSchemaType(TypeToken<?> type, ApiConfig config) {
Type rawType = type.getType();
if (rawType instanceof Class || rawType instanceof ParameterizedType) {
List<Class<? extends Transformer<?, ?>>> serializers =
Serializers.getSerializerClasses(type, config.getSerializationConfig());
if (!serializers.isEmpty() &&
!(ResourceTransformer.class.isAssignableFrom(serializers.get(0)))) {
TypeToken<?> sourceType = Serializers.getSourceType(serializers.get(0));
TypeToken<?> serializedType = Serializers.getTargetType(serializers.get(0));
Preconditions.checkArgument(
sourceType.isSupertypeOf(type),
"Serializer specified for %s, but only serializes for %s: %s",
type,
sourceType,
serializers.get(0));
Preconditions.checkArgument(
serializedType != null,
"Couldn't find Serializer interface in serializer for %s: %s",
type,
serializers.get(0));
return serializedType;
}
}
return type;
}
开发者ID:cloudendpoints,项目名称:endpoints-java,代码行数:34,代码来源:ApiAnnotationIntrospector.java
示例9: findSerializerInstance
import com.google.api.server.spi.config.Transformer; //导入依赖的package包/类
@Nullable
private Transformer<?, ?> findSerializerInstance(Annotated a) {
if (a instanceof AnnotatedClass) {
AnnotatedClass clazz = (AnnotatedClass) a;
List<Class<? extends Transformer<?, ?>>> serializerClasses =
Serializers.getSerializerClasses(clazz.getRawType(), config);
if (!serializerClasses.isEmpty()) {
return Serializers.instantiate(serializerClasses.get(0), TypeToken.of(a.getRawType()));
}
}
return null;
}
开发者ID:cloudendpoints,项目名称:endpoints-java,代码行数:13,代码来源:ApiAnnotationIntrospector.java
示例10: typeReferenceOf
import com.google.api.server.spi.config.Transformer; //导入依赖的package包/类
private static <T> TypeReference<T> typeReferenceOf(Transformer<?, T> serializer) {
@SuppressWarnings("unchecked")
Class<? extends Transformer<?, T>> serializerClass =
(Class<? extends Transformer<?, T>>) serializer.getClass();
final TypeToken<?> type = Serializers.getTargetType(serializerClass);
return new TypeReference<T> (){
@Override
public Type getType() {
return type.getType();
}
};
}
开发者ID:cloudendpoints,项目名称:endpoints-java,代码行数:13,代码来源:ApiAnnotationIntrospector.java
示例11: getSimpleName
import com.google.api.server.spi.config.Transformer; //导入依赖的package包/类
/**
* Gets a simple name for a type that's suitable for use as a schema name. This will resolve any
* transformations on the type, which may affect the type name.
*/
public static String getSimpleName(TypeToken<?> type, ApiSerializationConfig config) {
if (type == null) {
return null;
}
TypeToken<?> itemType = getArrayItemType(type);
if (itemType != null) {
return getSimpleName(itemType, config) + "Collection";
} else if (type.getType() instanceof ParameterizedType) {
Class<?> clazz = type.getRawType();
StringBuilder builder = new StringBuilder();
builder.append(clazz.getSimpleName());
for (Type typeArg : clazz.getTypeParameters()) {
builder.append('_');
builder.append(getSimpleName(type.resolveType(typeArg), config));
}
return builder.toString();
} else {
Class<? extends Transformer<?, ?>> serializerClass = Iterables.getOnlyElement(
Serializers.getSerializerClasses(type, config), null);
if (serializerClass != null && ResourceTransformer.class.isAssignableFrom(serializerClass)) {
@SuppressWarnings("unchecked")
ResourceTransformer<?> resourceSerializer =
(ResourceTransformer<?>) Serializers.instantiate(serializerClass, type);
ResourceSchema resourceSchema = resourceSerializer.getResourceSchema();
if (resourceSchema != null && resourceSchema.getName() != null) {
return resourceSchema.getName();
}
}
String collectionName = FieldType.fromType(type).getCollectionName();
return collectionName != null ? collectionName : type.getRawType().getSimpleName();
}
}
开发者ID:cloudendpoints,项目名称:endpoints-java,代码行数:37,代码来源:Types.java
示例12: getSerializers
import com.google.api.server.spi.config.Transformer; //导入依赖的package包/类
/**
* @return The serializer to be used on the parameter.
*/
public List<Class<? extends Transformer<?, ?>>> getSerializers() {
if (serializer != null) {
return Collections.<Class<? extends Transformer<?, ?>>>singletonList(serializer);
} else {
return tryFindDefaultSerializers(getType());
}
}
开发者ID:cloudendpoints,项目名称:endpoints-java,代码行数:11,代码来源:ApiParameterConfig.java
示例13: getRepeatedItemSerializers
import com.google.api.server.spi.config.Transformer; //导入依赖的package包/类
/**
* If the serialized type of the parameter is a repeated type, returns the serializer to be used
* on each individual item. Otherwise returns {@code null}.
*/
public List<Class<? extends Transformer<?, ?>>> getRepeatedItemSerializers() {
if (repeatedItemSerializer != null) {
return Collections.<Class<? extends Transformer<?, ?>>>singletonList(repeatedItemSerializer);
} else {
return tryFindDefaultSerializers(Types.getArrayItemType(getSchemaBaseType()));
}
}
开发者ID:cloudendpoints,项目名称:endpoints-java,代码行数:12,代码来源:ApiParameterConfig.java
示例14: getSchemaBaseType
import com.google.api.server.spi.config.Transformer; //导入依赖的package包/类
/**
* Gets the type that acts as the source for schema generation. In the case of resource
* serialization, the schema is based on the type being serialized. Simple serializers just
* convert from one type to another, in which case the schema would be derived from the target
* type instead.
*/
public TypeToken<?> getSchemaBaseType() {
List<Class<? extends Transformer<?, ?>>> serializers = getSerializers();
if (serializers.isEmpty()) {
return getType();
} else if (ResourceTransformer.class.isAssignableFrom(serializers.get(0))) {
return getType();
} else {
return Serializers.getTargetType(serializers.get(0));
}
}
开发者ID:cloudendpoints,项目名称:endpoints-java,代码行数:17,代码来源:ApiParameterConfig.java
示例15: getRepeatedItemSerializedType
import com.google.api.server.spi.config.Transformer; //导入依赖的package包/类
/**
* If the serialized type of the parameter is a repeated type, returns the serialized individual
* item type. Otherwise returns {@code null}.
*/
public TypeToken<?> getRepeatedItemSerializedType() {
List<Class<? extends Transformer<?, ?>>> serializers = getRepeatedItemSerializers();
if (serializers.isEmpty()) {
return getRepeatedItemType();
} else {
return Serializers.getTargetType(serializers.get(0));
}
}
开发者ID:cloudendpoints,项目名称:endpoints-java,代码行数:13,代码来源:ApiParameterConfig.java
示例16: getSerializerClasses
import com.google.api.server.spi.config.Transformer; //导入依赖的package包/类
public static List<Class<? extends Transformer<?, ?>>> getSerializerClasses(
TypeToken<?> type, @Nullable final ApiSerializationConfig config) {
if (type == null) {
return Collections.emptyList();
}
List<Class<? extends Transformer<?, ?>>> allParentSerializers = Lists.newArrayList();
List<TypeToken<?>> serializedTypes = Lists.newArrayList();
for (TypeToken<?> typeToken : type.getTypes()) {
ApiTransformer apiSerialization = typeToken.getRawType().getAnnotation(ApiTransformer.class);
if (isSupertypeOf(typeToken, serializedTypes)) {
continue;
}
if (apiSerialization != null) {
allParentSerializers.add(apiSerialization.value());
serializedTypes.add(typeToken);
} else if (config != null) {
ApiSerializationConfig.SerializerConfig serializerConfig =
config.getSerializerConfig(typeToken);
if (serializerConfig != null) {
allParentSerializers.add(serializerConfig.getSerializer());
serializedTypes.add(typeToken);
}
}
}
return allParentSerializers;
}
开发者ID:cloudendpoints,项目名称:endpoints-java,代码行数:29,代码来源:Serializers.java
示例17: getSourceType
import com.google.api.server.spi.config.Transformer; //导入依赖的package包/类
/**
* Gets the {@code Serializer} source type for a class. This resolves placeholders in generics.
*
* @param clazz a class, possibly implementing {@code Transformer}
* @return the resolved source type, null if clazz is not a serializer
*/
@Nullable
public static TypeToken<?> getSourceType(Class<? extends Transformer<?, ?>> clazz) {
try {
TypeToken<?> token = TypeToken.of(clazz);
return token.resolveType(
Transformer.class.getMethod("transformFrom", Object.class).getGenericReturnType());
} catch (NoSuchMethodException e) {
return null;
}
}
开发者ID:cloudendpoints,项目名称:endpoints-java,代码行数:17,代码来源:Serializers.java
示例18: getTargetType
import com.google.api.server.spi.config.Transformer; //导入依赖的package包/类
/**
* Gets the {@code Serializer} target type for a class. This resolves placeholders in generics.
*
* @param clazz a class, possibly implementing {@code Transformer}
* @return the resolved target type, null if clazz is not a serializer
*/
@Nullable
public static TypeToken<?> getTargetType(Class<? extends Transformer<?, ?>> clazz) {
try {
TypeToken<?> token = TypeToken.of(clazz);
return token.resolveType(
Transformer.class.getMethod("transformTo", Object.class).getGenericReturnType());
} catch (NoSuchMethodException e) {
return null;
}
}
开发者ID:cloudendpoints,项目名称:endpoints-java,代码行数:17,代码来源:Serializers.java
示例19: getResolvedType
import com.google.api.server.spi.config.Transformer; //导入依赖的package包/类
@Nullable
private static ParameterizedType getResolvedType(
@Nullable Class<? extends Transformer<?, ?>> clazz) {
if (clazz == null || !Transformer.class.isAssignableFrom(clazz)) {
return null;
}
for (TypeToken<?> token : TypeToken.of(clazz).getTypes().interfaces()) {
if (token.getRawType().equals(Transformer.class)) {
Type tokenType = token.getType();
return tokenType instanceof ParameterizedType ? (ParameterizedType) tokenType : null;
}
}
return null;
}
开发者ID:cloudendpoints,项目名称:endpoints-java,代码行数:15,代码来源:Serializers.java
示例20: getResourceSchemaImpl
import com.google.api.server.spi.config.Transformer; //导入依赖的package包/类
@Nullable
private <T> ResourceSchema getResourceSchemaImpl(TypeToken<T> type, ApiConfig config) {
Class<? super T> clazz = type.getRawType();
List<Class<? extends Transformer<?, ?>>> serializerClasses =
Serializers.getSerializerClasses(type, config.getSerializationConfig());
if (!serializerClasses.isEmpty() &&
ResourceTransformer.class.isAssignableFrom(serializerClasses.get(0))) {
@SuppressWarnings("unchecked")
ResourceTransformer<T> resourceSerializer =
(ResourceTransformer<T>) Serializers.instantiate(serializerClasses.get(0), type);
return resourceSerializer.getResourceSchema();
}
return null;
}
开发者ID:cloudendpoints,项目名称:endpoints-java,代码行数:15,代码来源:AbstractResourceSchemaProvider.java
注:本文中的com.google.api.server.spi.config.Transformer类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论