/**
* <p>Copyright: Copyright (c) 2009</p>
* <p>Company: �������ӹɷ�����˾</p>
*/
package com.hundsun.ares.studio.internal.core.registry;
import org.apache.commons.lang.StringUtils;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IConfigurationElement;
import com.hundsun.ares.studio.core.IARESModuleRoot;
import com.hundsun.ares.studio.core.registry.ICommonExtensionConstants;
import com.hundsun.ares.studio.core.registry.IModuleRootDescriptor;
import com.hundsun.ares.studio.internal.core.ARESModuleRoot;
/**
* ģ���������Ϣ
* @author sundl
*/
public class ModuleRootDescriptor extends OrderableDescriptor implements IModuleRootDescriptor {
// Ĭ��ʹ��Ĭ��ģ��
private boolean useDefaultModule;
// Ĭ�ϲ��������ģ��㼶��
private int maxModuleLevel;
// �ɷ�ɾ��
private boolean deletable;
//
private boolean renameable;
// �Ƿ�֧�������ļ�
public boolean useProperty;
public ModuleRootDescriptor(IConfigurationElement e) {
super(e);
}
protected void loadFromExtension() {
super.loadFromExtension();
String useDefaultModule = configElement.getAttribute(ICommonExtensionConstants.USE_DEFAULT_MODULE);
if (!StringUtils.isEmpty(useDefaultModule)) {
this.useDefaultModule = Boolean.parseBoolean(useDefaultModule);
} else {
this.useDefaultModule = true;
}
String maxLevel = configElement.getAttribute(ICommonExtensionConstants.MAX_MODULE_LEVEL);
if (!StringUtils.isEmpty(maxLevel)) {
this.maxModuleLevel = Integer.parseInt(maxLevel);
} else {
this.maxModuleLevel = MODULE_LEVEL_NO_CONSTRAINT;
}
String deletable = configElement.getAttribute(ICommonExtensionConstants.DELTEABLE);
if (!StringUtils.isEmpty(deletable)) {
this.deletable = Boolean.parseBoolean(deletable);
} else {
this.deletable = false;
}
String rename = configElement.getAttribute(ICommonExtensionConstants.RENAMEABLE);
if (!StringUtils.isEmpty(rename)) {
this.renameable = Boolean.parseBoolean(rename);
} else {
this.renameable = false;
}
String usePro = configElement.getAttribute(ICommonExtensionConstants.USE_PROPERTY);
if (!StringUtils.isEmpty(usePro)) {
this.useProperty = Boolean.parseBoolean(usePro);
} else {
this.useProperty = false;
}
}
/* (non-Javadoc)
* @see com.hundsun.ares.devtool.common.core.IModuleRootDescriptor#createRoot()
*/
public IARESModuleRoot createRoot() {
try {
return (IARESModuleRoot)configElement.createExecutableExtension(ICommonExtensionConstants.CLASS);
} catch (CoreException e) {
//e.printStackTrace();
// cann't create instance, use default
}
return new ARESModuleRoot();
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.core.IModuleRootDescriptor#getMaxModuleLevel()
*/
public int getMaxModuleLevel() {
return maxModuleLevel;
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.core.IModuleRootDescriptor#useDefaultModule()
*/
public boolean useDefaultModule() {
return useDefaultModule;
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.core.registry.IModuleRootDescriptor#isDeletable()
*/
public boolean isDeletable() {
return deletable;
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.core.registry.IModuleRootDescriptor#isRenameable()
*/
public boolean isRenameable() {
return renameable;
}
public boolean useProperty() {
return useProperty;
}
public void setUseProperty(boolean useProperty) {
this.useProperty = useProperty;
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/// 2012-03-22 sundl �Զ�����toString�������
@Override
public String toString() {
return "ModuleRootDescriptor [useDefaultModule=" + useDefaultModule + ", maxModuleLevel=" + maxModuleLevel + ", deletable=" + deletable + ", renameable=" + renameable + ", useProperty=" + useProperty + ", order=" + order + "]";
}
}