/** * personium.io * Copyright 2014 FUJITSU LIMITED * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.fujitsu.dc.core.model.ctl; import org.core4j.Enumerable; import org.odata4j.edm.EdmEntityType; import org.odata4j.edm.EdmProperty; import org.odata4j.edm.EdmSimpleType; /** * ユーザデータのスキーマを扱うEntityTypeの一つである、EntityType(紛らわしいがこれは名前)のEdm 定義体. * 紛らわしいが、EntityTypeを定義するためのEntityTypeということ。 */ public class Property { private Property() { } /** * Edm EntityType名. */ public static final String EDM_TYPE_NAME = "Property"; /** * CollectionKind None. */ public static final String COLLECTION_KIND_NONE = "None"; /** * Nameプロパティの定義体. */ public static final EdmProperty.Builder P_NAME = EdmProperty.newBuilder("Name").setType(EdmSimpleType.STRING) .setNullable(false) .setAnnotations(Common.DC_FORMAT_NAME); /** * _EntityType/Nameプロパティの定義体. */ public static final EdmProperty.Builder P_ENTITYTYPE_NAME = EdmProperty.newBuilder("_EntityType.Name") .setType(EdmSimpleType.STRING) .setNullable(false) .setAnnotations(Common.DC_FORMAT_NAME); /** * Typeプロパティの定義体. */ public static final EdmProperty.Builder P_TYPE = EdmProperty.newBuilder("Type") .setType(EdmSimpleType.STRING) .setNullable(false); /** * Nullableプロパティの定義体. */ public static final EdmProperty.Builder P_NULLABLE = EdmProperty.newBuilder("Nullable") .setDefaultValue("true") .setNullable(false) .setType(EdmSimpleType.BOOLEAN); /** * DefaultValueプロパティの定義体. */ public static final EdmProperty.Builder P_DEFAULT_VALUE = EdmProperty.newBuilder("DefaultValue") .setNullable(true) .setType(EdmSimpleType.STRING); /** * CollectionKindプロパティの定義体. */ public static final EdmProperty.Builder P_COLLECTION_KIND = EdmProperty.newBuilder("CollectionKind") .setNullable(true) .setType(EdmSimpleType.STRING) .setDefaultValue(COLLECTION_KIND_NONE); /** * IsKeyプロパティの定義体. */ public static final EdmProperty.Builder P_IS_KEY = EdmProperty.newBuilder("IsKey") .setNullable(false) .setType(EdmSimpleType.BOOLEAN) .setDefaultValue("false"); /** * UniqueKeyプロパティの定義体. */ public static final EdmProperty.Builder P_UNIQUE_KEY = EdmProperty.newBuilder("UniqueKey") .setNullable(true) .setType(EdmSimpleType.STRING) .setAnnotations(Common.DC_FORMAT_NAME); /** * IsDeclaredプロパティの定義体. */ public static final EdmProperty.Builder P_IS_DECLARED = EdmProperty.newBuilder("IsDeclared") .setNullable(true) .setType(EdmSimpleType.BOOLEAN) .setDefaultValue("true"); /** * EntityType Builder. */ public static final EdmEntityType.Builder EDM_TYPE_BUILDER = EdmEntityType.newBuilder() .setNamespace(Common.EDM_NS_ODATA_SVC_SCHEMA) .setName(EDM_TYPE_NAME) .addProperties(Enumerable.create(P_NAME, P_ENTITYTYPE_NAME, P_TYPE, P_NULLABLE, P_DEFAULT_VALUE, P_COLLECTION_KIND, P_IS_KEY, P_UNIQUE_KEY, P_IS_DECLARED, Common.P_PUBLISHED, Common.P_UPDATED).toList()) .addKeys(P_NAME.getName(), P_ENTITYTYPE_NAME.getName()); }