/**
* Copyright (c) 2008 Olivier Moises
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Olivier Moises- initial API and implementation
*/
package org.eclipse.wazaabi.mm.swt.descriptors.impl;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.impl.EPackageImpl;
import org.eclipse.wazaabi.mm.core.CorePackage;
import org.eclipse.wazaabi.mm.swt.descriptors.CheckBox;
import org.eclipse.wazaabi.mm.swt.descriptors.Collection;
import org.eclipse.wazaabi.mm.swt.descriptors.Composite;
import org.eclipse.wazaabi.mm.swt.descriptors.Control;
import org.eclipse.wazaabi.mm.swt.descriptors.Label;
import org.eclipse.wazaabi.mm.swt.descriptors.MenuComponent;
import org.eclipse.wazaabi.mm.swt.descriptors.ProgressBar;
import org.eclipse.wazaabi.mm.swt.descriptors.PushButton;
import org.eclipse.wazaabi.mm.swt.descriptors.RadioButton;
import org.eclipse.wazaabi.mm.swt.descriptors.SWTDescriptorsFactory;
import org.eclipse.wazaabi.mm.swt.descriptors.SWTDescriptorsPackage;
import org.eclipse.wazaabi.mm.swt.descriptors.Scale;
import org.eclipse.wazaabi.mm.swt.descriptors.Separator;
import org.eclipse.wazaabi.mm.swt.descriptors.Slider;
import org.eclipse.wazaabi.mm.swt.descriptors.Spinner;
import org.eclipse.wazaabi.mm.swt.descriptors.Text;
import org.eclipse.wazaabi.mm.swt.styles.SWTStylesPackage;
import org.eclipse.wazaabi.mm.swt.styles.impl.SWTStylesPackageImpl;
/**
* <!-- begin-user-doc -->
* An implementation of the model <b>Package</b>.
* <!-- end-user-doc -->
* @generated
*/
public class SWTDescriptorsPackageImpl extends EPackageImpl implements SWTDescriptorsPackage {
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass controlEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass progressBarEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass compositeEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass textEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass pushButtonEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass labelEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass radioButtonEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass checkBoxEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass sliderEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass scaleEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass spinnerEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass collectionEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass menuComponentEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass separatorEClass = null;
/**
* Creates an instance of the model <b>Package</b>, registered with
* {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
* package URI value.
* <p>Note: the correct way to create the package is via the static
* factory method {@link #init init()}, which also performs
* initialization of the package, or returns the registered package,
* if one already exists.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see org.eclipse.emf.ecore.EPackage.Registry
* @see org.eclipse.wazaabi.mm.swt.descriptors.SWTDescriptorsPackage#eNS_URI
* @see #init()
* @generated
*/
private SWTDescriptorsPackageImpl() {
super(eNS_URI, SWTDescriptorsFactory.eINSTANCE);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private static boolean isInited = false;
/**
* Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
*
* <p>This method is used to initialize {@link SWTDescriptorsPackage#eINSTANCE} when that field is accessed.
* Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #eNS_URI
* @see #createPackageContents()
* @see #initializePackageContents()
* @generated
*/
public static SWTDescriptorsPackage init() {
if (isInited) return (SWTDescriptorsPackage)EPackage.Registry.INSTANCE.getEPackage(SWTDescriptorsPackage.eNS_URI);
// Obtain or create and register package
SWTDescriptorsPackageImpl theSWTDescriptorsPackage = (SWTDescriptorsPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof SWTDescriptorsPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new SWTDescriptorsPackageImpl());
isInited = true;
// Initialize simple dependencies
CorePackage.eINSTANCE.eClass();
// Obtain or create and register interdependencies
SWTStylesPackageImpl theSWTStylesPackage = (SWTStylesPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SWTStylesPackage.eNS_URI) instanceof SWTStylesPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SWTStylesPackage.eNS_URI) : SWTStylesPackage.eINSTANCE);
// Create package meta-data objects
theSWTDescriptorsPackage.createPackageContents();
theSWTStylesPackage.createPackageContents();
// Initialize created meta-data
theSWTDescriptorsPackage.initializePackageContents();
theSWTStylesPackage.initializePackageContents();
// Mark meta-data to indicate it can't be changed
theSWTDescriptorsPackage.freeze();
// Update the registry and return the package
EPackage.Registry.INSTANCE.put(SWTDescriptorsPackage.eNS_URI, theSWTDescriptorsPackage);
return theSWTDescriptorsPackage;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getControl() {
return controlEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getProgressBar() {
return progressBarEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getComposite() {
return compositeEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getText() {
return textEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getPushButton() {
return pushButtonEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getLabel() {
return labelEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getRadioButton() {
return radioButtonEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getCheckBox() {
return checkBoxEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getSlider() {
return sliderEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getScale() {
return scaleEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getSpinner() {
return spinnerEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getCollection() {
return collectionEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getMenuComponent() {
return menuComponentEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getSeparator() {
return separatorEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public SWTDescriptorsFactory getSWTDescriptorsFactory() {
return (SWTDescriptorsFactory)getEFactoryInstance();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private boolean isCreated = false;
/**
* Creates the meta-model objects for the package. This method is
* guarded to have no affect on any invocation but its first.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void createPackageContents() {
if (isCreated) return;
isCreated = true;
// Create classes and their features
controlEClass = createEClass(CONTROL);
progressBarEClass = createEClass(PROGRESS_BAR);
compositeEClass = createEClass(COMPOSITE);
textEClass = createEClass(TEXT);
pushButtonEClass = createEClass(PUSH_BUTTON);
labelEClass = createEClass(LABEL);
radioButtonEClass = createEClass(RADIO_BUTTON);
checkBoxEClass = createEClass(CHECK_BOX);
sliderEClass = createEClass(SLIDER);
scaleEClass = createEClass(SCALE);
spinnerEClass = createEClass(SPINNER);
collectionEClass = createEClass(COLLECTION);
menuComponentEClass = createEClass(MENU_COMPONENT);
separatorEClass = createEClass(SEPARATOR);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private boolean isInitialized = false;
/**
* Complete the initialization of the package and its meta-model. This
* method is guarded to have no affect on any invocation but its first.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void initializePackageContents() {
if (isInitialized) return;
isInitialized = true;
// Initialize package
setName(eNAME);
setNsPrefix(eNS_PREFIX);
setNsURI(eNS_URI);
// Create type parameters
// Set bounds for type parameters
// Add supertypes to classes
progressBarEClass.getESuperTypes().add(this.getControl());
compositeEClass.getESuperTypes().add(this.getControl());
textEClass.getESuperTypes().add(this.getControl());
pushButtonEClass.getESuperTypes().add(this.getControl());
labelEClass.getESuperTypes().add(this.getControl());
radioButtonEClass.getESuperTypes().add(this.getControl());
checkBoxEClass.getESuperTypes().add(this.getControl());
sliderEClass.getESuperTypes().add(this.getControl());
scaleEClass.getESuperTypes().add(this.getControl());
spinnerEClass.getESuperTypes().add(this.getControl());
collectionEClass.getESuperTypes().add(this.getControl());
separatorEClass.getESuperTypes().add(this.getControl());
// Initialize classes and features; add operations and parameters
initEClass(controlEClass, Control.class, "Control", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(progressBarEClass, ProgressBar.class, "ProgressBar", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(compositeEClass, Composite.class, "Composite", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(textEClass, Text.class, "Text", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(pushButtonEClass, PushButton.class, "PushButton", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(labelEClass, Label.class, "Label", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(radioButtonEClass, RadioButton.class, "RadioButton", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(checkBoxEClass, CheckBox.class, "CheckBox", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(sliderEClass, Slider.class, "Slider", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(scaleEClass, Scale.class, "Scale", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(spinnerEClass, Spinner.class, "Spinner", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(collectionEClass, Collection.class, "Collection", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(menuComponentEClass, MenuComponent.class, "MenuComponent", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(separatorEClass, Separator.class, "Separator", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
// Create resource
createResource(eNS_URI);
// Create annotations
// http://www.wazaabi.org/style/property/definition
createDefinitionAnnotations();
}
/**
* Initializes the annotations for <b>http://www.wazaabi.org/style/property/definition</b>.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected void createDefinitionAnnotations() {
String source = "http://www.wazaabi.org/style/property/definition";
addAnnotation
(controlEClass,
source,
new String[] {
"name", "border",
"type", "package=http://www.wazaabi.org/core/styles\r\nEClass=BooleanRule",
"default", "value=false"
});
addAnnotation
(compositeEClass,
source,
new String[] {
"name", "row-layout",
"type", "package=http://www.wazaabi.org/swt/styles\r\nEClass=RowLayoutRule"
});
}
} //SWTDescriptorsPackageImpl