/**
  * Copy data from a service object to a CIMI object.
  *
  * @param context The current context
  * @param dataService Source service object
  * @param dataCimi Destination CIMI object
  */
 protected void doCopyToCimi(
     final CimiContext context, final Job dataService, final CimiJob dataCimi) {
   this.fill(context, dataService, dataCimi);
   if (true == context.mustBeExpanded(dataCimi)) {
     dataCimi.setAction(dataService.getAction());
     dataCimi.setProgress(dataService.getProgress());
     dataCimi.setReturnCode(dataService.getReturnCode());
     dataCimi.setStatus(ConverterHelper.toString(dataService.getState()));
     dataCimi.setStatusMessage(dataService.getStatusMessage());
     dataCimi.setTimeOfStatusChange(dataService.getTimeOfStatusChange());
     dataCimi.setTargetResource(
         ConverterHelper.buildTargetResource(context, dataService.getTargetResource()));
     if ((null != dataService.getAffectedResources())
         && (dataService.getAffectedResources().size() > 0)) {
       TargetResource target;
       List<TargetResource> list = new ArrayList<TargetResource>();
       for (CloudResource resource : dataService.getAffectedResources()) {
         target = ConverterHelper.buildTargetResource(context, resource);
         if (null != target) {
           list.add(target);
         }
       }
       dataCimi.setAffectedResources(list.toArray(new TargetResource[list.size()]));
     }
     if (null != dataService.getParentJob()) {
       dataCimi.setParentJob(
           new ParentJob(context.makeHref(dataCimi, dataService.getParentJob().getUuid())));
     }
     if ((null != dataService.getNestedJobs()) && (dataService.getNestedJobs().size() > 0)) {
       List<NestedJob> list = new ArrayList<NestedJob>();
       for (Job job : dataService.getNestedJobs()) {
         list.add(new NestedJob(context.makeHref(dataCimi, job.getUuid())));
       }
       dataCimi.setNestedJobs(list.toArray(new NestedJob[list.size()]));
     }
   }
 }