当前位置: 首页>>代码示例>>Java>>正文


Java EdmProperty.getName方法代码示例

本文整理汇总了Java中org.apache.olingo.commons.api.edm.EdmProperty.getName方法的典型用法代码示例。如果您正苦于以下问题:Java EdmProperty.getName方法的具体用法?Java EdmProperty.getName怎么用?Java EdmProperty.getName使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.apache.olingo.commons.api.edm.EdmProperty的用法示例。


在下文中一共展示了EdmProperty.getName方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: toSort

import org.apache.olingo.commons.api.edm.EdmProperty; //导入方法依赖的package包/类
/**
 * Converts {@link OrderByItem} to {@link Sort} needed for
 * {@link Pagination}.
 * 
 * @param orderByItem
 *            order by item
 * @return sort instance, or null in case order by item wasn't specific type
 */
protected Sort toSort(OrderByItem orderByItem) {
    Expression expression = orderByItem.getExpression();
    if (expression instanceof Member) {
        UriInfoResource resourcePath = ((Member) expression).getResourcePath();
        UriResource uriResource = resourcePath.getUriResourceParts().get(0);
        if (uriResource instanceof UriResourcePrimitiveProperty) {
            EdmProperty edmProperty = ((UriResourcePrimitiveProperty) uriResource)
                    .getProperty();
            String property = edmProperty.getName();
            if (edmProperty instanceof ElasticEdmProperty) {
                ElasticEdmProperty entityTypeProperty = (ElasticEdmProperty) edmProperty;
                property = addKeywordIfNeeded(entityTypeProperty.getEField(),
                        entityTypeProperty.getAnnotations());
            }
            return new Sort(property,
                    orderByItem.isDescending() ? Sort.Direction.DESC : Sort.Direction.ASC);
        }
    }
    return null;
}
 
开发者ID:Hevelian,项目名称:hevelian-olastic,代码行数:29,代码来源:RequestCreator.java

示例2: primitivePropertyNull

import org.apache.olingo.commons.api.edm.EdmProperty; //导入方法依赖的package包/类
@Test
public void primitivePropertyNull() throws Exception {
  final EdmEntitySet edmEntitySet = entityContainer.getEntitySet("ESAllPrim");
  final EdmProperty edmProperty = (EdmProperty) edmEntitySet.getEntityType().getProperty("PropertyString");
  final Property property = new Property("Edm.String", edmProperty.getName(), ValueType.PRIMITIVE, null);
  String response = IOUtils.toString(serializer.primitive(metadata, (EdmPrimitiveType) edmProperty.getType(),
      property,
      PrimitiveSerializerOptions.with()
          .contextURL(ContextURL.with()
              .entitySet(edmEntitySet).keyPath("4242").navOrPropertyPath(edmProperty.getName())
              .build())
          .build()).getContent());
  String expected = "<?xml version='1.0' encoding='UTF-8'?>"
      + "<m:value xmlns:m=\"http://docs.oasis-open.org/odata/ns/metadata\" "
      + "m:context=\"$metadata#ESAllPrim(4242)/PropertyString\" "
      + "m:metadata-etag=\"metadataETag\" "
      + "m:null=\"true\"/>";
  Assert.assertEquals(expected, response);
}
 
开发者ID:apache,项目名称:olingo-odata4,代码行数:20,代码来源:ODataXmlSerializerTest.java

示例3: writeExpandedStreamProperty

