/**
* Generated by the MOIN Generator Version 3.0
**/
package com.sap.tc.moin.packageA0C291E809A9A1775514583F554D3E47D6E06046;
import org.eclipse.emf.ecore.EObject;
public final class MetamodelExtension implements com.sap.tc.moin.repository.metamodels.DeploymentExtension
{
private java.util.List<java.lang.String> mofIds;
private java.util.List<java.lang.String> jmiClasses;
private java.util.Map<java.lang.String, java.lang.String> mofIdToClassMapping;
private java.util.Map<java.lang.String, java.lang.String> nameToClassMapping;
private java.util.Map<java.lang.String, java.util.List<java.lang.String>> mofIdToQualifiedNameMapping;
private java.util.Map<java.lang.String, java.util.Set<java.lang.String>> typeToSupertypeMapping;
public MetamodelExtension() {
// empty
}
public void startup() {
// nothing
}
public void shutdown() {
// nothing
}
public java.util.Map<java.lang.String, java.lang.String> getMofIDClassNameMapping( ) {
synchronized(this) {
if ( mofIdToClassMapping == null ) {
initRecord( );
}
}
return mofIdToClassMapping;
}
public java.util.Map<java.lang.String, java.lang.String> getNameClassNameMapping( ) {
synchronized(this) {
if ( nameToClassMapping == null ) {
initRecord( );
}
}
return nameToClassMapping;
}
public java.util.List<java.lang.String> getMofIdsOfContainedModelElements() {
synchronized(this) {
if ( mofIds == null ) {
initModelElementNames();
}
}
return mofIds;
}
public java.util.List<java.lang.String> getAvailableClassNames() {
synchronized(this) {
if ( jmiClasses == null ) {
initRecord( );
}
}
return jmiClasses;
}
public java.util.Map<java.lang.String, java.util.List<java.lang.String>> getMofIdQualifiedNameMapping() {
synchronized(this) {
if ( mofIdToQualifiedNameMapping == null ) {
initRecord( );
}
}
return mofIdToQualifiedNameMapping;
}
public java.util.Map<java.lang.String, java.util.Set<java.lang.String>> getTypeToSupertypeMapping() {
synchronized(this) {
if ( typeToSupertypeMapping == null ) {
initRecord( );
}
}
return typeToSupertypeMapping;
}
private void initRecord( ) {
java.io.InputStream is = getClass( ).getClassLoader( ).getResourceAsStream( getClass( ).getPackage( ).getName( ).replace( '.', '/' ) + "/" + com.sap.tc.moin.repository.core.jmi.util.MetaModelExtensionRecordReaderWriter.EXTENSION_INDEX_NAME ); //$NON-NLS-1$
try {
com.sap.tc.moin.repository.core.jmi.util.MetaModelExtensionRecord rec = com.sap.tc.moin.repository.core.jmi.util.MetaModelExtensionRecordReaderWriter.readMetaModelExtensionRecord( is );
this.mofIdToClassMapping = java.util.Collections.unmodifiableMap(rec.getMofIdClassNameMap( ));
this.nameToClassMapping = java.util.Collections.unmodifiableMap(rec.getNameClassNameMap( ));
this.jmiClasses = java.util.Collections.unmodifiableList( rec.getJmiClasses() );
this.mofIdToQualifiedNameMapping = java.util.Collections.unmodifiableMap( rec.getMofIdToQualifiedNameMapping( ));
this.typeToSupertypeMapping = java.util.Collections.unmodifiableMap( rec.getTypeMofIdToSuperTypesMapping( ));
} catch ( java.io.IOException e ) {
throw new RuntimeException( e );
} finally {
try {
is.close();
} catch ( java.io.IOException e ) {
throw new RuntimeException(e);
}
}
}
private void initModelElementNames() {
java.io.InputStream is = getClass( ).getClassLoader( ).getResourceAsStream( getClass( ).getPackage( ).getName( ).replace( '.', '/' ) + "/" + com.sap.tc.moin.repository.core.jmi.util.MetaModelExtensionRecordReaderWriter.NAMES_INDEX_NAME ); //$NON-NLS-1$
try {
this.mofIds = com.sap.tc.moin.repository.core.jmi.util.MetaModelExtensionRecordReaderWriter.readElementNames( is );
} catch ( java.io.IOException e ) {
throw new RuntimeException( e );
} finally {
try {
is.close();
} catch ( java.io.IOException e ) {
throw new RuntimeException(e);
}
}
}
public java.lang.Class<EObject> getJmiClass(java.lang.String className) throws java.lang.ClassNotFoundException {
return (java.lang.Class<EObject>)java.lang.Class.forName(className);
}
public java.lang.String getVersion() {
return "MetaModelExtension Version 1.1"; //$NON-NLS-1$
}
public com.sap.tc.moin.repository.Version getCoreRuntimeVersion() {
return new com.sap.tc.moin.repository.core.jmi.util.VersionImpl(9, 0);
}
}