/**
* Դ�������ƣ�DefaultNamespaceHelper.java
* �������Ȩ���������ӹɷ�����˾ ��Ȩ����
* ϵͳ���ƣ�JRES Studio
* ģ�����ƣ�com.hundsun.ares.studio.jres.core
* ����˵����JRES Studio�Ļ����ܹ���ģ�淶
* ����ĵ���
* ���ߣ�
*/
package com.hundsun.ares.studio.core.context;
import org.apache.commons.lang.StringUtils;
import com.hundsun.ares.studio.core.IARESProject;
import com.hundsun.ares.studio.core.IARESResource;
/**
* @author lvgao
*
*/
public class DefaultNamespaceHelper implements INamespaceHelper{
public static DefaultNamespaceHelper instance = new DefaultNamespaceHelper();
public static final String SEPRATOR =".";
/* (non-Javadoc)
* @see com.hundsun.ares.studio.jres.context.INamespaceHelper#getSlaveNamespace(com.hundsun.ares.studio.core.IARESResource, java.lang.String)
*/
@Override
public String getSlaveNamespace(IARESResource master, String referdata) {
String nsData = "";
if(referdata.contains(SEPRATOR)){
String[] tarray = referdata.split("\\.");
if(tarray.length == 2){
nsData = tarray[0];
}
}
return StringUtils.defaultIfBlank(nsData, getResourceNamespace(master));
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.jres.context.INamespaceHelper#removeNamespace(java.lang.String)
*/
@Override
public String removeNamespace(String referdata) {
if(null == referdata){
return StringUtils.EMPTY;
}
if(referdata.contains(SEPRATOR)){
String[] tarray = StringUtils.split(referdata, SEPRATOR);
if(tarray.length == 2){
return tarray[1];
}
}
return referdata;
}
public String getResourceNamespace(IARESResource master){
if(master.getLib() != null){
return master.getLib().getId();
}
return getProjectNamespace(master.getARESProject());
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.jres.context.INamespaceHelper#getProjectNamespace(com.hundsun.ares.studio.core.IARESProject)
*/
@Override
public String getProjectNamespace(IARESProject project) {
try {
return project.getProjectProperty().getId();
} catch (Exception e) {
}
return StringUtils.EMPTY;
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.jres.context.INamespaceHelper#getSlaveNamespace(java.lang.String, java.lang.String)
*/
@Override
public String getSlaveNamespace(String masternamespace, String referdata) {
return StringUtils.defaultIfBlank(getNamespace(referdata), masternamespace);
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.jres.context.INamespaceHelper#getNamespace(java.lang.String)
*/
@Override
public String getNamespace(String referdata) {
if (referdata != null) {
if(referdata.contains(SEPRATOR)){
String[] tarray = StringUtils.split(referdata, SEPRATOR);
if(tarray.length == 2){
return tarray[0];
}
}
}
return StringUtils.EMPTY;
}
}