/** * <copyright> * </copyright> * * $Id$ */ package FederationOffice.impl; import org.eclipse.emf.ecore.EAttribute; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EEnum; import org.eclipse.emf.ecore.EPackage; import org.eclipse.emf.ecore.EReference; import org.eclipse.emf.ecore.impl.EPackageImpl; import FederationOffice.FederationOfficeFactory; import FederationOffice.FederationOfficePackage; import FederationOffice.NamedElement; import FederationOffice.Office; import FederationOffice.VTStatus; import FederationOffice.availabilityContract.AvailabilityContractPackage; import FederationOffice.availabilityContract.impl.AvailabilityContractPackageImpl; import FederationOffice.experimentRuntime.ExperimentRuntimePackage; import FederationOffice.experimentRuntime.impl.ExperimentRuntimePackageImpl; import FederationOffice.extensionInterfaces.ExtensionInterfacesPackage; import FederationOffice.extensionInterfaces.impl.ExtensionInterfacesPackageImpl; import FederationOffice.fcielements.FcielementsPackage; import FederationOffice.fcielements.impl.FcielementsPackageImpl; import FederationOffice.federationscenarios.FederationscenariosPackage; import FederationOffice.federationscenarios.impl.FederationscenariosPackageImpl; import FederationOffice.networkelements.NetworkelementsPackage; import FederationOffice.networkelements.impl.NetworkelementsPackageImpl; import FederationOffice.providersite.ProvidersitePackage; import FederationOffice.providersite.impl.ProvidersitePackageImpl; import FederationOffice.resources.ResourcesPackage; import FederationOffice.resources.impl.ResourcesPackageImpl; import FederationOffice.services.ServicesPackage; import FederationOffice.services.impl.ServicesPackageImpl; import FederationOffice.slareservations.SlareservationsPackage; import FederationOffice.slareservations.impl.SlareservationsPackageImpl; import FederationOffice.uiObjects.UiObjectsPackage; import FederationOffice.uiObjects.impl.UiObjectsPackageImpl; import FederationOffice.users.UsersPackage; import FederationOffice.users.impl.UsersPackageImpl; /** * <!-- begin-user-doc --> * An implementation of the model <b>Package</b>. * <!-- end-user-doc --> * @generated */ public class FederationOfficePackageImpl extends EPackageImpl implements FederationOfficePackage { /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ private EClass officeEClass = null; /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ private EClass namedElementEClass = null; /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ private EEnum vtStatusEEnum = 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 FederationOffice.FederationOfficePackage#eNS_URI * @see #init() * @generated */ private FederationOfficePackageImpl() { super(eNS_URI, FederationOfficeFactory.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 FederationOfficePackage#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 FederationOfficePackage init() { if (isInited) return (FederationOfficePackage)EPackage.Registry.INSTANCE.getEPackage(FederationOfficePackage.eNS_URI); // Obtain or create and register package FederationOfficePackageImpl theFederationOfficePackage = (FederationOfficePackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof FederationOfficePackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new FederationOfficePackageImpl()); isInited = true; // Obtain or create and register interdependencies UsersPackageImpl theUsersPackage = (UsersPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(UsersPackage.eNS_URI) instanceof UsersPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(UsersPackage.eNS_URI) : UsersPackage.eINSTANCE); ResourcesPackageImpl theResourcesPackage = (ResourcesPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ResourcesPackage.eNS_URI) instanceof ResourcesPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ResourcesPackage.eNS_URI) : ResourcesPackage.eINSTANCE); NetworkelementsPackageImpl theNetworkelementsPackage = (NetworkelementsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(NetworkelementsPackage.eNS_URI) instanceof NetworkelementsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(NetworkelementsPackage.eNS_URI) : NetworkelementsPackage.eINSTANCE); ProvidersitePackageImpl theProvidersitePackage = (ProvidersitePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ProvidersitePackage.eNS_URI) instanceof ProvidersitePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ProvidersitePackage.eNS_URI) : ProvidersitePackage.eINSTANCE); SlareservationsPackageImpl theSlareservationsPackage = (SlareservationsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SlareservationsPackage.eNS_URI) instanceof SlareservationsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SlareservationsPackage.eNS_URI) : SlareservationsPackage.eINSTANCE); FederationscenariosPackageImpl theFederationscenariosPackage = (FederationscenariosPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(FederationscenariosPackage.eNS_URI) instanceof FederationscenariosPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(FederationscenariosPackage.eNS_URI) : FederationscenariosPackage.eINSTANCE); ServicesPackageImpl theServicesPackage = (ServicesPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ServicesPackage.eNS_URI) instanceof ServicesPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ServicesPackage.eNS_URI) : ServicesPackage.eINSTANCE); AvailabilityContractPackageImpl theAvailabilityContractPackage = (AvailabilityContractPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(AvailabilityContractPackage.eNS_URI) instanceof AvailabilityContractPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(AvailabilityContractPackage.eNS_URI) : AvailabilityContractPackage.eINSTANCE); UiObjectsPackageImpl theUiObjectsPackage = (UiObjectsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(UiObjectsPackage.eNS_URI) instanceof UiObjectsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(UiObjectsPackage.eNS_URI) : UiObjectsPackage.eINSTANCE); ExperimentRuntimePackageImpl theExperimentRuntimePackage = (ExperimentRuntimePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ExperimentRuntimePackage.eNS_URI) instanceof ExperimentRuntimePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ExperimentRuntimePackage.eNS_URI) : ExperimentRuntimePackage.eINSTANCE); ExtensionInterfacesPackageImpl theExtensionInterfacesPackage = (ExtensionInterfacesPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ExtensionInterfacesPackage.eNS_URI) instanceof ExtensionInterfacesPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ExtensionInterfacesPackage.eNS_URI) : ExtensionInterfacesPackage.eINSTANCE); FcielementsPackageImpl theFcielementsPackage = (FcielementsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(FcielementsPackage.eNS_URI) instanceof FcielementsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(FcielementsPackage.eNS_URI) : FcielementsPackage.eINSTANCE); // Create package meta-data objects theFederationOfficePackage.createPackageContents(); theUsersPackage.createPackageContents(); theResourcesPackage.createPackageContents(); theNetworkelementsPackage.createPackageContents(); theProvidersitePackage.createPackageContents(); theSlareservationsPackage.createPackageContents(); theFederationscenariosPackage.createPackageContents(); theServicesPackage.createPackageContents(); theAvailabilityContractPackage.createPackageContents(); theUiObjectsPackage.createPackageContents(); theExperimentRuntimePackage.createPackageContents(); theExtensionInterfacesPackage.createPackageContents(); theFcielementsPackage.createPackageContents(); // Initialize created meta-data theFederationOfficePackage.initializePackageContents(); theUsersPackage.initializePackageContents(); theResourcesPackage.initializePackageContents(); theNetworkelementsPackage.initializePackageContents(); theProvidersitePackage.initializePackageContents(); theSlareservationsPackage.initializePackageContents(); theFederationscenariosPackage.initializePackageContents(); theServicesPackage.initializePackageContents(); theAvailabilityContractPackage.initializePackageContents(); theUiObjectsPackage.initializePackageContents(); theExperimentRuntimePackage.initializePackageContents(); theExtensionInterfacesPackage.initializePackageContents(); theFcielementsPackage.initializePackageContents(); // Mark meta-data to indicate it can't be changed theFederationOfficePackage.freeze(); // Update the registry and return the package EPackage.Registry.INSTANCE.put(FederationOfficePackage.eNS_URI, theFederationOfficePackage); return theFederationOfficePackage; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EClass getOffice() { return officeEClass; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EReference getOffice_RegisteredUsers() { return (EReference)officeEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EReference getOffice_ContributedTaxonomies() { return (EReference)officeEClass.getEStructuralFeatures().get(1); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EReference getOffice_OfferedServices() { return (EReference)officeEClass.getEStructuralFeatures().get(2); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EReference getOffice_AvailableFederationScenarios() { return (EReference)officeEClass.getEStructuralFeatures().get(3); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EReference getOffice_OfferedServiceCompositions() { return (EReference)officeEClass.getEStructuralFeatures().get(4); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EReference getOffice_ResourceServiceContracts() { return (EReference)officeEClass.getEStructuralFeatures().get(5); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EReference getOffice_SLAs() { return (EReference)officeEClass.getEStructuralFeatures().get(6); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EAttribute getOffice_ResourceURI() { return (EAttribute)officeEClass.getEStructuralFeatures().get(7); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EAttribute getOffice_APIGateway() { return (EAttribute)officeEClass.getEStructuralFeatures().get(8); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EClass getNamedElement() { return namedElementEClass; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EAttribute getNamedElement_Name() { return (EAttribute)namedElementEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EAttribute getNamedElement_Id() { return (EAttribute)namedElementEClass.getEStructuralFeatures().get(1); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EAttribute getNamedElement_Description() { return (EAttribute)namedElementEClass.getEStructuralFeatures().get(2); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EAttribute getNamedElement_UniqueID() { return (EAttribute)namedElementEClass.getEStructuralFeatures().get(3); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EEnum getVTStatus() { return vtStatusEEnum; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public FederationOfficeFactory getFederationOfficeFactory() { return (FederationOfficeFactory)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 officeEClass = createEClass(OFFICE); createEReference(officeEClass, OFFICE__REGISTERED_USERS); createEReference(officeEClass, OFFICE__CONTRIBUTED_TAXONOMIES); createEReference(officeEClass, OFFICE__OFFERED_SERVICES); createEReference(officeEClass, OFFICE__AVAILABLE_FEDERATION_SCENARIOS); createEReference(officeEClass, OFFICE__OFFERED_SERVICE_COMPOSITIONS); createEReference(officeEClass, OFFICE__RESOURCE_SERVICE_CONTRACTS); createEReference(officeEClass, OFFICE__SL_AS); createEAttribute(officeEClass, OFFICE__RESOURCE_URI); createEAttribute(officeEClass, OFFICE__API_GATEWAY); namedElementEClass = createEClass(NAMED_ELEMENT); createEAttribute(namedElementEClass, NAMED_ELEMENT__NAME); createEAttribute(namedElementEClass, NAMED_ELEMENT__ID); createEAttribute(namedElementEClass, NAMED_ELEMENT__DESCRIPTION); createEAttribute(namedElementEClass, NAMED_ELEMENT__UNIQUE_ID); // Create enums vtStatusEEnum = createEEnum(VT_STATUS); } /** * <!-- 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); // Obtain other dependent packages UsersPackage theUsersPackage = (UsersPackage)EPackage.Registry.INSTANCE.getEPackage(UsersPackage.eNS_URI); ResourcesPackage theResourcesPackage = (ResourcesPackage)EPackage.Registry.INSTANCE.getEPackage(ResourcesPackage.eNS_URI); NetworkelementsPackage theNetworkelementsPackage = (NetworkelementsPackage)EPackage.Registry.INSTANCE.getEPackage(NetworkelementsPackage.eNS_URI); ProvidersitePackage theProvidersitePackage = (ProvidersitePackage)EPackage.Registry.INSTANCE.getEPackage(ProvidersitePackage.eNS_URI); SlareservationsPackage theSlareservationsPackage = (SlareservationsPackage)EPackage.Registry.INSTANCE.getEPackage(SlareservationsPackage.eNS_URI); FederationscenariosPackage theFederationscenariosPackage = (FederationscenariosPackage)EPackage.Registry.INSTANCE.getEPackage(FederationscenariosPackage.eNS_URI); ServicesPackage theServicesPackage = (ServicesPackage)EPackage.Registry.INSTANCE.getEPackage(ServicesPackage.eNS_URI); AvailabilityContractPackage theAvailabilityContractPackage = (AvailabilityContractPackage)EPackage.Registry.INSTANCE.getEPackage(AvailabilityContractPackage.eNS_URI); UiObjectsPackage theUiObjectsPackage = (UiObjectsPackage)EPackage.Registry.INSTANCE.getEPackage(UiObjectsPackage.eNS_URI); ExperimentRuntimePackage theExperimentRuntimePackage = (ExperimentRuntimePackage)EPackage.Registry.INSTANCE.getEPackage(ExperimentRuntimePackage.eNS_URI); ExtensionInterfacesPackage theExtensionInterfacesPackage = (ExtensionInterfacesPackage)EPackage.Registry.INSTANCE.getEPackage(ExtensionInterfacesPackage.eNS_URI); FcielementsPackage theFcielementsPackage = (FcielementsPackage)EPackage.Registry.INSTANCE.getEPackage(FcielementsPackage.eNS_URI); // Add subpackages getESubpackages().add(theUsersPackage); getESubpackages().add(theResourcesPackage); getESubpackages().add(theNetworkelementsPackage); getESubpackages().add(theProvidersitePackage); getESubpackages().add(theSlareservationsPackage); getESubpackages().add(theFederationscenariosPackage); getESubpackages().add(theServicesPackage); getESubpackages().add(theAvailabilityContractPackage); getESubpackages().add(theUiObjectsPackage); getESubpackages().add(theExperimentRuntimePackage); getESubpackages().add(theExtensionInterfacesPackage); getESubpackages().add(theFcielementsPackage); // Create type parameters // Set bounds for type parameters // Add supertypes to classes officeEClass.getESuperTypes().add(this.getNamedElement()); // Initialize classes and features; add operations and parameters initEClass(officeEClass, Office.class, "Office", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getOffice_RegisteredUsers(), theUsersPackage.getOfficeUser(), null, "registeredUsers", null, 0, -1, Office.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getOffice_ContributedTaxonomies(), theServicesPackage.getTaxonomy(), null, "contributedTaxonomies", null, 0, -1, Office.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getOffice_OfferedServices(), theServicesPackage.getOfferedService(), null, "offeredServices", null, 0, -1, Office.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getOffice_AvailableFederationScenarios(), theFederationscenariosPackage.getRequestedFederationScenario(), null, "availableFederationScenarios", null, 0, -1, Office.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getOffice_OfferedServiceCompositions(), theServicesPackage.getServiceComposition(), null, "offeredServiceCompositions", null, 0, -1, Office.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getOffice_ResourceServiceContracts(), theAvailabilityContractPackage.getResourceServiceContract(), null, "ResourceServiceContracts", null, 0, -1, Office.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getOffice_SLAs(), theSlareservationsPackage.getSLA(), null, "SLAs", null, 0, -1, Office.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getOffice_ResourceURI(), ecorePackage.getEString(), "resourceURI", null, 0, 1, Office.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getOffice_APIGateway(), ecorePackage.getEString(), "APIGateway", null, 0, 1, Office.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(namedElementEClass, NamedElement.class, "NamedElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getNamedElement_Name(), ecorePackage.getEString(), "name", null, 0, 1, NamedElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getNamedElement_Id(), ecorePackage.getEInt(), "id", null, 0, 1, NamedElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getNamedElement_Description(), ecorePackage.getEString(), "description", null, 0, 1, NamedElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getNamedElement_UniqueID(), ecorePackage.getEString(), "uniqueID", null, 0, 1, NamedElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); // Initialize enums and add enum literals initEEnum(vtStatusEEnum, VTStatus.class, "VTStatus"); addEEnumLiteral(vtStatusEEnum, VTStatus.NEW); addEEnumLiteral(vtStatusEEnum, VTStatus.REQUESTED); addEEnumLiteral(vtStatusEEnum, VTStatus.SCHEDULED_PROVISIONING); addEEnumLiteral(vtStatusEEnum, VTStatus.MODIFIED); addEEnumLiteral(vtStatusEEnum, VTStatus.REJECTED); addEEnumLiteral(vtStatusEEnum, VTStatus.RUNNING); addEEnumLiteral(vtStatusEEnum, VTStatus.PROVISIONING); addEEnumLiteral(vtStatusEEnum, VTStatus.SHUT_DOWN); addEEnumLiteral(vtStatusEEnum, VTStatus.DELETED); addEEnumLiteral(vtStatusEEnum, VTStatus.SHUTTING_DOWN); addEEnumLiteral(vtStatusEEnum, VTStatus.SCHEDULED_SHUT_DOWN); // Create resource createResource(eNS_URI); } } //FederationOfficePackageImpl