/**
* Դ�������ƣ�DeBusinessDataTypeImpl.java
* �������Ȩ���������ӹɷ�����˾ ��Ȩ����
* ϵͳ���ƣ�JRES Studio
* ģ�����ƣ�com.hundsun.ares.studio.jres.metadata.core
* ����˵����Ԫ����ģ�Ͷ��塢���������
* ����ĵ���
* ���ߣ�
*/
package com.hundsun.ares.studio.jres.model.metadata.decrypt.impl;
import org.apache.commons.lang.StringUtils;
import org.eclipse.emf.ecore.EClass;
import com.hundsun.ares.studio.core.IARESResource;
import com.hundsun.ares.studio.core.model.util.Pair;
import com.hundsun.ares.studio.jres.metadata.constant.IMetadataRefType;
import com.hundsun.ares.studio.jres.model.metadata.BusinessDataType;
import com.hundsun.ares.studio.jres.model.metadata.MetadataItem;
import com.hundsun.ares.studio.jres.model.metadata.StandardDataType;
import com.hundsun.ares.studio.jres.model.metadata.TypeDefaultValue;
import com.hundsun.ares.studio.jres.model.metadata.decrypt.DeBusinessDataType;
import com.hundsun.ares.studio.jres.model.metadata.decrypt.DeStandardDataType;
import com.hundsun.ares.studio.jres.model.metadata.decrypt.DeTypeDefaultValue;
import com.hundsun.ares.studio.jres.model.metadata.decrypt.DecryptPackage;
import com.hundsun.ares.studio.jres.model.metadata.util.MetadataUtil;
/**
* <!-- begin-user-doc -->
* An implementation of the model object '<em><b>De Business Data Type</b></em>'.
* <!-- end-user-doc -->
* <p>
* </p>
*
* @generated
*/
public class DeBusinessDataTypeImpl extends DeMetadataItemImpl<BusinessDataType> implements DeBusinessDataType {
private DeTypeDefaultValue defaultValue;
private DeStandardDataType stdType;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public DeBusinessDataTypeImpl() {
super();
}
/**
* @param proxyItem
* @param resource
*/
public DeBusinessDataTypeImpl(BusinessDataType proxyItem,
IARESResource resource) {
super(proxyItem, resource);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
protected EClass eStaticClass() {
return DecryptPackage.Literals.DE_BUSINESS_DATA_TYPE;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated NOT
*/
public DeTypeDefaultValue getDefaultValue() {
if (!checkStatus()) {
return DeTypeDefaultValue.NULL;
}
if (defaultValue == null) {
Pair<BusinessDataType, IARESResource> item = getResolvedItem();
// �������õ�Ԫ����
Pair<MetadataItem, IARESResource> finded = MetadataUtil.findMetadataItem(item.first.getDefaultValue(),
IMetadataRefType.DefValue, getResource().getARESProject());
if (finded != null) {
defaultValue = MetadataUtil.decrypt((TypeDefaultValue) finded.first, finded.second);
} else {
defaultValue = DeTypeDefaultValue.NULL;
}
}
return defaultValue;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getDefaultValueId() {
if (!checkStatus()) return StringUtils.EMPTY;
return getResolvedItem().first.getDefaultValue();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getLength() {
if (!checkStatus()) return StringUtils.EMPTY;
return getResolvedItem().first.getLength();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getPrecision() {
if (!checkStatus()) return StringUtils.EMPTY;
return getResolvedItem().first.getPrecision();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated NOT
*/
public DeStandardDataType getStdType() {
if (!checkStatus()) {
return DeStandardDataType.NULL;
}
if (stdType == null) {
Pair<BusinessDataType, IARESResource> item = getResolvedItem();
// �������õ�Ԫ����
Pair<MetadataItem, IARESResource> finded = MetadataUtil.findMetadataItem(item.first.getStdType(),
IMetadataRefType.StdType, getResource().getARESProject());
if (finded != null) {
stdType = MetadataUtil.decrypt((StandardDataType) finded.first, finded.second);
} else {
stdType = DeStandardDataType.NULL;
}
}
return stdType;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getStdTypeId() {
if (!checkStatus()) return StringUtils.EMPTY;
return getResolvedItem().first.getStdType();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getRealDefaultValue(final String typeId) {
return getDefaultValue().getValue(typeId);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getRealType(final String typeId) {
return getStdType().getRealType(typeId, getLength(), getPrecision());
}
} //DeBusinessDataTypeImpl