import org.apache.olingo.commons.api.edm.EdmProperty; //导入方法依赖的package包/类
private void writeExpandedStreamProperty(ExpandOption expand, String propertyName, EdmProperty edmProperty, 
    Linked linked, ExpandItem expandAll, JsonGenerator json) throws SerializerException, 
    DecoderException, IOException {
  final ExpandItem innerOptions = ExpandSelectHelper.getExpandItem(expand.getExpandItems(), propertyName);
  if (innerOptions != null || expandAll != null) {
    if(constants instanceof Constantsv00){
      throw new SerializerException("Expand not supported for Stream Property Type!",
          SerializerException.MessageKeys.UNSUPPORTED_OPERATION_TYPE, "expand", edmProperty.getName());
    }
    Entity entity = (Entity) linked;
    final Property property = (Property) entity.getProperty(propertyName);
    if((property == null || property.isNull()) && edmProperty.isNullable() == Boolean.FALSE ){
      throw new SerializerException("Non-nullable property not present!",
          SerializerException.MessageKeys.MISSING_PROPERTY, edmProperty.getName());
    }
    Link link = (Link) property.getValue();
    Property stream = link.getInlineEntity().getProperty(propertyName);
    Base64 decoder = new Base64(true);
    byte[] decodedBytes = (byte[]) decoder.decode(stream.getValue());
    json.writeStringField(propertyName, new String(decodedBytes));     
  }
}
 
开发者ID:apache,项目名称:olingo-odata4,代码行数:23,代码来源:ODataJsonSerializer.java

示例4: readPrimitiveValueInString

import org.apache.olingo.commons.api.edm.EdmProperty; //导入方法依赖的package包/类
/**
 * This method returns the object which is the value of the property.
 *
 * @param edmProperty EdmProperty
 * @param value       String value
 * @return Object
 * @throws ODataApplicationException
 */
private String readPrimitiveValueInString(EdmProperty edmProperty, Object value) throws ODataApplicationException {
    if (value == null) {
        return null;
    }
    try {
        EdmPrimitiveType edmPrimitiveType = (EdmPrimitiveType) edmProperty.getType();
        return edmPrimitiveType.valueToString(value, edmProperty.isNullable(), edmProperty.getMaxLength(),
                                              edmProperty.getPrecision(), edmProperty.getScale(),
                                              edmProperty.isUnicode());
    } catch (EdmPrimitiveTypeException e) {
        throw new ODataApplicationException("Invalid value: " + value + " for property: " + edmProperty.getName(),
                                            HttpStatusCode.INTERNAL_SERVER_ERROR.getStatusCode(),
                                            Locale.getDefault());
    }
}
 
开发者ID:wso2,项目名称:carbon-data,代码行数:24,代码来源:ODataAdapter.java

示例5: readPrimitiveValue

import org.apache.olingo.commons.api.edm.EdmProperty; //导入方法依赖的package包/类
/**
 * This method returns the object which is the value of the property.
 *
 * @param edmProperty EdmProperty
 * @param value       String value
 * @return Object
 * @throws ODataApplicationException
 */
private Object readPrimitiveValue(EdmProperty edmProperty, String value) throws ODataApplicationException {
    if (value == null) {
        return null;
    }
    try {
        if (value.startsWith("'") && value.endsWith("'")) {
            value = value.substring(1, value.length() - 1);
        }
        EdmPrimitiveType edmPrimitiveType = (EdmPrimitiveType) edmProperty.getType();
        Class<?> javaClass = getJavaClassForPrimitiveType(edmProperty, edmPrimitiveType);
        return edmPrimitiveType.valueOfString(value, edmProperty.isNullable(), edmProperty.getMaxLength(),
                                              edmProperty.getPrecision(), edmProperty.getScale(),
                                              edmProperty.isUnicode(), javaClass);
    } catch (EdmPrimitiveTypeException e) {
        throw new ODataApplicationException("Invalid value: " + value + " for property: " + edmProperty.getName(),
                                            HttpStatusCode.INTERNAL_SERVER_ERROR.getStatusCode(),
                                            Locale.getDefault());
    }
}
 
开发者ID:wso2,项目名称:carbon-data,代码行数:28,代码来源:ODataAdapter.java

示例6: writeProperty

