class CaseServiceImpl implements CaseService {

    @Override
    public CaseFileInstance newCaseFileInstance(String deploymentId, String caseDefinition, Map<String, Object> data) {
        CaseDefinition def = caseRuntimeDataService.getCase(deploymentId, caseDefinition);
        if (def == null) {
            throw new CaseDefinitionNotFoundException("Case definition " + caseDefinition + " does not exist in deployment " + deploymentId);
        }
        CaseFileInstanceImpl caseFile = new CaseFileInstanceImpl(caseDefinition, data);
        caseFile.setupRoles(def.getCaseRoles());
        caseFile.setAccessRestrictions(def.getDataAccessRestrictions());
        
        return caseFile;
    }

    public  CaseServiceImpl();

}