pcs.firePropertyChange(PROPERTY_PROGRESS_MSG, progressMessage, msg);
progressMessage = msg;
//check if name exits
IClass cls = ont.getClass(name);
// if exists, then do the magic
if(cls != null){
// copy property values
for(IProperty sp: source.getProperties()){
IProperty tp = (IProperty) convertResource(ont,sp);
if(tp != null){
// set property values
if(tp.isFunctional())
cls.setPropertyValue(tp,convertResource(ont,source.getPropertyValue(sp)));
else
cls.setPropertyValues(tp,convertResources(ont,source.getPropertyValues(sp)));
}
}
// copy disjoints
for(IClass c: source.getDisjointClasses()){
cls.addDisjointClass((IClass)convertResource(ont,c));
}
// copy necessary restrictions
ILogicExpression exp = source.getNecessaryRestrictions();
if(exp.getExpressionType() == ILogicExpression.OR){
cls.addSuperClass(ont.createClass((ILogicExpression) convertResource(ont,exp)));
}else{
for(Object c: exp){
if(c instanceof IRestriction)
cls.addNecessaryRestriction((IRestriction)convertResource(ont,c));
else if(c instanceof IClass)
cls.addSuperClass((IClass) convertResource(ont,c));
else if(c instanceof ILogicExpression)
cls.addSuperClass(ont.createClass((ILogicExpression) convertResource(ont,exp)));
}
}
// copy equivalent restrictions
exp = source.getEquivalentRestrictions();
if(exp.getExpressionType() == ILogicExpression.OR){
cls.addEquivalentClass(ont.createClass((ILogicExpression) convertResource(ont,exp)));
}else{
for(Object c: exp){
if(c instanceof IRestriction)
cls.addEquivalentRestriction((IRestriction)convertResource(ont,c));
else if(c instanceof IClass)
cls.addEquivalentClass((IClass) convertResource(ont,c));
else if(c instanceof ILogicExpression)
cls.addEquivalentClass(ont.createClass((ILogicExpression) convertResource(ont,exp)));
}
}
// copy instances
for(IInstance inst: source.getDirectInstances()){
IInstance i = ont.getInstance(inst.getName());
if(i == null){
i = cls.createInstance(inst.getName());
// copy property values
for(IProperty sp : inst.getProperties()){
IProperty tp = (IProperty) convertResource(ont,sp);
if(tp != null){
if(tp.isFunctional())