import org.apache.olingo.commons.api.edm.EdmProperty; //导入方法依赖的package包/类
protected void writeProperty(final ServiceMetadata metadata,
    final EdmProperty edmProperty, final Property property,
    final Set<List<String>> selectedPaths,
    final String xml10InvalidCharReplacement, final XMLStreamWriter writer)
    throws XMLStreamException, SerializerException {
  writer.writeStartElement(DATA, edmProperty.getName(), NS_DATA);
  if (property == null || property.isNull()) {
    if (edmProperty.isNullable()) {
      writer.writeAttribute(METADATA, NS_METADATA, Constants.ATTR_NULL, "true");
    } else {
      throw new SerializerException("Non-nullable property not present!",
          SerializerException.MessageKeys.MISSING_PROPERTY, edmProperty.getName());
    }
  } else {
    writePropertyValue(metadata, edmProperty, property, selectedPaths, xml10InvalidCharReplacement, writer);
  }
  writer.writeEndElement();
}
 
开发者ID:apache,项目名称:olingo-odata4,代码行数:19,代码来源:ODataXmlSerializer.java

示例7: primitivePropertyNull

import org.apache.olingo.commons.api.edm.EdmProperty; //导入方法依赖的package包/类
@Test(expected = SerializerException.class)
public void primitivePropertyNull() throws Exception {
  final EdmEntitySet edmEntitySet = entityContainer.getEntitySet("ESAllPrim");
  final EdmProperty edmProperty = (EdmProperty) edmEntitySet.getEntityType().getProperty("PropertyString");
  final Property property = new Property("Edm.String", edmProperty.getName(), ValueType.PRIMITIVE, null);
  serializer.primitive(metadata, (EdmPrimitiveType) edmProperty.getType(), property,
      PrimitiveSerializerOptions.with()
          .contextURL(ContextURL.with()
              .entitySet(edmEntitySet).keyPath("4242").navOrPropertyPath(edmProperty.getName())
              .build())
          .build());
}
 
开发者ID:apache,项目名称:olingo-odata4,代码行数:13,代码来源:ODataJsonSerializerTest.java

示例8: buildKeyPredicate

import org.apache.olingo.commons.api.edm.EdmProperty; //导入方法依赖的package包/类
@Override
public String buildKeyPredicate(final EdmEntityType edmEntityType, final Entity entity) throws SerializerException {
  StringBuilder result = new StringBuilder();
  final List<String> keyNames = edmEntityType.getKeyPredicateNames();
  boolean first = true;
  for (final String keyName : keyNames) {
    EdmKeyPropertyRef refType = edmEntityType.getKeyPropertyRef(keyName);
    if (first) {
      first = false;
    } else {
      result.append(',');
    }
    if (keyNames.size() > 1) {
      result.append(Encoder.encode(keyName)).append('=');
    }
    final EdmProperty edmProperty =  refType.getProperty();
    if (edmProperty == null) {
      throw new SerializerException("Property not found (possibly an alias): " + keyName,
          SerializerException.MessageKeys.MISSING_PROPERTY, keyName);
    }
    final EdmPrimitiveType type = (EdmPrimitiveType) edmProperty.getType();
    final Object propertyValue = findPropertyRefValue(entity, refType);
    try {
      final String value = type.toUriLiteral(
          type.valueToString(propertyValue,
              edmProperty.isNullable(), edmProperty.getMaxLength(),
              edmProperty.getPrecision(), edmProperty.getScale(), edmProperty.isUnicode()));
      result.append(Encoder.encode(value));
    } catch (final EdmPrimitiveTypeException e) {
      throw new SerializerException("Wrong key value!", e,
          SerializerException.MessageKeys.WRONG_PROPERTY_VALUE, edmProperty.getName(), 
          propertyValue != null ? propertyValue.toString(): null);
    }
  }
  return result.toString();
}
 
开发者ID:apache,项目名称:olingo-odata4,代码行数:37,代码来源:UriHelperImpl.java

示例9: writePropertyType

