/**
* Դ�������ƣ�IExtendPropertyProvider.java
* �������Ȩ���������ӹɷ�����˾ ��Ȩ����
* ϵͳ���ƣ�JRES Studio
* ģ�����ƣ�com.hundsun.ares.studio.core
* ����˵����$desc
* ����ĵ���
* ���ߣ�sundl
*/
package com.hundsun.ares.studio.core.model.extend;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;
import com.hundsun.ares.studio.core.IARESElement;
import com.hundsun.ares.studio.core.model.ExtensibleModel;
/**
* ��չ�����ṩ��.��չ���ԵĽṹһ���������ģ�
* һ��Provider��Ӧ�ṩһ��EObject����Data2���map�У����EObject��һЩ���Ծ���Ϊ�������չ����
* @author sundl
*/
public interface IExtendedPropertyProvider {
/**
* �Ƿ�����
* @param element ����Ϊnull
* @param clazz
* @return
*/
boolean isEnabled(IARESElement element, EClass clazz);
/**
* ��չ��Ӧ�Ķ�����Data2���Map�е�key
* @return
*/
String getKey();
/**
* ����һ�����ڱ༭�Ķ���������洢��{@link ExtensibleModel#getData2()}��map��
* @return
*/
EObject createMapValueObject();
/**
* �����ṩ��Щ����
* @return
*/
IBasicExtendPropertyDescriptor[] getExtendProperties();
}