package org.hawk.ifc;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EClassifier;
import org.eclipse.emf.ecore.EDataType;
import org.eclipse.emf.ecore.EReference;
import org.hawk.core.model.*;
public class IFCReference extends IFCObject implements IHawkReference {
EReference r;
public IFCReference(EReference re) {
super(re);
r = re;
}
@Override
public String getName() {
return r.getName();
}
// @Override
// public EStructuralFeature getEMFreference() {
// return r;
// }
@Override
public boolean isContainment() {
return r.isContainment();
}
@Override
public boolean isMany() {
return r.isMany();
}
// @Override
// public boolean isChangeable() {
//
// return r.isChangeable();
// }
// @Override
// public int getUpperBound() {
//
// return r.getUpperBound();
// }
// @Override
// public HawkClass getType() {
//
// return new EMFclass((EClass) r.getEType());
// }
@Override
public boolean isOrdered() {
return r.isOrdered();
}
@Override
public boolean isUnique() {
return r.isUnique();
}
@Override
public IHawkClassifier getType() {
EClassifier type = r.getEType();
if (type instanceof EClass)
return new IFCClass((EClass) r.getEType());
else if (type instanceof EDataType)
return new IFCDataType((EDataType) r.getEType());
else {
System.err.println("ref: " + r.getEType());
return null;
}
}
}