本文整理汇总了Java中org.apache.olingo.commons.api.edm.EdmEntityType.getPropertyNames方法的典型用法代码示例。如果您正苦于以下问题:Java EdmEntityType.getPropertyNames方法的具体用法?Java EdmEntityType.getPropertyNames怎么用?Java EdmEntityType.getPropertyNames使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.apache.olingo.commons.api.edm.EdmEntityType
的用法示例。
在下文中一共展示了EdmEntityType.getPropertyNames方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: consumeEntityProperties
import org.apache.olingo.commons.api.edm.EdmEntityType; //导入方法依赖的package包/类
private void consumeEntityProperties(final EdmEntityType edmEntityType, final ObjectNode node,
final Entity entity) throws DeserializerException {
List<String> propertyNames = edmEntityType.getPropertyNames();
for (String propertyName : propertyNames) {
JsonNode jsonNode = node.get(propertyName);
if (jsonNode != null) {
EdmProperty edmProperty = (EdmProperty) edmEntityType.getProperty(propertyName);
if (jsonNode.isNull() && !edmProperty.isNullable()) {
throw new DeserializerException("Property: " + propertyName + " must not be null.",
DeserializerException.MessageKeys.INVALID_NULL_PROPERTY, propertyName);
}
Property property = consumePropertyNode(edmProperty.getName(), edmProperty.getType(),
edmProperty.isCollection(), edmProperty.isNullable(), edmProperty.getMaxLength(),
edmProperty.getPrecision(), edmProperty.getScale(), edmProperty.isUnicode(), edmProperty.getMapping(),
jsonNode);
entity.addProperty(property);
node.remove(propertyName);
}
}
}
示例2: update
import org.apache.olingo.commons.api.edm.EdmEntityType; //导入方法依赖的package包/类
public void update(final String rawBaseUri, final EdmEntitySet edmEntitySet, Entity entity,
final Entity changedEntity, final boolean patch, final boolean isInsert)
throws DataProviderException {
final EdmEntityType entityType = edmEntitySet.getEntityType();
final List<String> keyNames = entityType.getKeyPredicateNames();
// Update Properties
for (final String propertyName : entityType.getPropertyNames()) {
if (!keyNames.contains(propertyName)) {
updateProperty(entityType.getStructuralProperty(propertyName),
entity.getProperty(propertyName), changedEntity.getProperty(propertyName), patch);
}
}
// For insert operations collection navigation property bind operations and deep insert
// operations can be combined.
// In this case, the bind operations MUST appear before the deep insert operations in the
// payload.
// => Apply bindings first
final boolean navigationBindingsAvailable = !changedEntity.getNavigationBindings().isEmpty();
if (navigationBindingsAvailable) {
applyNavigationBinding(rawBaseUri, edmEntitySet, entity,
changedEntity.getNavigationBindings());
}
// Deep insert (only if not an update)
if (isInsert) {
handleDeepInsert(rawBaseUri, edmEntitySet, entity, changedEntity);
} else {
handleDeleteSingleNavigationProperties(edmEntitySet, entity, changedEntity);
}
// Update the ETag if present.
updateETag(entity);
}
示例3: update
import org.apache.olingo.commons.api.edm.EdmEntityType; //导入方法依赖的package包/类
public void update(final String rawBaseUri, final EdmEntitySet edmEntitySet, Entity entity,
final Entity changedEntity, final boolean patch, final boolean isInsert) throws DataProviderException {
final EdmEntityType entityType = changedEntity.getType()!=null ?
edm.getEntityType(new FullQualifiedName(changedEntity.getType())):edmEntitySet.getEntityType();
final List<String> keyNames = entityType.getKeyPredicateNames();
// Update Properties
for (final String propertyName : entityType.getPropertyNames()) {
if (!keyNames.contains(propertyName)) {
updateProperty(entityType.getStructuralProperty(propertyName),
entity.getProperty(propertyName),
changedEntity.getProperty(propertyName),
patch);
}
}
// For insert operations collection navigation property bind operations and deep insert operations can be combined.
// In this case, the bind operations MUST appear before the deep insert operations in the payload.
// => Apply bindings first
final boolean navigationBindingsAvailable = !changedEntity.getNavigationBindings().isEmpty();
if (navigationBindingsAvailable) {
applyNavigationBinding(rawBaseUri, edmEntitySet, entity, changedEntity.getNavigationBindings());
}
// Deep insert (only if not an update)
if (isInsert) {
handleDeepInsert(rawBaseUri, edmEntitySet, entity, changedEntity);
} else {
handleDeleteSingleNavigationProperties(edmEntitySet, entity, changedEntity);
}
// Update the ETag if present.
updateETag(entity);
}
示例4: updateEntityWithETagMatched
import org.apache.olingo.commons.api.edm.EdmEntityType; //导入方法依赖的package包/类
/**
* This method updates the entity to the table by invoking ODataDataHandler updateEntityInTable method.
*
* @param edmEntityType EdmEntityType
* @param entity entity with changes
* @param existingEntity existing entity
* @param merge PUT/PATCH
* @throws ODataApplicationException
* @throws DataServiceFault
* @see ODataDataHandler#updateEntityInTableTransactional(String, ODataEntry, ODataEntry)
*/
private boolean updateEntityWithETagMatched(EdmEntityType edmEntityType, Entity entity, Entity existingEntity,
boolean merge) throws ODataApplicationException, DataServiceFault {
/* loop over all properties and replace the values with the values of the given payload
Note: ignoring ComplexType, as we don't have it in wso2dss oData model */
List<Property> oldProperties = existingEntity.getProperties();
ODataEntry newProperties = new ODataEntry();
Map<String, EdmProperty> propertyMap = new HashMap<>();
for (String property : edmEntityType.getPropertyNames()) {
Property updateProperty = entity.getProperty(property);
EdmProperty propertyType = (EdmProperty) edmEntityType.getProperty(property);
if (isKey(edmEntityType, property)) {
propertyMap.put(property, (EdmProperty) edmEntityType.getProperty(property));
continue;
}
// the request payload might not consider ALL properties, so it can be null
if (updateProperty == null) {
// if a property has NOT been added to the request payload
// depending on the HttpMethod, our behavior is different
if (merge) {
// as of the OData spec, in case of PATCH, the existing property is not touched
propertyMap.put(property, (EdmProperty) edmEntityType.getProperty(property));
continue;
} else {
// as of the OData spec, in case of PUT, the existing property is set to null (or to default value)
propertyMap.put(property, (EdmProperty) edmEntityType.getProperty(property));
newProperties.addValue(property, null);
continue;
}
}
propertyMap.put(property, (EdmProperty) edmEntityType.getProperty(property));
newProperties.addValue(property, readPrimitiveValueInString(propertyType, updateProperty.getValue()));
}
return this.dataHandler.updateEntityInTableTransactional(edmEntityType.getName(),
wrapPropertiesToDataEntry(edmEntityType, oldProperties,
propertyMap), newProperties);
}
示例5: updateEntity
import org.apache.olingo.commons.api.edm.EdmEntityType; //导入方法依赖的package包/类
/**
* This method updates entity in tables where the request doesn't specify the odata e-tag.
*
* @param edmEntityType Entity type
* @param entity Entity
* @param keys Keys
* @param merge Merge
* @throws DataServiceFault
* @throws ODataApplicationException
*/
private void updateEntity(EdmEntityType edmEntityType, Entity entity, List<UriParameter> keys, boolean merge)
throws DataServiceFault, ODataApplicationException {
ODataEntry entry = new ODataEntry();
for (UriParameter key : keys) {
String value = key.getText();
if (value.startsWith("'") && value.endsWith("'")) {
value = value.substring(1, value.length() - 1);
}
entry.addValue(key.getName(), value);
}
for (String property : edmEntityType.getPropertyNames()) {
Property updateProperty = entity.getProperty(property);
if (isKey(edmEntityType, property)) {
continue;
}
// the request payload might not consider ALL properties, so it can be null
if (updateProperty == null) {
// if a property has NOT been added to the request payload
// depending on the HttpMethod, our behavior is different
if (merge) {
// as of the OData spec, in case of PATCH, the existing property is not touched
continue;
} else {
// as of the OData spec, in case of PUT, the existing property is set to null (or to default value)
entry.addValue(property, null);
continue;
}
}
EdmProperty propertyType = (EdmProperty) edmEntityType.getProperty(property);
entry.addValue(property, readPrimitiveValueInString(propertyType, updateProperty.getValue()));
}
this.dataHandler.updateEntityInTable(edmEntityType.getName(), entry);
}