/**
*
*/
package de.urszeidler.eclipse.shr5Management.util;
import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.common.notify.Notifier;
import org.eclipse.emf.common.util.ResourceLocator;
import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EReference;
import org.eclipse.emf.ecore.EcorePackage;
import de.urszeidler.eclipse.shr5.util.ModifikatorItemProvider;
import de.urszeidler.eclipse.shr5Management.Shr5managementPackage;
import de.urszeidler.eclipse.shr5Management.provider.Shr5ManagementEditPlugin;
import de.urszeidler.eclipse.shr5Management.provider.Shr5managementItemProviderAdapterFactory;
/**
* @author urs
*/
public class ExtendedShr5managementItemProviderAdapterFactory extends Shr5managementItemProviderAdapterFactory {
private ModifikatorItemProvider shr5ManagementAdapter;
private ModifikatorItemProvider shr5Adapter;
/**
*
*/
public Adapter createShr5ModifikatorItemProvider() {
if (shr5Adapter == null) {
shr5Adapter = new ModifikatorItemProvider(this) ;
}
return shr5Adapter;
}
/**
* anagement
*/
public Adapter createSr5ManagementItemProvider() {
if (shr5ManagementAdapter == null) {
shr5ManagementAdapter = new ModifikatorItemProvider(this) {
@Override
protected ResourceLocator getResourceLocator() {
return Shr5ManagementEditPlugin.INSTANCE;
}
};
}
return shr5ManagementAdapter;
}
@Override
public boolean isFactoryForType(Object object) {
if (object == EcorePackage.eINSTANCE) {
return true;
}
return super.isFactoryForType(object);
}
@Override
public Adapter createAdapter(Notifier target) {
if (target instanceof EAttribute) {
if (Shr5managementPackage.eINSTANCE.equals(((EAttribute)target).getEContainingClass().getEPackage()))
return createSr5ManagementItemProvider();
// if (((EAttribute)target).getEContainingClass().getEPackage().equals(Shr5Package.eINSTANCE))
return createShr5ModifikatorItemProvider();
}
if (target instanceof EReference) {
if (Shr5managementPackage.eINSTANCE.equals(((EReference)target).getEContainingClass().getEPackage()))
return createSr5ManagementItemProvider();
// if (((EReference)target).getEContainingClass().getEPackage().equals(Shr5Package.eINSTANCE))
return createShr5ModifikatorItemProvider();
}
if (target instanceof EClass) {
if (Shr5managementPackage.eINSTANCE.equals(((EClass)target).getEPackage()))
return createSr5ManagementItemProvider();
// if (((EClass)target).getEPackage().equals(Shr5Package.eINSTANCE))
return createShr5ModifikatorItemProvider();
}
return super.createAdapter(target);
}
@Override
public void dispose() {
if (shr5Adapter != null) shr5Adapter.dispose();
if (shr5ManagementAdapter != null) shr5ManagementAdapter.dispose();
super.dispose();
}
}