/**
* 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;
/**
* AccountのEdm 定義体.
*/
public class Account {
private Account() {
}
/**
* Type値 basic.
*/
public static final String TYPE_VALUE_BASIC = "basic";
/**
* Type値 oidc:google.
*/
public static final String TYPE_VALUE_OIDC_GOOGLE = "oidc:google";
/**
* 対応するID providerが増えた場合は追加する
*/
/**
* 有効なType値の配列.
*/
public static final String[] SUPPORTED_TYPE_VALUES = new String[] {
TYPE_VALUE_BASIC, TYPE_VALUE_OIDC_GOOGLE
};
/**
* Edm EntityType名.
*/
public static final String EDM_TYPE_NAME = "Account";
/**
* ReceivedMessageとのNavigationProperty名.
*/
public static final String EDM_NPNAME_FOR_RECEIVED_MESSAGE = "_ReceivedMessageRead";
/**
* Nameプロパティの定義体.
*/
public static final EdmProperty.Builder P_NAME = EdmProperty.newBuilder("Name").setType(EdmSimpleType.STRING)
.setNullable(false).setAnnotations(Common.DC_FORMAT_NAME_WITH_SIGN);
/**
* LastAuthenticatedプロパティの定義体.
*/
public static final EdmProperty.Builder P_LAST_AUTHENTICATED = EdmProperty.newBuilder("LastAuthenticated")
.setType(EdmSimpleType.DATETIME).setNullable(true).setDefaultValue("null");
/**
* Typeプロパティの定義体.
*/
public static final EdmProperty.Builder P_TYPE = EdmProperty.newBuilder("Type").setType(EdmSimpleType.STRING)
.setDefaultValue(TYPE_VALUE_BASIC).setAnnotations(Common.DC_FORMAT_ACCOUNT_TYPE);
/**
* Cellプロパティの定義体.
*/
public static final EdmProperty.Builder P_CELL = EdmProperty.newBuilder("Cell").setType(EdmSimpleType.STRING)
.setNullable(true).setDefaultValue("null");
/**
* EntityType Builder.
*/
public static final EdmEntityType.Builder EDM_TYPE_BUILDER = EdmEntityType.newBuilder()
.setNamespace(Common.EDM_NS_CELL_CTL).setName(EDM_TYPE_NAME)
.addProperties(Enumerable.create(P_NAME, P_LAST_AUTHENTICATED, P_TYPE, P_CELL,
Common.P_PUBLISHED, Common.P_UPDATED).toList())
.addKeys(P_NAME.getName());
}