package de.uni_koblenz.gremf.schema.impl;
import org.eclipse.emf.ecore.EDataType;
import org.eclipse.emf.ecore.EcorePackage;
import de.uni_koblenz.gremf.schema.GrEMFDomain;
import de.uni_koblenz.jgralab.schema.Schema;
import de.uni_koblenz.jgralab.schema.StringDomain;
public class GrEMFCharacterDomainImplProxy extends GrEMFBasicDomainImplProxy
implements StringDomain, GrEMFDomain {
private int originalEDataType;
protected GrEMFCharacterDomainImplProxy(Schema schema,
int originalEDataType, String name) {
super(schema.getStringDomain(), name);
this.originalEDataType = originalEDataType;
}
@Override
public EDataType getEMFDataType() {
if (this.originalEDataType == EcorePackage.ECHAR) {
return EcorePackage.eINSTANCE.getEChar();
} else {
return EcorePackage.eINSTANCE.getECharacterObject();
}
}
@Override
public Object getDefaultValue() {
return null;
}
@Override
public Object getEMFValue(Object jgralabValue) {
if (jgralabValue == null) {
return null;
}
return ((String) jgralabValue).charAt(0);
}
@Override
public Object getJGraLabValue(Object emfValue) {
if (emfValue == null) {
return null;
}
return ((Character) emfValue).toString();
}
}