import org.apache.olingo.commons.api.edm.EdmProperty; //导入方法依赖的package包/类
private void writePropertyType(final EdmProperty edmProperty, JsonGenerator json)
    throws SerializerException, IOException {
  if (!isODataMetadataFull) {
    return;
  }
  String typeName = edmProperty.getName() + constants.getType();
  final EdmType type = edmProperty.getType();
  if (type.getKind() == EdmTypeKind.ENUM || type.getKind() == EdmTypeKind.DEFINITION) {
    if (edmProperty.isCollection()) {
      json.writeStringField(typeName, 
          "#Collection(" + type.getFullQualifiedName().getFullQualifiedNameAsString() + ")");
    } else {
      json.writeStringField(typeName, "#" + type.getFullQualifiedName().getFullQualifiedNameAsString());
    }
  } else if (edmProperty.isPrimitive()) {
    if (edmProperty.isCollection()) {
      json.writeStringField(typeName, "#Collection(" + type.getFullQualifiedName().getName() + ")");
    } else {
      // exclude the properties that can be heuristically determined
      if (type != EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.Boolean) &&
          type != EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.Double) &&
          type != EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.String)) {
        json.writeStringField(typeName, "#" + type.getFullQualifiedName().getName());                  
      }
    }
  } else if (type.getKind() == EdmTypeKind.COMPLEX) {
    // non-collection case written in writeComplex method directly.
    if (edmProperty.isCollection()) {
      json.writeStringField(typeName, 
          "#Collection(" + type.getFullQualifiedName().getFullQualifiedNameAsString() + ")");
    }
  } else {
    throw new SerializerException("Property type not yet supported!",
        SerializerException.MessageKeys.UNSUPPORTED_PROPERTY_TYPE, edmProperty.getName());
  }    
}
 
开发者ID:apache,项目名称:olingo-odata4,代码行数:37,代码来源:ODataJsonSerializer.java

示例10: writePropertyValue

import org.apache.olingo.commons.api.edm.EdmProperty; //导入方法依赖的package包/类
private void writePropertyValue(final ServiceMetadata metadata, final EdmProperty edmProperty,
    final Property property, final Set<List<String>> selectedPaths, final JsonGenerator json)
    throws IOException, SerializerException {
  final EdmType type = edmProperty.getType();
  try {
    if (edmProperty.isPrimitive()
        || type.getKind() == EdmTypeKind.ENUM || type.getKind() == EdmTypeKind.DEFINITION) {
      if (edmProperty.isCollection()) {
        writePrimitiveCollection((EdmPrimitiveType) type, property,
            edmProperty.isNullable(), edmProperty.getMaxLength(),
            edmProperty.getPrecision(), edmProperty.getScale(), edmProperty.isUnicode(), json);
      } else {
        writePrimitive((EdmPrimitiveType) type, property,
            edmProperty.isNullable(), edmProperty.getMaxLength(),
            edmProperty.getPrecision(), edmProperty.getScale(), edmProperty.isUnicode(), json);
      }
    } else if (property.isComplex()) {
      if (edmProperty.isCollection()) {
        writeComplexCollection(metadata, (EdmComplexType) type, property, selectedPaths, json);
      } else {
       writeComplex(metadata, (EdmComplexType) type, property, selectedPaths, json);
      }
    } else {
      throw new SerializerException("Property type not yet supported!",
          SerializerException.MessageKeys.UNSUPPORTED_PROPERTY_TYPE, edmProperty.getName());
    }
  } catch (final EdmPrimitiveTypeException e) {
    throw new SerializerException("Wrong value for property!", e,
        SerializerException.MessageKeys.WRONG_PROPERTY_VALUE,
        edmProperty.getName(), property.getValue().toString());
  }
}
 
开发者ID:apache,项目名称:olingo-odata4,代码行数:33,代码来源:ODataJsonSerializer.java

示例11: writePropertyValue

