private static boolean hasStream(List<CsdlProperty> properties) { for (CsdlProperty p : properties) { if (p.getType().equals(EdmPrimitiveTypeKind.Binary.getFullQualifiedName())) { return true; } } return false; }
/** * Gets the {@link EdmPrimitiveTypeKind} from a full type expression (like <code>Edm.Int32</code>). * @param fqn String containing a full-qualified type name * @return {@link EdmPrimitiveTypeKind} object */ public static EdmPrimitiveTypeKind valueOfFQN(final String fqn) { if (!fqn.startsWith(EdmPrimitiveType.EDM_NAMESPACE + ".")) { throw new IllegalArgumentException(fqn + " does not look like an Edm primitive type"); } return valueOf(fqn.substring(4)); }
/** * Returns the {@link FullQualifiedName} for this type kind. * * @return {@link FullQualifiedName} */ public FullQualifiedName getFullQualifiedName() { return new FullQualifiedName(EdmPrimitiveType.EDM_NAMESPACE, toString()); }
setValue(valuable.asGeospatial()). setType(type == null || EdmPrimitiveTypeKind.Geography.getFullQualifiedName().equals(type) || EdmPrimitiveTypeKind.Geometry.getFullQualifiedName().equals(type) ? valuable.asGeospatial().getEdmPrimitiveTypeKind() : EdmPrimitiveTypeKind.valueOfFQN(type.toString())). build(); } else if (valuable.isPrimitive() || valuable.getValueType() == null) { value = cValue; } else { if (type != null && !EdmPrimitiveTypeKind.String.getFullQualifiedName().equals(type) && EdmPrimitiveType.EDM_NAMESPACE.equals(type.getNamespace()) && valuable.asPrimitive() instanceof String) { EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.valueOf(type.getName())); final Class<?> returnType = primitiveType.getDefaultType().isAssignableFrom(Calendar.class) ? Timestamp.class : primitiveType.getDefaultType(); setType(type == null || !EdmPrimitiveType.EDM_NAMESPACE.equals(type.getNamespace()) ? null : EdmPrimitiveTypeKind.valueOfFQN(type.toString())). build();
private boolean isPrimiteveType(final FullQualifiedName typeName) { try { return EdmPrimitiveTypeKind.valueOfFQN(typeName) != null; } catch (IllegalArgumentException e) { return false; } }
final XMLEvent event = reader.nextEvent(); if (event.isStartElement() && typeInfo != null && typeInfo.getPrimitiveTypeKind().isGeospatial()) { final EdmPrimitiveTypeKind geoType = EdmPrimitiveTypeKind.valueOfFQN(typeInfo.getFullQualifiedName().toString()); value = geoDeserializer.deserialize(reader, event.asStartElement(), geoType); && (typeInfo == null || !typeInfo.getPrimitiveTypeKind().isGeospatial())) { final String stringValue = event.asCharacters().getData(); if (typeInfo == null) {
/** * Checks if is a geospatial type. * * @return <tt>true</tt> if is geospatial type; <tt>false</tt> otherwise. */ public boolean isGeospatial() { return name().startsWith("Geo"); }
private static EdmTypeInfo guessPrimitiveType(final EdmEnabledODataClient client, final Class<?> clazz) { EdmPrimitiveTypeKind bckCandidate = null; for (EdmPrimitiveTypeKind kind : EdmPrimitiveTypeKind.values()) { final Class<?> target = EdmPrimitiveTypeFactory.getInstance(kind).getDefaultType(); if (clazz.equals(target)) { return new EdmTypeInfo.Builder().setEdm(client.getCachedEdm()).setTypeExpression(kind.toString()).build(); } else if (target.isAssignableFrom(clazz)) { bckCandidate = kind; } else if (target == Timestamp.class && kind == EdmPrimitiveTypeKind.DateTimeOffset) { bckCandidate = kind; } } if (bckCandidate == null) { throw new IllegalArgumentException(clazz.getSimpleName() + " is not a simple type"); } else { return new EdmTypeInfo.Builder().setEdm(client.getCachedEdm()).setTypeExpression(bckCandidate.toString()).build(); } }
@Override public String toString() { if (value == null) { return ""; } else if (typeKind.isGeospatial()) { return value.toString(); } else { try { // TODO: set facets return type.valueToString(value, null, null, Constants.DEFAULT_PRECISION, Constants.DEFAULT_SCALE, null); } catch (EdmPrimitiveTypeException e) { throw new IllegalArgumentException(e); } } }
public void serialize(final JsonGenerator jgen, final Geospatial value) throws IOException { if (value.getEdmPrimitiveTypeKind().equals(EdmPrimitiveTypeKind.GeographyCollection) || value.getEdmPrimitiveTypeKind().equals(EdmPrimitiveTypeKind.GeometryCollection)) { jgen.writeStringField(Constants.ATTR_TYPE, EdmPrimitiveTypeKind.GeometryCollection.name()); } else { final int yIdx = value.getEdmPrimitiveTypeKind().name().indexOf('y'); final String itemType = value.getEdmPrimitiveTypeKind().name().substring(yIdx + 1); jgen.writeStringField(Constants.ATTR_TYPE, itemType);
setValue(valuable.asGeospatial()). setType(type == null || EdmPrimitiveTypeKind.Geography.getFullQualifiedName().equals(type) || EdmPrimitiveTypeKind.Geometry.getFullQualifiedName().equals(type) ? valuable.asGeospatial().getEdmPrimitiveTypeKind() : EdmPrimitiveTypeKind.valueOfFQN(type.toString())). build(); } else if (valuable.isPrimitive() || valuable.getValueType() == null) { value = cValue; } else { if (type != null && !EdmPrimitiveTypeKind.String.getFullQualifiedName().equals(type) && EdmPrimitiveType.EDM_NAMESPACE.equals(type.getNamespace()) && valuable.asPrimitive() instanceof String) { EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.valueOf(type.getName())); final Class<?> returnType = primitiveType.getDefaultType().isAssignableFrom(Calendar.class) ? Timestamp.class : primitiveType.getDefaultType(); setType(type == null || !EdmPrimitiveType.EDM_NAMESPACE.equals(type.getNamespace()) ? null : EdmPrimitiveTypeKind.valueOfFQN(type.toString())). build();
private boolean isPrimiteveType(final FullQualifiedName typeName) { try { return EdmPrimitiveTypeKind.valueOfFQN(typeName) != null; } catch (IllegalArgumentException e) { return false; } }
final XMLEvent event = reader.nextEvent(); if (event.isStartElement() && typeInfo != null && typeInfo.getPrimitiveTypeKind().isGeospatial()) { final EdmPrimitiveTypeKind geoType = EdmPrimitiveTypeKind.valueOfFQN(typeInfo.getFullQualifiedName().toString()); value = geoDeserializer.deserialize(reader, event.asStartElement(), geoType); && (typeInfo == null || !typeInfo.getPrimitiveTypeKind().isGeospatial())) { final String stringValue = event.asCharacters().getData(); if (typeInfo == null) {
/** * Checks if is a geospatial type. * * @return <tt>true</tt> if is geospatial type; <tt>false</tt> otherwise. */ public boolean isGeospatial() { return name().startsWith("Geo"); }
private static EdmTypeInfo guessPrimitiveType(final EdmEnabledODataClient client, final Class<?> clazz) { EdmPrimitiveTypeKind bckCandidate = null; for (EdmPrimitiveTypeKind kind : EdmPrimitiveTypeKind.values()) { final Class<?> target = EdmPrimitiveTypeFactory.getInstance(kind).getDefaultType(); if (clazz.equals(target)) { return new EdmTypeInfo.Builder().setEdm(client.getCachedEdm()).setTypeExpression(kind.toString()).build(); } else if (target.isAssignableFrom(clazz)) { bckCandidate = kind; } else if (target == Timestamp.class && kind == EdmPrimitiveTypeKind.DateTimeOffset) { bckCandidate = kind; } } if (bckCandidate == null) { throw new IllegalArgumentException(clazz.getSimpleName() + " is not a simple type"); } else { return new EdmTypeInfo.Builder().setEdm(client.getCachedEdm()).setTypeExpression(bckCandidate.toString()).build(); } }
@Override public String toString() { if (value == null) { return ""; } else if (typeKind.isGeospatial()) { return value.toString(); } else { try { // TODO: set facets return type.valueToString(value, null, null, Constants.DEFAULT_PRECISION, Constants.DEFAULT_SCALE, null); } catch (EdmPrimitiveTypeException e) { throw new IllegalArgumentException(e); } } }
public void serialize(final JsonGenerator jgen, final Geospatial value) throws IOException { if (value.getEdmPrimitiveTypeKind().equals(EdmPrimitiveTypeKind.GeographyCollection) || value.getEdmPrimitiveTypeKind().equals(EdmPrimitiveTypeKind.GeometryCollection)) { jgen.writeStringField(Constants.ATTR_TYPE, EdmPrimitiveTypeKind.GeometryCollection.name()); } else { final int yIdx = value.getEdmPrimitiveTypeKind().name().indexOf('y'); final String itemType = value.getEdmPrimitiveTypeKind().name().substring(yIdx + 1); jgen.writeStringField(Constants.ATTR_TYPE, itemType);
@Override public String getTypeName() { return typeKind.getFullQualifiedName().toString(); }
/** * Gets the {@link EdmPrimitiveTypeKind} from a full type expression (like <code>Edm.Int32</code>). * @param fqn String containing a full-qualified type name * @return {@link EdmPrimitiveTypeKind} object */ public static EdmPrimitiveTypeKind valueOfFQN(final String fqn) { if (!fqn.startsWith(EdmPrimitiveType.EDM_NAMESPACE + ".")) { throw new IllegalArgumentException(fqn + " does not look like an Edm primitive type"); } return valueOf(fqn.substring(4)); }
public static EdmPrimitiveTypeKind odataType(String teiidRuntimeType) { if (teiidRuntimeType.endsWith("[]")) { teiidRuntimeType = teiidRuntimeType.substring(0, teiidRuntimeType.length()-2); //multi-dimensional is not supported - will be returned as string } String type = teiidTypes.get(teiidRuntimeType); if (type == null) { type = "Edm.String"; } return EdmPrimitiveTypeKind.valueOfFQN(type); }