@Override
 public RepositoryFile createFile(
     final Serializable parentFolderId,
     final RepositoryFile file,
     final IRepositoryFileData data,
     final RepositoryFileAcl acl,
     final String versionMessage) {
   if (data instanceof NodeRepositoryFileData) {
     return repositoryFileAdapter.unmarshal(
         repoWebService.createFileWithAcl(
             parentFolderId != null ? parentFolderId.toString() : null,
             repositoryFileAdapter.marshal(file),
             nodeRepositoryFileDataAdapter.marshal((NodeRepositoryFileData) data),
             repositoryFileAclAdapter.marshal(acl),
             versionMessage));
   } else if (data instanceof SimpleRepositoryFileData) {
     SimpleRepositoryFileData simpleData = (SimpleRepositoryFileData) data;
     return repositoryFileAdapter.unmarshal(
         repoWebService.createBinaryFileWithAcl(
             parentFolderId != null ? parentFolderId.toString() : null,
             repositoryFileAdapter.marshal(file),
             SimpleRepositoryFileDataDto.convert(simpleData),
             repositoryFileAclAdapter.marshal(acl),
             versionMessage));
   } else {
     throw new IllegalArgumentException();
   }
 }
 @Override
 public RepositoryFile createFolder(
     final Serializable parentFolderId,
     final RepositoryFile file,
     final RepositoryFileAcl acl,
     final String versionMessage) {
   return repositoryFileAdapter.unmarshal(
       repoWebService.createFolderWithAcl(
           parentFolderId != null ? parentFolderId.toString() : null,
           repositoryFileAdapter.marshal(file),
           repositoryFileAclAdapter.marshal(acl),
           versionMessage));
 }
 @Override
 public RepositoryFileAcl updateAcl(RepositoryFileAcl acl) {
   return repositoryFileAclAdapter.unmarshal(
       repoWebService.updateAcl(repositoryFileAclAdapter.marshal(acl)));
 }