WEB开发网
开发学院软件开发Java 使用 EMF Validation 框架来验证 EMF 模型 阅读

使用 EMF Validation 框架来验证 EMF 模型

 2010-03-03 00:00:00 来源:WEB开发网   
核心提示: 清单 7 是对之前定义的 bacth constraint 定义的修改,当事件类型不为空是,使用 EMF Validation 框架来验证 EMF 模型(9),也就是说验证服务收到了模型属性变更的通知事件,此时触发验证检查新的属性值是否为空

清单 7 是对之前定义的 bacth constraint 定义的修改,当事件类型不为空是,也就是说验证服务收到了模型属性变更的通知事件,此时触发验证检查新的属性值是否为空。

清单 7. 之前定义的 bacth constraint 定义的修改

 public class NonEmptyNamesConstraint extends AbstractModelConstraint { 
 public IStatus validate(IValidationContext ctx) { 
  EObject eObj = ctx.getTarget(); 
  EMFEventType eType = ctx.getEventType(); 
  
  // bacth validation 时调用 
  if (eType == EMFEventType.NULL) { 
  String name = null; 
  if (eObj instanceof Writer) { 
   name = ((Writer)eObj).getName(); 
  } else if (eObj instanceof Library) { 
   name = ((Library)eObj).getName(); 
  } else if (eObj instanceof Book) { 
   name = ((Book)eObj).getTitle(); 
  } 
  
  if (name == null || name.length() == 0) { 
 return ctx.createFailureStatus(new Object[] {eObj.eClass().getName()}); 
  } 
  // live validation 时调用 
  } else { 
  Object newValue = ctx.getFeatureNewValue(); 
  
  if (newValue == null || ((String)newValue).length() == 0) { 
 return ctx.createFailureStatus(new Object[] {eObj.eClass().getName()}); 
  } 
  } 
  
  return ctx.createSuccessStatus(); 
 } 
 } 

上一页  4 5 6 7 8 9 10  下一页

Tags:使用 EMF Validation

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接