/**
* Դ�������ƣ�ErrorCheckPreference.java
* �������Ȩ���������ӹɷ�����˾ ��Ȩ����
* ϵͳ���ƣ�ARES Studio
* ģ�����ƣ�com.hundsun.ares.studio.core
* ����˵����$desc
* ����ĵ���
* ���ߣ�liaogc
*/
package com.hundsun.ares.studio.core.preferences;
import java.util.HashMap;
import java.util.Map;
import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.preferences.IPreferencesService;
import org.eclipse.core.runtime.preferences.InstanceScope;
import org.osgi.service.prefs.Preferences;
/**
* ������������ѡ���и�������
* @author liaogc
*/
public class ErrorCheckPreferenceHelper {
private static ErrorCheckPreferenceHelper instance = new ErrorCheckPreferenceHelper();
private Map<String,Boolean> errorTypeMap = new HashMap<String,Boolean>();
private Map<String,String> resTypeToErrorMap = new HashMap<String,String>();
boolean isErrorCheck = false;
private ErrorCheckPreferenceHelper(){
resTypeToErrorMap.put("stdfield", ErrorCheckPreferenceConstant.METADATA_CHECK);
resTypeToErrorMap.put("datatype", ErrorCheckPreferenceConstant.METADATA_CHECK);
resTypeToErrorMap.put("dict", ErrorCheckPreferenceConstant.METADATA_CHECK);
resTypeToErrorMap.put("menu", ErrorCheckPreferenceConstant.METADATA_CHECK);
resTypeToErrorMap.put("errorno", ErrorCheckPreferenceConstant.METADATA_CHECK);
resTypeToErrorMap.put("constant", ErrorCheckPreferenceConstant.METADATA_CHECK);
resTypeToErrorMap.put("defaulttype", ErrorCheckPreferenceConstant.METADATA_CHECK);
resTypeToErrorMap.put("defaultvalue", ErrorCheckPreferenceConstant.METADATA_CHECK);
resTypeToErrorMap.put("idrange", ErrorCheckPreferenceConstant.METADATA_CHECK);
resTypeToErrorMap.put("jres_osequence", ErrorCheckPreferenceConstant.DATABASE_CHECK);
resTypeToErrorMap.put("table", ErrorCheckPreferenceConstant.DATABASE_CHECK);
resTypeToErrorMap.put("view", ErrorCheckPreferenceConstant.DATABASE_CHECK);
resTypeToErrorMap.put("dbuser", ErrorCheckPreferenceConstant.DATABASE_CHECK);
resTypeToErrorMap.put("dbobject", ErrorCheckPreferenceConstant.DATABASE_CHECK);
resTypeToErrorMap.put("singletabledata", ErrorCheckPreferenceConstant.BASIC_DATA_CHECK);
resTypeToErrorMap.put("masterslavetabledata", ErrorCheckPreferenceConstant.BASIC_DATA_CHECK);
resTypeToErrorMap.put("masterslavelinktabledata", ErrorCheckPreferenceConstant.BASIC_DATA_CHECK);
resTypeToErrorMap.put("epackage", ErrorCheckPreferenceConstant.BASIC_DATA_CHECK);
resTypeToErrorMap.put("stdmodelanddata", ErrorCheckPreferenceConstant.BASIC_DATA_CHECK);
resTypeToErrorMap.put("atomservice", ErrorCheckPreferenceConstant.ATOM_CHECK);
resTypeToErrorMap.put("atomfunction", ErrorCheckPreferenceConstant.ATOM_CHECK);
resTypeToErrorMap.put("logicservice", ErrorCheckPreferenceConstant.LOGIC_CHECK);
resTypeToErrorMap.put("logicfunction", ErrorCheckPreferenceConstant.LOGIC_CHECK);
resTypeToErrorMap.put("procedure", ErrorCheckPreferenceConstant.PROCEDURE_CHECK);
resTypeToErrorMap.put("service", ErrorCheckPreferenceConstant.SERVICE_CHECK);
resTypeToErrorMap.put("object", ErrorCheckPreferenceConstant.OBJECT_CHECK);
refresh();
}
public static ErrorCheckPreferenceHelper getInstance(){
return instance;
}
public void refresh(){
IPreferencesService service = Platform.getPreferencesService();
Preferences root = service.getRootNode();
Preferences corenstanceNode = root.node(InstanceScope.SCOPE).node("com.hundsun.ares.studio.core");
if(corenstanceNode!=null){
isErrorCheck = corenstanceNode.getBoolean(ErrorCheckPreferenceConstant.ERROR_CHECK,true);
errorTypeMap.put(ErrorCheckPreferenceConstant.ERROR_CHECK, corenstanceNode.getBoolean(ErrorCheckPreferenceConstant.ERROR_CHECK,true));
errorTypeMap.put(ErrorCheckPreferenceConstant.METADATA_CHECK, corenstanceNode.getBoolean(ErrorCheckPreferenceConstant.METADATA_CHECK,true));
errorTypeMap.put(ErrorCheckPreferenceConstant.BASIC_DATA_CHECK, corenstanceNode.getBoolean(ErrorCheckPreferenceConstant.BASIC_DATA_CHECK,true));
errorTypeMap.put(ErrorCheckPreferenceConstant.DATABASE_CHECK, corenstanceNode.getBoolean(ErrorCheckPreferenceConstant.DATABASE_CHECK,true));
errorTypeMap.put(ErrorCheckPreferenceConstant.SERVICE_CHECK, corenstanceNode.getBoolean(ErrorCheckPreferenceConstant.SERVICE_CHECK,true));
errorTypeMap.put(ErrorCheckPreferenceConstant.ATOM_CHECK, corenstanceNode.getBoolean(ErrorCheckPreferenceConstant.ATOM_CHECK,true));
errorTypeMap.put(ErrorCheckPreferenceConstant.LOGIC_CHECK, corenstanceNode.getBoolean(ErrorCheckPreferenceConstant.LOGIC_CHECK,true));
errorTypeMap.put(ErrorCheckPreferenceConstant.OBJECT_CHECK, corenstanceNode.getBoolean(ErrorCheckPreferenceConstant.OBJECT_CHECK,true));
errorTypeMap.put(ErrorCheckPreferenceConstant.PROCEDURE_CHECK, corenstanceNode.getBoolean(ErrorCheckPreferenceConstant.PROCEDURE_CHECK,true));
errorTypeMap.put(ErrorCheckPreferenceConstant.RELATION_CHECK, corenstanceNode.getBoolean(ErrorCheckPreferenceConstant.RELATION_CHECK,true));
if(!isErrorCheck){
errorTypeMap.put(ErrorCheckPreferenceConstant.METADATA_CHECK, false);
errorTypeMap.put(ErrorCheckPreferenceConstant.BASIC_DATA_CHECK, false);
errorTypeMap.put(ErrorCheckPreferenceConstant.DATABASE_CHECK, false);
errorTypeMap.put(ErrorCheckPreferenceConstant.SERVICE_CHECK, false);
errorTypeMap.put(ErrorCheckPreferenceConstant.ATOM_CHECK, false);
errorTypeMap.put(ErrorCheckPreferenceConstant.LOGIC_CHECK, false);
errorTypeMap.put(ErrorCheckPreferenceConstant.OBJECT_CHECK, false);
errorTypeMap.put(ErrorCheckPreferenceConstant.PROCEDURE_CHECK, false);
errorTypeMap.put(ErrorCheckPreferenceConstant.RELATION_CHECK, false);
}
}
}
/**
* ������Դ�����ж��Ƿ�Ҫ�Դ���Դ���д�����
* @param resType
* @return
*/
public boolean isErrorCheck(String resType){
if (!isErrorCheck) {
return false;
}
if(isErrorCheck && resTypeToErrorMap.containsKey(resType) && this.errorTypeMap.containsKey(resTypeToErrorMap.get(resType))){
return this.errorTypeMap.get(resTypeToErrorMap.get(resType));
}
return true;
}
/**
* �Ƿ��������Դ
* @return
*/
public boolean isRelationCheck(){
if (!isErrorCheck) {
return false;
}
if(errorTypeMap.containsKey(ErrorCheckPreferenceConstant.RELATION_CHECK)){
return errorTypeMap.get(ErrorCheckPreferenceConstant.RELATION_CHECK);
}
return true;
}
}