package com.fasterxml.jackson.dataformat.protobuf.schemagen;
import java.nio.ByteBuffer;
import com.fasterxml.jackson.databind.*;
public class ProtobufSchemaHelper
{
private ProtobufSchemaHelper(){}
public static String getNamespace(JavaType type) {
Class<?> cls = type.getRawClass();
Package pkg = cls.getPackage();
return (pkg == null) ? "" : pkg.getName();
}
/* 31-Mar-2017, tatu: Shouldn't be needed...
public static ScalarType getScalarType(JavaType type) {
Class<?> raw = type.getRawClass();
if (raw.isPrimitive()) {
raw = ClassUtil.wrapperType(raw);
}
if ((raw == Integer.class)
// 29-Mar-2017, tatu: Also shorter types...
|| (raw == Short.class)
|| (raw == Byte.class)) {
return DataType.ScalarType.INT32;
}
if ((raw == Long.class) || (raw == BigInteger.class)) {
return DataType.ScalarType.INT64;
}
if (raw == String.class) {
return DataType.ScalarType.STRING;
}
if (raw == Float.class) {
return DataType.ScalarType.FLOAT;
}
if (raw == Boolean.class) {
return DataType.ScalarType.BOOL;
}
if ((raw == byte[].class) || (raw == ByteBuffer.class)) {
return DataType.ScalarType.BYTES;
}
if ((raw == Double.class) || (raw == BigDecimal.class)) {
// is this right wrt BigDecimal?
return DataType.ScalarType.DOUBLE;
}
return null;
}
*/
public static boolean hasIndex(BeanProperty writer) {
return writer.getMetadata().hasIndex();
}
public static boolean isBinaryType(JavaType type) {
return type.hasRawClass(byte[].class)
|| type.isTypeOrSubTypeOf(ByteBuffer.class);
}
}