本文整理汇总了Java中org.odata4j.edm.EdmProperty.getType方法的典型用法代码示例。如果您正苦于以下问题:Java EdmProperty.getType方法的具体用法?Java EdmProperty.getType怎么用?Java EdmProperty.getType使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.odata4j.edm.EdmProperty
的用法示例。
在下文中一共展示了EdmProperty.getType方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: createPropWithDefaultValue
import org.odata4j.edm.EdmProperty; //导入方法依赖的package包/类
private OProperty<?> createPropWithDefaultValue(EdmProperty prop) {
String defaultValue = prop.getDefaultValue();
EdmSimpleType<?> type = (EdmSimpleType<?>) prop.getType();
// Trying to re-use the JsonTypeConverter that will convert string to
// corresponding types, the JsonTokenType is a required parameter, just
// fake it here.
JsonTokenType jsonTokenType = JsonTokenType.STRING;
if (type == EdmSimpleType.BOOLEAN) {
jsonTokenType = JsonTokenType.TRUE;
}
// The default value should match the data type, if it is a number, then it should not have () to enclose them.
if (type != null && type == EdmSimpleType.INT16 || type == EdmSimpleType.INT32 || type == EdmSimpleType.INT64
|| type == EdmSimpleType.SINGLE || type == EdmSimpleType.DOUBLE || type == EdmSimpleType.DECIMAL) {
if (defaultValue != null && defaultValue.length() > 0) {
if (defaultValue.startsWith("(") && defaultValue.endsWith(")")) {
defaultValue = defaultValue.replace("(", "").replace(")", "");
}
}
}
return JsonTypeConverter.parse(prop.getName(), type, defaultValue, jsonTokenType);
}
示例2: getComplexTypePropList
import org.odata4j.edm.EdmProperty; //导入方法依赖的package包/类
/**
* ComplexType型のプロパティをOPropertyの配列に変換する.
* @param metadata スキーマ定義
* @param prop ComplexType型のプロパティ
* @param value ComplexType型の値
* @return OPropertyの配列
*/
@SuppressWarnings("unchecked")
protected List<OProperty<?>> getComplexTypePropList(EdmDataServices metadata,
EdmProperty prop,
Object value) {
if (value == null) {
return null;
}
List<OProperty<?>> props = new ArrayList<OProperty<?>>();
// スキーマ定義からComplexType定義を取得する
EdmComplexType edmComplexType = metadata.findEdmComplexType(prop.getType().getFullyQualifiedTypeName());
HashMap<String, Object> valMap = (HashMap<String, Object>) value;
for (EdmProperty propChild : edmComplexType.getDeclaredProperties()) {
String typeName = propChild.getDeclaringType().getName();
Object valChild = valMap.get(resolveComplexTypeAlias(propChild.getName(), typeName));
EdmType edmType = propChild.getType();
CollectionKind ck = propChild.getCollectionKind();
if (edmType.isSimple()) {
// 非予約項目の処理
if (ck.equals(CollectionKind.List)) {
// 配列要素の場合
addSimpleListProperty(props, propChild, valChild, edmType);
} else {
// シンプル要素の場合
addSimpleTypeProperty(props, propChild, valChild, edmType);
}
} else {
if (ck.equals(CollectionKind.List)) {
// 配列要素の場合
addComplexListProperty(metadata, props, propChild, valChild, edmType);
} else {
props.add(createComplexTypeProperty(metadata, propChild, valChild));
}
}
}
return props;
}
示例3: getMediaLinkEntryForUpdateOrDelete
import org.odata4j.edm.EdmProperty; //导入方法依赖的package包/类
@Override
public OEntity getMediaLinkEntryForUpdateOrDelete(ODataContext odataContext, EdmEntitySet entitySet, OEntityKey key, HttpHeaders httpHeaders) {
ArrayList<OProperty<?>> props = new ArrayList<OProperty<?>>();
Enumerable<EdmProperty> properties = entitySet.getType().getProperties();
// ignore fields from slug
for (EdmProperty edmProperty : properties) {
EdmType type = edmProperty.getType();
// check if the property is not null-able, if so set the default value while persisting the entity
if (type.equals(EdmSimpleType.STREAM)) {
props.add(OProperties.simple(edmProperty.getName(), defaultValuesMap.get(type.getFullyQualifiedTypeName())));
}
}
return OEntities.create(entitySet, key, props, Collections.<OLink> emptyList());
}
示例4: getNavProperty
import org.odata4j.edm.EdmProperty; //导入方法依赖的package包/类
@Override
public BaseResponse getNavProperty(ODataContext context, String entitySetName, OEntityKey entityKey, String navProp, QueryInfo queryInfo) {
RequestContext rc = RequestContext.newBuilder(RequestType.GetNavProperty)
.entitySetName(entitySetName)
.entitySet(getMetadata().getEdmEntitySet(entitySetName))
.entityKey(entityKey)
.navPropName(navProp)
.queryInfo(queryInfo)
.pathHelper(new PropertyPathHelper(queryInfo))
.odataContext(context)
.build();
EdmNavigationProperty navProperty = rc.getEntitySet().getType().findNavigationProperty(navProp);
if (navProperty != null) {
return getNavProperty(navProperty, rc);
}
// not a NavigationProperty:
EdmProperty edmProperty = rc.getEntitySet().getType().findProperty(navProp);
if (edmProperty == null)
throw new NotFoundException("Property " + navProp + " is not found");
// currently only simple types are supported
EdmType edmType = edmProperty.getType();
if (!edmType.isSimple())
throw new NotImplementedException("Only simple types are supported. Property type is '" + edmType.getFullyQualifiedTypeName() + "'");
// get property value...
InMemoryEntityInfo<?> entityInfo = eis.get(entitySetName);
Object target = getEntityPojo(rc);
Object propertyValue = entityInfo.properties.getPropertyValue(target, navProp);
// ... and create OProperty
OProperty<?> property = OProperties.simple(navProp, (EdmSimpleType<?>) edmType, propertyValue);
return Responses.property(property);
}
示例5: generateDefautlProperty
import org.odata4j.edm.EdmProperty; //导入方法依赖的package包/类
/**
* Entity Data Modelのプロパティスキーマ情報からODataプロパティのデフォルト値インスタンスを生成する.
* @param ep Entity Data Modelのプロパティ
* @return デフォルト値が入ったODataプロパティのインスタンス
*/
private OProperty<?> generateDefautlProperty(EdmProperty ep) {
EdmType edmType = ep.getType();
OProperty<?> op = null;
// スキーマからDefault値を取得する。
String defaultValue = ep.getDefaultValue();
String propName = ep.getName();
// Default値が特定の関数である場合は、値を生成する。
if (EdmSimpleType.STRING.equals(edmType)) {
// Typeが文字列でDefault値がCELLID()のとき。
if (defaultValue.equals("UUID()")) {
// Typeが文字列でDefault値がUUID()のとき。
String newUuid = UUID.randomUUID().toString().replaceAll("-", "");
op = OProperties.string(propName, newUuid);
} else if (defaultValue.equals("null")) {
// Typeが文字列でDefault値がnullのとき。
op = OProperties.null_(propName, EdmSimpleType.STRING);
} else {
// Typeが文字列でDefault値その他の値のとき。
op = OProperties.string(propName, defaultValue);
}
} else if (EdmSimpleType.DATETIME.equals(edmType)) {
// Edm.DateTime型:
if (null == defaultValue || defaultValue.equals("null")) {
// defaultValueがnullまたは"null"であれば、nullを設定する
op = OProperties.null_(propName, EdmSimpleType.DATETIME);
} else {
// -"\/Date(...)\/"の場合は設定値をデフォルト値にする
// -"SYSUTCDATETIME()"の場合は現在時刻をデフォルト値にする
// TODO この実装では Atom 出力時にDefault TimeZoneで出力されてしまう
op = OProperties.datetime(propName,
new Date(getTimeMillis(defaultValue)));
}
} else if (EdmSimpleType.SINGLE.equals(edmType)) {
// TypeがSINGLEでDefault値があるとき。
op = OProperties.single(propName, Float.valueOf(defaultValue));
} else if (EdmSimpleType.INT64.equals(edmType)) {
// TypeがINT64でDefault値があるとき。
op = OProperties.int64(propName, Long.valueOf(defaultValue));
} else if (EdmSimpleType.INT32.equals(edmType)) {
// TypeがINT32でDefault値があるとき。
op = OProperties.int32(propName, Integer.valueOf(defaultValue));
} else if (EdmSimpleType.BOOLEAN.equals(edmType)) {
// TypeがBooleanでDefault値があるとき。
op = OProperties.boolean_(propName, Boolean.parseBoolean(defaultValue));
} else if (EdmSimpleType.DOUBLE.equals(edmType)) {
// TypeがDoubleでDefault値があるとき。
op = OProperties.double_(propName, Double.parseDouble(defaultValue));
}
return op;
}
示例6: parseProperties
import org.odata4j.edm.EdmProperty; //导入方法依赖的package包/类
public static Iterable<OProperty<?>> parseProperties(XMLEventReader2 reader, StartElement2 propertiesElement, EdmDataServices metadata, EdmStructuralType structuralType) {
List<OProperty<?>> rt = new ArrayList<OProperty<?>>();
while (reader.hasNext()) {
XMLEvent2 event = reader.nextEvent();
if (event.isEndElement() && event.asEndElement().getName().equals(propertiesElement.getName())) {
return rt;
}
if (event.isStartElement() && event.asStartElement().getName().getNamespaceUri().equals(NS_DATASERVICES)) {
String name = event.asStartElement().getName().getLocalPart();
Attribute2 typeAttribute = event.asStartElement().getAttributeByName(M_TYPE);
Attribute2 nullAttribute = event.asStartElement().getAttributeByName(M_NULL);
boolean isNull = nullAttribute != null && "true".equals(nullAttribute.getValue());
OProperty<?> op = null;
EdmType et = null;
if (typeAttribute != null) {
String type = typeAttribute.getValue();
et = metadata.resolveType(type);
if (et == null) {
// property arrived with an unknown type
throw new RuntimeException("unknown property type: " + type);
}
} else {
EdmProperty property = (EdmProperty) structuralType.findProperty(name);
if (property != null)
et = property.getType();
else
et = EdmSimpleType.STRING; // we must support open types
}
if (et != null && (!et.isSimple())) {
if (et instanceof EdmCollectionType) {
OCollection colV = AtomCollectionFormatParser.parse(reader, event.asStartElement(), metadata, ((EdmCollectionType) et).getItemType());
op = OProperties.collection(name, (EdmCollectionType) et, colV);
} else {
EdmStructuralType est = (EdmStructuralType) et;
op = OProperties.complex(name, (EdmComplexType) et, isNull ? null : Enumerable.create(parseProperties(reader, event.asStartElement(), metadata, est)).toList());
}
} else {
op = OProperties.parseSimple(name, (EdmSimpleType<?>) et, isNull ? null : reader.getElementText());
}
rt.add(op);
}
}
throw new RuntimeException();
}