import org.apache.olingo.commons.api.edm.EdmProperty; //导入方法依赖的package包/类
private void writePropertyValue(final ServiceMetadata metadata, final EdmProperty edmProperty,
    final Property property, final Set<List<String>> selectedPaths, final JsonGenerator json)
    throws IOException, SerializerException {
  final EdmType type = edmProperty.getType();
  try {
    if (edmProperty.isPrimitive()
        || type.getKind() == EdmTypeKind.ENUM || type.getKind() == EdmTypeKind.DEFINITION) {
      if (edmProperty.isCollection()) {
        writePrimitiveCollection((EdmPrimitiveType) type, property,
            edmProperty.isNullable(), edmProperty.getMaxLength(),
            edmProperty.getPrecision(), edmProperty.getScale(), edmProperty.isUnicode(), json);
      } else {
        writePrimitive((EdmPrimitiveType) type, property,
            edmProperty.isNullable(), edmProperty.getMaxLength(),
            edmProperty.getPrecision(), edmProperty.getScale(), edmProperty.isUnicode(), json);
      }
    } else if (property.isComplex()) {
      if (edmProperty.isCollection()) {
        writeComplexCollection(metadata, (EdmComplexType) type, property, selectedPaths, json);
      } else {
        writeComplex(metadata, (EdmComplexType) type, property, selectedPaths, json);
      }
    } else {
      throw new SerializerException("Property type not yet supported!",
          SerializerException.MessageKeys.UNSUPPORTED_PROPERTY_TYPE, edmProperty.getName());
    }
  } catch (final EdmPrimitiveTypeException e) {
    throw new SerializerException("Wrong value for property!", e,
        SerializerException.MessageKeys.WRONG_PROPERTY_VALUE,
        edmProperty.getName(), property.getValue().toString());
  }
}
 
开发者ID:apache,项目名称:olingo-odata4,代码行数:33,代码来源:JsonDeltaSerializerWithNavigations.java

示例12: execute

import org.apache.olingo.commons.api.edm.EdmProperty; //导入方法依赖的package包/类
@Override
public void execute(ServiceHandler handler, ODataResponse response)
    throws ODataLibraryException, ODataApplicationException {

  EdmProperty edmProperty = getUriResourceProperty().getProperty();

  if (isGET()) {
    if (isPropertyStream()) {
      handler.read(DataRequest.this, new StreamResponse(getServiceMetaData(), response));
    } else {
      handler.read(DataRequest.this, buildResponse(response, edmProperty));
    }
  } else if (isPATCH()) {
    handler.updateProperty(DataRequest.this, getPropertyValueFromClient(edmProperty), false, true,
        getETag(), buildResponse(response, edmProperty));
  } else if (isPUT()) {
    if (isPropertyStream()) {
      handler.upsertStreamProperty(DataRequest.this, getETag(), request.getBody(),
          new NoContentResponse(getServiceMetaData(), response));
    } else {
      handler.updateProperty(DataRequest.this, getPropertyValueFromClient(edmProperty), false, false,
          getETag(), buildResponse(response, edmProperty));
    }
  } else if (isDELETE()) {
    if (isPropertyStream()) {
      handler.upsertStreamProperty(DataRequest.this, getETag(), null,
          new NoContentResponse(getServiceMetaData(), response));
    } else {
      Property property = new Property(edmProperty.getType().getFullQualifiedName()
          .getFullQualifiedNameAsString(), edmProperty.getName());
      handler.updateProperty(DataRequest.this, property, false, false, getETag(),
          buildResponse(response, edmProperty));
    }
  }
}
 
开发者ID:apache,项目名称:olingo-odata4,代码行数:36,代码来源:DataRequest.java

示例13: readPrimitiveOrValue

