本文整理汇总了Java中org.odata4j.edm.EdmProperty.getDefaultValue方法的典型用法代码示例。如果您正苦于以下问题:Java EdmProperty.getDefaultValue方法的具体用法?Java EdmProperty.getDefaultValue怎么用?Java EdmProperty.getDefaultValue使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.odata4j.edm.EdmProperty
的用法示例。
在下文中一共展示了EdmProperty.getDefaultValue方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: setDefaultValue
import org.odata4j.edm.EdmProperty; //导入方法依赖的package包/类
/**
* デフォルト値の設定.
* @param ep EdmProperty
* @param propName プロパティ名
* @param op OProperty
* @param metadata EdmDataServicesスキーマ定義
* @return Oproperty
*/
protected OProperty<?> setDefaultValue(EdmProperty ep, String propName, OProperty<?> op, EdmDataServices metadata) {
// スキーマ上定義されているのに入力の存在しない Property
// デフォルト値が定義されていればそれをいれる。
// ComplexTypeそのものの項目、または配列の項目であればデフォルト値は設定しない
NamespacedAnnotation<?> annotation = ep.findAnnotation(Common.P_NAMESPACE.getUri(),
Property.P_IS_DECLARED.getName());
if (annotation != null && !(Boolean.valueOf(annotation.getValue().toString()))) {
return null;
}
if (ep.getType().isSimple() && !ep.getCollectionKind().equals(CollectionKind.List)
&& ep.getDefaultValue() != null) {
op = generateDefautlProperty(ep);
} else if (ep.isNullable()) {
// nullableがtrueであれば。nullの入ったプロパティ
// TODO これでいいのか?
op = OProperties.null_(propName, ep.getType().getFullyQualifiedTypeName());
} else {
// nullableがfalseであれば。エラーとする
throw PersoniumCoreException.OData.INPUT_REQUIRED_FIELD_MISSING.params(propName);
}
return op;
}
示例2: 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);
}
示例3: AppendDefaultValueForNullField
import org.odata4j.edm.EdmProperty; //导入方法依赖的package包/类
private void AppendDefaultValueForNullField(EdmEntitySet ees) {
Enumerable<OProperty<?>> propsEnum = Enumerable.create(props);
EdmEntityType eType = ees.getType();
Iterator<EdmProperty> mdProps = eType.getProperties().iterator();
while (mdProps.hasNext()) {
EdmProperty prop = mdProps.next();
// this prop has default value, user does not set it in the request and it is simple type, populate with default value
if (prop.getDefaultValue() != null && prop.getType().isSimple() && propsEnum.firstOrNull(OPredicates.propertyNameEquals(prop.getName())) == null) {
OProperty<?> newProp = createPropWithDefaultValue(prop);
super.properties(this, newProp);
}
}
}
示例4: 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;
}
示例5: resolvePropertyVariable
import org.odata4j.edm.EdmProperty; //导入方法依赖的package包/类
private Object resolvePropertyVariable(EdmProperty prop, PropertyPath path) {
if (path.getNComponents() == 1) {
String name = path.getLastComponent();
if (Edm.Property.DefaultValue.equals(name)) {
return prop.getDefaultValue();
} else if (Edm.Property.CollectionKind.equals(name)) {
return prop.getCollectionKind().toString();
} else if (Edm.Property.EntityTypeName.equals(name)) {
return prop.getDeclaringType().getName();
} else if (Edm.Property.FixedLength.equals(name)) {
return prop.getFixedLength() != null ? prop.getFixedLength().toString() : null;
} else if (Edm.Property.MaxLength.equals(name)) {
return prop.getMaxLength() != null ? prop.getMaxLength().toString() : null;
} else if (Edm.Property.Name.equals(name)) {
return prop.getName();
} else if (Edm.Property.Namespace.equals(name)) {
return prop.getDeclaringType().getNamespace();
} else if (Edm.Property.Nullable.equals(name)) {
return prop.isNullable() ? "true" : "false";
} else if (Edm.Property.Type.equals(name)) {
return prop.getType().getFullyQualifiedTypeName();
} else if (Edm.Property.Precision.equals(name)) {
return prop.getPrecision() == null ? null : prop.getPrecision().toString();
} else if (Edm.Property.Scale.equals(name)) {
return prop.getScale() == null ? null : prop.getScale().toString();
} else if (decorator != null) {
try {
return decorator.resolvePropertyProperty(prop, path);
} catch (IllegalArgumentException e) {
throw new RuntimeException("EdmProperty property path " + path + " not found");
}
} else {
throw new RuntimeException("EdmProperty property " + name + " not found");
}
} else {
String navProp = path.getFirstComponent();
// --to 1 props only
// TODO: class maybe
throw new RuntimeException("EdmProperty navigation property " + navProp + " not found or not supported");
}
}
示例6: getProperty
import org.odata4j.edm.EdmProperty; //导入方法依赖的package包/类
private OEntity getProperty(EdmStructuralType queryType, EdmStructuralType et, EdmProperty p, Context c) {
List<OProperty<?>> props = new ArrayList<OProperty<?>>();
if (c.pathHelper.isSelected(Edm.Property.Namespace)) {
props.add(OProperties.string(Edm.Property.Namespace, et.getNamespace()));
}
if (c.pathHelper.isSelected(Edm.Property.EntityTypeName)) {
props.add(OProperties.string(Edm.Property.EntityTypeName, et.getName()));
}
if (c.pathHelper.isSelected(Edm.Property.Name)) {
props.add(OProperties.string(Edm.Property.Name, p.getName()));
}
if (c.pathHelper.isSelected(Edm.Property.Type)) {
props.add(OProperties.string(Edm.Property.Type, p.getType().getFullyQualifiedTypeName()));
}
if (c.pathHelper.isSelected(Edm.Property.Nullable)) {
props.add(OProperties.boolean_(Edm.Property.Nullable, p.isNullable()));
}
if (p.getDefaultValue() != null && c.pathHelper.isSelected(Edm.Property.DefaultValue)) {
props.add(OProperties.string(Edm.Property.DefaultValue, p.getDefaultValue()));
}
if (p.getMaxLength() != null && c.pathHelper.isSelected(Edm.Property.MaxLength)) {
props.add(OProperties.int32(Edm.Property.MaxLength, p.getMaxLength()));
}
if (p.getFixedLength() != null && c.pathHelper.isSelected(Edm.Property.FixedLength)) {
props.add(OProperties.boolean_(Edm.Property.FixedLength, p.getFixedLength()));
}
if (p.getPrecision() != null && c.pathHelper.isSelected(Edm.Property.Precision)) {
props.add(OProperties.int32(Edm.Property.Precision, p.getPrecision()));
}
if (p.getScale() != null && c.pathHelper.isSelected(Edm.Property.Scale)) {
props.add(OProperties.int32(Edm.Property.Scale, p.getScale()));
}
if (p.getUnicode() != null && c.pathHelper.isSelected(Edm.Property.Unicode)) {
props.add(OProperties.boolean_(Edm.Property.Unicode, p.getUnicode()));
}
// TODO: collation
// TODO: ConcurrencyMode
if (p.getCollectionKind() != CollectionKind.NONE) {
props.add(OProperties.string(Edm.Property.CollectionKind, p.getCollectionKind().toString()));
}
this.addDocumenation(c, p, props);
addAnnotationProperties(c, p, props);
EdmEntitySet entitySet = edm.findEdmEntitySet(Edm.EntitySets.Properties);
if (this.decorator != null) {
this.decorator.decorateEntity(entitySet, p, queryType, props, c.flatten, c.locale, c.queryInfo != null ? c.queryInfo.customOptions : null);
}
return OEntities.create(entitySet,
OEntityKey.create(Edm.Property.Namespace, et.getNamespace(), Edm.Property.EntityTypeName, et.getName(), Edm.Property.Name, p.getName()),
props,
Collections.<OLink> emptyList());
}
示例7: writeProperties
import org.odata4j.edm.EdmProperty; //导入方法依赖的package包/类
private static void writeProperties(Iterable<EdmProperty> properties, XMLWriter2 writer) {
for (EdmProperty prop : properties) {
writer.startElement(new QName2("Property"));
writer.writeAttribute("Name", prop.getName());
writer.writeAttribute("Type", prop.getType().getFullyQualifiedTypeName());
writer.writeAttribute("Nullable", Boolean.toString(prop.isNullable()));
if (prop.getDefaultValue() != null) {
writer.writeAttribute("DefaultValue", prop.getDefaultValue());
}
if (prop.getMaxLength() != null) {
writer.writeAttribute("MaxLength", Integer.toString(prop.getMaxLength()));
}
if (prop.getFixedLength() != null) {
writer.writeAttribute("FixedLength", Boolean.toString(prop.getFixedLength()));
}
if (!prop.getCollectionKind().equals(CollectionKind.NONE)) {
writer.writeAttribute("CollectionKind", prop.getCollectionKind().toString());
}
if (prop.getPrecision() != null) {
writer.writeAttribute("Precision", Integer.toString(prop.getPrecision()));
}
if (prop.getScale() != null) {
writer.writeAttribute("Scale", Integer.toString(prop.getScale()));
}
if (prop.getCollation() != null) {
writer.writeAttribute("Collation", prop.getCollation());
}
if (prop.getUnicode() != null) {
writer.writeAttribute("Unicode", Boolean.toString(prop.getUnicode()));
}
if (prop.getConcurrencyMode() != null) {
writer.writeAttribute("ConcurrencyMode", prop.getConcurrencyMode());
}
if (prop.getMimeType() != null) {
writer.writeAttribute(new QName2(m, "MimeType", "m"), prop.getMimeType());
}
if (prop.getFcTargetPath() != null) {
writer.writeAttribute(new QName2(m, "FC_TargetPath", "m"), prop.getFcTargetPath());
}
if (prop.getFcKeepInContent() != null) {
writer.writeAttribute(new QName2(m, "FC_KeepInContent", "m"), prop.getFcKeepInContent());
}
if (prop.getFcNsPrefix() != null) {
writer.writeAttribute(new QName2(m, "FC_NsPrefix", "m"), prop.getFcNsPrefix());
}
if (prop.getFcNsUri() != null) {
writer.writeAttribute(new QName2(m, "FC_NsUri", "m"), prop.getFcNsUri());
}
writeAnnotationAttributes(prop, writer);
writeAnnotationElements(prop, writer);
writer.endElement("Property");
}
}