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


Java EdmProperty.getType方法代码示例

本文整理汇总了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);
}
 
开发者ID:teiid,项目名称:oreva,代码行数:24,代码来源:ConsumerCreateEntityRequest.java

示例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;
}
 
开发者ID:personium,项目名称:personium-core,代码行数:47,代码来源:OEntityDocHandler.java

示例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());
}
 
开发者ID:teiid,项目名称:oreva,代码行数:16,代码来源:MediaLinkExtension.java

示例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);
}
 
开发者ID:teiid,项目名称:oreva,代码行数:39,代码来源:InMemoryProducer.java

示例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;
}
 
开发者ID:personium,项目名称:personium-core,代码行数:60,代码来源:AbstractODataResource.java

示例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();
}
 
开发者ID:teiid,项目名称:oreva,代码行数:53,代码来源:AtomFeedFormatParser.java


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