import org.apache.olingo.commons.api.edm.EdmProperty; //导入方法依赖的package包/类
private void readPrimitiveOrValue(ODataRequest request, ODataResponse response, UriInfo uriInfo,
		ContentType responseFormat, Boolean isValue) throws ODataApplicationException, SerializerException {
	// 1. Retrieve info from URI
	// 1.1. retrieve the info about the requested entity set
	List<UriResource> resourceParts = uriInfo.getUriResourceParts();
	UriResourceEntitySet uriEntityset = (UriResourceEntitySet) resourceParts.get(0);
	EdmEntitySet edmEntitySet = uriEntityset.getEntitySet();

	// 1.2. retrieve the requested (Edm) property
	// the second to last segment is the Property, if the last is $value
	UriResource lastResourcePart = resourceParts.get(resourceParts.size() - 1);
	int minSize = 1;
	if (lastResourcePart.getSegmentValue().equals("$value")) {
		minSize++;
	}
	UriResourceProperty uriProperty = (UriResourceProperty) resourceParts.get(resourceParts.size() - minSize);
	EdmProperty edmProperty = uriProperty.getProperty();
	String edmPropertyName = edmProperty.getName();
	EdmPrimitiveType edmPropertyType = (EdmPrimitiveType) edmProperty.getType();

	// 2. retrieve data from backend
	// 2.1. retrieve the entity data, for which the property has to be read
	Entity entity = null;
	try {
		entity = SparqlBaseCommand.readEntity(rdfEdmProvider, uriInfo, UriType.URI5);
	} catch (EdmException | OData2SparqlException | ODataException e) {
		throw new ODataApplicationException(e.getMessage(), HttpStatusCode.INTERNAL_SERVER_ERROR.getStatusCode(),
				Locale.ENGLISH);
	}
	if (entity == null) {
		throw new ODataApplicationException("Property not found", HttpStatusCode.NOT_FOUND.getStatusCode(),
				Locale.ENGLISH);
	}
	// 2.2. retrieve the property data from the entity
	Property property = entity.getProperty(edmPropertyName);
	if (property == null) {
		throw new ODataApplicationException("Property not found", HttpStatusCode.NOT_FOUND.getStatusCode(),
				Locale.ENGLISH);
	}

	// 3. serialize
	if (isValue) {
		writePropertyValue(response, property);
	} else {
		writeProperty(request, response, responseFormat, edmEntitySet, edmPropertyName, edmPropertyType, property);
	}

}
 
开发者ID:peterjohnlawrence,项目名称:com.inova8.odata2sparql.v4,代码行数:49,代码来源:SparqlPrimitiveValueProcessor.java

示例14: readPrimitive

import org.apache.olingo.commons.api.edm.EdmProperty; //导入方法依赖的package包/类
public void readPrimitive(ODataRequest request, ODataResponse response, 
							UriInfo uriInfo, ContentType responseFormat) 
							throws ODataApplicationException, SerializerException {

	// 1. Retrieve info from URI
	// 1.1. retrieve the info about the requested entity set 
	List<UriResource> resourceParts = uriInfo.getUriResourceParts();
	// Note: only in our example we can rely that the first segment is the EntitySet
	UriResourceEntitySet uriEntityset = (UriResourceEntitySet) resourceParts.get(0); 
	EdmEntitySet edmEntitySet = uriEntityset.getEntitySet();
	// the key for the entity
	List<UriParameter> keyPredicates = uriEntityset.getKeyPredicates();
	
	// 1.2. retrieve the requested (Edm) property 
	UriResourceProperty uriProperty = (UriResourceProperty)resourceParts.get(resourceParts.size() -1); // the last segment is the Property
	EdmProperty edmProperty = uriProperty.getProperty();
	String edmPropertyName = edmProperty.getName();
	// in our example, we know we have only primitive types in our model
	EdmPrimitiveType edmPropertyType = (EdmPrimitiveType) edmProperty.getType(); 
	
	
	// 2. retrieve data from backend
	// 2.1. retrieve the entity data, for which the property has to be read
	Entity entity = storage.readEntityData(edmEntitySet, keyPredicates);
	if (entity == null) { // Bad request
		throw new ODataApplicationException("Entity not found",
						HttpStatusCode.NOT_FOUND.getStatusCode(), Locale.ENGLISH);
	} 
	
	// 2.2. retrieve the property data from the entity
	Property property = entity.getProperty(edmPropertyName);
	if (property == null) {
		throw new ODataApplicationException("Property not found",
             HttpStatusCode.NOT_FOUND.getStatusCode(), Locale.ENGLISH);
	}		
	
	// 3. serialize
	Object value = property.getValue();
	if (value != null) {
		// 3.1. configure the serializer
		ODataSerializer serializer = odata.createSerializer(responseFormat);
		
		ContextURL contextUrl = ContextURL.with().entitySet(edmEntitySet).navOrPropertyPath(edmPropertyName).build();
		PrimitiveSerializerOptions options = PrimitiveSerializerOptions.with().contextURL(contextUrl).build();
		// 3.2. serialize
		SerializerResult result = serializer.primitive(serviceMetadata, edmPropertyType, property, options);
		
		//4. configure the response object
		response.setContent(result.getContent());
		response.setStatusCode(HttpStatusCode.OK.getStatusCode());
		response.setHeader(HttpHeader.CONTENT_TYPE, responseFormat.toContentTypeString());		
	}else{
		// in case there's no value for the property, we can skip the serialization
		response.setStatusCode(HttpStatusCode.NO_CONTENT.getStatusCode());
	}
}
 
