public String toString(ReassignmentType type) {
   String result = ""; // $NON-NLS-1$
   for (int i = 0; i < size(); ++i) {
     TaskReassignment tr = get(i);
     if (tr.getType().equals(type)) {
       if (!result.isEmpty()) result += "^"; // $NON-NLS-1$
       result += tr.toString();
     }
   }
   return result;
 }
 public void add(String type, String string) {
   TaskReassignment tr = TaskExtensionsFactory.eINSTANCE.createTaskReassignment();
   tr.setType(ReassignmentType.get(type));
   add(tr);
   String tail = tr.fromString(string);
   while (tail != null) {
     tr = TaskExtensionsFactory.eINSTANCE.createTaskReassignment();
     tr.setType(ReassignmentType.get(type));
     add(tr);
     tail = tr.fromString(tail);
   }
 }
 public boolean replace(int index, String type, String string) {
   if (index >= 0) {
     if (index >= size()) {
       add(type, string);
       return true;
     }
   }
   TaskReassignment tr = get(index);
   String oldString = tr.toString();
   if (!tr.getType().getLiteral().equals(type) || !oldString.equals(string)) {
     tr.setType(ReassignmentType.get(type));
     tr.fromString(string);
     return true;
   }
   return false;
 }
 @Override
 public boolean add(EObject object) {
   Assert.isTrue(object instanceof TaskReassignment);
   object.eAdapters().add(this);
   ((TaskReassignment) object).setTask(task);
   return super.add(object);
 }