package com.hundsun.ares.studio.procedure.ui.editor.page.block;
import org.apache.commons.lang.StringUtils;
import org.eclipse.emf.ecore.EStructuralFeature;
import com.hundsun.ares.studio.biz.Parameter;
import com.hundsun.ares.studio.biz.provider.ParameterColumnLabelProvider;
import com.hundsun.ares.studio.core.IARESResource;
import com.hundsun.ares.studio.internal.core.ARESProjectProperty;
import com.hundsun.ares.studio.jres.model.metadata.StandardField;
import com.hundsun.ares.studio.jres.model.metadata.TypeDefaultValue;
import com.hundsun.ares.studio.jres.model.metadata.util.MetadataServiceProvider;
/**
* Դ�������ƣ�ServInterfaceParameterColLabProvider.java
* �������Ȩ���������ӹɷ�����˾ ��Ȩ����
* ϵͳ���ƣ�JRES Studio
* ģ�����ƣ�com.hundsun.ares.studio.biz.ui
* ����˵����$desc
* ����ĵ���
* ���ߣ�yanwj06282
*/
/**
* @author yanwj06282
*
*/
public class ProcedureInterfaceParameterColLabProvider extends
ParameterColumnLabelProvider {
private static String DEFAULT_TYPE = "oracle";
public ProcedureInterfaceParameterColLabProvider(IARESResource resource,
EStructuralFeature attribute) {
super(resource, attribute);
}
@Override
protected String getParameterDefaultValue(String defValue,
StandardField field) {
try {
String dt = (String) ((ARESProjectProperty)project.getProjectProperty()).getProperties().get("tabledir");
int _index = -1 ;
int dotIndex = -1;
if((_index=StringUtils.lastIndexOf(dt,"_" ))>-1 && (dotIndex=StringUtils.lastIndexOf(dt,"."))>-1 ){
dt = StringUtils.substring(dt,_index+1, dotIndex).toLowerCase();
}else{
dt = DEFAULT_TYPE;
}
if (StringUtils.isBlank(defValue)) {
TypeDefaultValue tdv = MetadataServiceProvider.getTypeDefaultValueOfStdFieldByName(project, field.getName());
if (tdv != null) {
if (StringUtils.isNotBlank(dt)) {
return tdv.getData().get(dt.toLowerCase());
}
}
}else {
TypeDefaultValue tdv = MetadataServiceProvider.getTypeDefaultValueByName(project, defValue);
if (tdv != null) {
if (StringUtils.isNotBlank(dt)) {
return tdv.getData().get(dt.toLowerCase());
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return defValue;
}
@Override
protected String getNonStdParameterDefaultValue(String defValue, Parameter p) {
try {
String dt = (String) ((ARESProjectProperty)project.getProjectProperty()).getProperties().get("tabledir");
int _index = -1 ;
int dotIndex = -1;
if((_index=StringUtils.lastIndexOf(dt,"_" ))>-1 && (dotIndex=StringUtils.lastIndexOf(dt,"."))>-1 ){
dt = StringUtils.substring(dt,_index+1, dotIndex).toLowerCase();
}else{
dt = DEFAULT_TYPE;
}
if (StringUtils.isBlank(defValue)) {
TypeDefaultValue tdv = MetadataServiceProvider.getTypeDefaultValueOfBizTypeByName(project, p.getType());
if (tdv != null) {
if (StringUtils.isNotBlank(dt)) {
return tdv.getData().get(dt.toLowerCase());
}
}
}else {
TypeDefaultValue tdv = MetadataServiceProvider.getTypeDefaultValueByName(project, defValue);
if (tdv != null) {
if (StringUtils.isNotBlank(dt)) {
return tdv.getData().get(dt.toLowerCase());
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return defValue;
}
}