开发者ID:apache,项目名称:olingo-odata4,代码行数:57,代码来源:DemoPrimitiveProcessor.java

示例15: writePropertyValue

import org.apache.olingo.commons.api.edm.EdmProperty; //导入方法依赖的package包/类
private void writePropertyValue(final ServiceMetadata metadata,
    final EdmProperty edmProperty, final Property property,
    final Set<List<String>> selectedPaths,
    final String xml10InvalidCharReplacement, final XMLStreamWriter writer)
    throws XMLStreamException, SerializerException {
  try {
    if (edmProperty.isPrimitive()
        || edmProperty.getType().getKind() == EdmTypeKind.ENUM
        || edmProperty.getType().getKind() == EdmTypeKind.DEFINITION) {
      if (edmProperty.isCollection()) {
        writer.writeAttribute(METADATA, NS_METADATA, Constants.ATTR_TYPE,
            edmProperty.isPrimitive() ?
                "#Collection(" + edmProperty.getType().getName() + ")" :
                collectionType(edmProperty.getType()));
        writePrimitiveCollection((EdmPrimitiveType) edmProperty.getType(), property,
            edmProperty.isNullable(), edmProperty.getMaxLength(),
            edmProperty.getPrecision(), edmProperty.getScale(), edmProperty.isUnicode(),
            xml10InvalidCharReplacement,writer);
      } else {
        writePrimitive((EdmPrimitiveType) edmProperty.getType(), property,
            edmProperty.isNullable(), edmProperty.getMaxLength(),
            edmProperty.getPrecision(), edmProperty.getScale(), edmProperty.isUnicode(),
            xml10InvalidCharReplacement, writer);
      }
    } else if (property.isComplex()) {
      if (edmProperty.isCollection()) {
        writer.writeAttribute(METADATA, NS_METADATA, Constants.ATTR_TYPE, collectionType(edmProperty.getType()));
        writeComplexCollection(metadata, (EdmComplexType) edmProperty.getType(), property, selectedPaths, 
            xml10InvalidCharReplacement, writer);
      } else {
          writeComplex(metadata, edmProperty, property, selectedPaths, xml10InvalidCharReplacement, writer);
      }
    } else {
      throw new SerializerException("Property type not yet supported!",
          SerializerException.MessageKeys.UNSUPPORTED_PROPERTY_TYPE, edmProperty.getName());
    }
  } catch (final EdmPrimitiveTypeException e) {
    throw new SerializerException("Wrong value for property!", e,
        SerializerException.MessageKeys.WRONG_PROPERTY_VALUE,
        edmProperty.getName(), property.getValue().toString());
  }
}
 
开发者ID:apache,项目名称:olingo-odata4,代码行数:43,代码来源:ODataXmlSerializer.java


注:本文中的org.apache.olingo.commons.api.edm.EdmProperty.getName方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。