/*
* JBoss, Home of Professional Open Source.
*
* See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing.
*
* See the AUTHORS.txt file distributed with this work for a full listing of individual contributors.
*/
package org.teiid.designer.metamodels.core.extension.util;
import org.eclipse.emf.ecore.EEnumLiteral;
import org.eclipse.emf.ecore.EObject;
import org.teiid.designer.metamodels.core.extension.XAttribute;
import org.teiid.designer.metamodels.core.extension.XClass;
import org.teiid.designer.metamodels.core.extension.XEnum;
import org.teiid.designer.metamodels.core.extension.XEnumLiteral;
import org.teiid.designer.metamodels.core.extension.XPackage;
/**
* Utility class for the Extension Metamodel classes
*
* @since 8.0
*/
public class ExtensionUtil {
public static boolean addChildToParent(final EObject child, final EObject parent) {
if(child instanceof XClass) {
if(parent instanceof XPackage) {
((XPackage)parent).getEClassifiers().add((XClass)child);
}else {
return false;
}
}else if(child instanceof XAttribute){
if(parent instanceof XClass) {
((XClass)parent).getEStructuralFeatures().add((XAttribute)child);
}else {
return false;
}
}else if(child instanceof XEnum){
if(parent instanceof XPackage) {
((XPackage)parent).getEClassifiers().add((XEnum)child);
}else {
return false;
}
}else if(child instanceof XEnumLiteral){
if(parent instanceof XEnum) {
((XEnum)parent).getELiterals().add((EEnumLiteral)child);
}else {
return false;
}
}else {
return false;
}
return true;
}
}