Beispiel #1
0
  public static SyncDLObject toSyncDLObject(DLFolder dlFolder, String event) {
    SyncDLObject syncDLObject = new SyncDLObjectImpl();

    syncDLObject.setCompanyId(dlFolder.getCompanyId());
    syncDLObject.setCreateDate(dlFolder.getCreateDate());
    syncDLObject.setModifiedDate(dlFolder.getModifiedDate());
    syncDLObject.setRepositoryId(dlFolder.getRepositoryId());
    syncDLObject.setParentFolderId(dlFolder.getParentFolderId());
    syncDLObject.setName(dlFolder.getName());
    syncDLObject.setExtension(StringPool.BLANK);
    syncDLObject.setMimeType(StringPool.BLANK);
    syncDLObject.setDescription(dlFolder.getDescription());
    syncDLObject.setChangeLog(StringPool.BLANK);
    syncDLObject.setExtraSettings(StringPool.BLANK);
    syncDLObject.setVersion(StringPool.BLANK);
    syncDLObject.setSize(0);
    syncDLObject.setChecksum(StringPool.BLANK);
    syncDLObject.setEvent(event);
    syncDLObject.setLockExpirationDate(null);
    syncDLObject.setLockUserId(0);
    syncDLObject.setLockUserName(StringPool.BLANK);
    syncDLObject.setType(SyncConstants.TYPE_FOLDER);
    syncDLObject.setTypePK(dlFolder.getFolderId());
    syncDLObject.setTypeUuid(dlFolder.getUuid());

    return syncDLObject;
  }
Beispiel #2
0
  public static SyncDLObject toSyncDLObject(
      DLFileEntry dlFileEntry, String event, boolean excludeWorkingCopy)
      throws PortalException, SystemException {

    DLFileVersion dlFileVersion = null;

    Date lockExpirationDate = null;
    long lockUserId = 0;
    String lockUserName = StringPool.BLANK;
    String type = null;

    Lock lock = dlFileEntry.getLock();

    if ((lock == null) || excludeWorkingCopy) {
      dlFileVersion =
          DLFileVersionLocalServiceUtil.getFileVersion(
              dlFileEntry.getFileEntryId(), dlFileEntry.getVersion());

      type = SyncConstants.TYPE_FILE;
    } else {
      dlFileVersion =
          DLFileVersionLocalServiceUtil.getFileVersion(
              dlFileEntry.getFileEntryId(), DLFileEntryConstants.PRIVATE_WORKING_COPY_VERSION);

      lockExpirationDate = lock.getExpirationDate();
      lockUserId = lock.getUserId();
      lockUserName = lock.getUserName();
      type = SyncConstants.TYPE_PRIVATE_WORKING_COPY;
    }

    SyncDLObject syncDLObject = new SyncDLObjectImpl();

    syncDLObject.setCompanyId(dlFileVersion.getCompanyId());
    syncDLObject.setCreateDate(dlFileVersion.getCreateDate());
    syncDLObject.setModifiedDate(dlFileVersion.getModifiedDate());
    syncDLObject.setRepositoryId(dlFileVersion.getRepositoryId());
    syncDLObject.setParentFolderId(dlFileVersion.getFolderId());
    syncDLObject.setName(dlFileVersion.getTitle());
    syncDLObject.setExtension(dlFileVersion.getExtension());
    syncDLObject.setMimeType(dlFileVersion.getMimeType());
    syncDLObject.setDescription(dlFileVersion.getDescription());
    syncDLObject.setChangeLog(dlFileVersion.getChangeLog());
    syncDLObject.setExtraSettings(dlFileVersion.getExtraSettings());
    syncDLObject.setVersion(dlFileVersion.getVersion());
    syncDLObject.setSize(dlFileVersion.getSize());
    syncDLObject.setChecksum(getChecksum(dlFileVersion));
    syncDLObject.setEvent(event);
    syncDLObject.setLockExpirationDate(lockExpirationDate);
    syncDLObject.setLockUserId(lockUserId);
    syncDLObject.setLockUserName(lockUserName);
    syncDLObject.setType(type);
    syncDLObject.setTypePK(dlFileEntry.getFileEntryId());
    syncDLObject.setTypeUuid(dlFileEntry.getUuid());

    return syncDLObject;
  }
  /**
   * Converts the soap model instance into a normal model instance.
   *
   * @param soapModel the soap model instance to convert
   * @return the normal model instance
   */
  public static SyncDLObject toModel(SyncDLObjectSoap soapModel) {
    if (soapModel == null) {
      return null;
    }

    SyncDLObject model = new SyncDLObjectImpl();

    model.setSyncDLObjectId(soapModel.getSyncDLObjectId());
    model.setCompanyId(soapModel.getCompanyId());
    model.setUserId(soapModel.getUserId());
    model.setUserName(soapModel.getUserName());
    model.setCreateTime(soapModel.getCreateTime());
    model.setModifiedTime(soapModel.getModifiedTime());
    model.setRepositoryId(soapModel.getRepositoryId());
    model.setParentFolderId(soapModel.getParentFolderId());
    model.setTreePath(soapModel.getTreePath());
    model.setName(soapModel.getName());
    model.setExtension(soapModel.getExtension());
    model.setMimeType(soapModel.getMimeType());
    model.setDescription(soapModel.getDescription());
    model.setChangeLog(soapModel.getChangeLog());
    model.setExtraSettings(soapModel.getExtraSettings());
    model.setVersion(soapModel.getVersion());
    model.setVersionId(soapModel.getVersionId());
    model.setSize(soapModel.getSize());
    model.setChecksum(soapModel.getChecksum());
    model.setEvent(soapModel.getEvent());
    model.setLanTokenKey(soapModel.getLanTokenKey());
    model.setLastPermissionChangeDate(soapModel.getLastPermissionChangeDate());
    model.setLockExpirationDate(soapModel.getLockExpirationDate());
    model.setLockUserId(soapModel.getLockUserId());
    model.setLockUserName(soapModel.getLockUserName());
    model.setType(soapModel.getType());
    model.setTypePK(soapModel.getTypePK());
    model.setTypeUuid(soapModel.getTypeUuid());

    return model;
  }
  @Override
  public SyncDLObject addSyncDLObject(
      long companyId,
      long userId,
      String userName,
      long modifiedTime,
      long repositoryId,
      long parentFolderId,
      String treePath,
      String name,
      String extension,
      String mimeType,
      String description,
      String changeLog,
      String extraSettings,
      String version,
      long versionId,
      long size,
      String checksum,
      String event,
      Date lockExpirationDate,
      long lockUserId,
      String lockUserName,
      String type,
      long typePK,
      String typeUuid)
      throws PortalException {

    if (!isDefaultRepository(parentFolderId)) {
      return null;
    }

    SyncDLObject syncDLObject = syncDLObjectPersistence.fetchByT_T(type, typePK);

    if (syncDLObject == null) {
      long syncDLObjectId = counterLocalService.increment();

      syncDLObject = syncDLObjectPersistence.create(syncDLObjectId);

      syncDLObject.setCompanyId(companyId);
      syncDLObject.setCreateTime(modifiedTime);
      syncDLObject.setRepositoryId(repositoryId);
      syncDLObject.setType(type);
      syncDLObject.setTypePK(typePK);
      syncDLObject.setTypeUuid(typeUuid);

      if (type.equals(SyncDLObjectConstants.TYPE_PRIVATE_WORKING_COPY)) {
        SyncDLObject approvedSyncDLObject =
            syncDLObjectPersistence.fetchByT_T(SyncDLObjectConstants.TYPE_FILE, typePK);

        approvedSyncDLObject.setModifiedTime(modifiedTime);
        approvedSyncDLObject.setLockExpirationDate(lockExpirationDate);
        approvedSyncDLObject.setLockUserId(lockUserId);
        approvedSyncDLObject.setLockUserName(lockUserName);

        syncDLObjectPersistence.update(approvedSyncDLObject);
      }
    } else if (syncDLObject.getModifiedTime() >= modifiedTime) {
      return null;
    } else if (type.equals(SyncDLObjectConstants.TYPE_FILE)) {
      SyncDLObject pwcSyncDLObject =
          syncDLObjectPersistence.fetchByT_T(
              SyncDLObjectConstants.TYPE_PRIVATE_WORKING_COPY, typePK);

      if (pwcSyncDLObject != null) {
        DLFileEntry dlFileEntry = dlFileEntryLocalService.fetchDLFileEntry(typePK);

        if ((dlFileEntry == null) || !dlFileEntry.isCheckedOut()) {
          syncDLObjectPersistence.remove(pwcSyncDLObject);
        }
      }
    } else if (type.equals(SyncDLObjectConstants.TYPE_PRIVATE_WORKING_COPY)) {
      if (event.equals(SyncDLObjectConstants.EVENT_RESTORE)
          || event.equals(SyncDLObjectConstants.EVENT_TRASH)) {

        SyncDLObject approvedSyncDLObject =
            syncDLObjectPersistence.fetchByT_T(SyncDLObjectConstants.TYPE_FILE, typePK);

        approvedSyncDLObject.setEvent(event);

        syncDLObjectPersistence.update(approvedSyncDLObject);
      }
    }

    syncDLObject.setUserId(userId);
    syncDLObject.setUserName(userName);
    syncDLObject.setModifiedTime(modifiedTime);
    syncDLObject.setParentFolderId(parentFolderId);
    syncDLObject.setTreePath(treePath);
    syncDLObject.setName(name);
    syncDLObject.setExtension(extension);
    syncDLObject.setMimeType(mimeType);
    syncDLObject.setDescription(description);
    syncDLObject.setChangeLog(changeLog);
    syncDLObject.setVersion(version);
    syncDLObject.setVersionId(versionId);
    syncDLObject.setSize(size);
    syncDLObject.setChecksum(checksum);
    syncDLObject.setEvent(event);
    syncDLObject.setLockExpirationDate(lockExpirationDate);
    syncDLObject.setLockUserId(lockUserId);
    syncDLObject.setLockUserName(lockUserName);

    syncDLObject = syncDLObjectPersistence.update(syncDLObject);

    if (type.equals(SyncDLObjectConstants.TYPE_FILE)
        && ArrayUtil.contains(
            PortletPropsValues.SYNC_MAC_PACKAGE_METADATA_FILE_NAMES, syncDLObject.getName())) {

      SyncDLObject parentFolderSyncDLObject =
          syncDLObjectPersistence.fetchByT_T(
              SyncDLObjectConstants.TYPE_FOLDER, syncDLObject.getParentFolderId());

      String parentFolderExtension = FileUtil.getExtension(parentFolderSyncDLObject.getName());

      if (ArrayUtil.contains(
          PortletPropsValues.SYNC_MAC_PACKAGE_FOLDER_EXTENSIONS, parentFolderExtension)) {

        JSONObject extraSettingsJSONObject =
            JSONFactoryUtil.createJSONObject(parentFolderSyncDLObject.getExtraSettings());

        extraSettingsJSONObject.put("macPackage", true);

        parentFolderSyncDLObject.setExtraSettings(extraSettingsJSONObject.toString());

        syncDLObjectPersistence.update(parentFolderSyncDLObject);
      }
    }

    if (type.equals(SyncDLObjectConstants.TYPE_FOLDER)) {
      if (Validator.isNull(treePath)) {
        return syncDLObject;
      }

      if (event.equals(SyncDLObjectConstants.EVENT_MOVE)) {
        moveSyncDLObjects(syncDLObject);
      } else if (event.equals(SyncDLObjectConstants.EVENT_RESTORE)) {
        restoreSyncDLObjects(syncDLObject);
      } else if (event.equals(SyncDLObjectConstants.EVENT_TRASH)) {
        trashSyncDLObjects(syncDLObject);
      }
    } else if (event.equals(SyncDLObjectConstants.EVENT_DELETE)) {
      try {
        syncDLFileVersionDiffLocalService.deleteSyncDLFileVersionDiffs(typePK);
      } catch (Exception e) {
        _log.error(e, e);
      }
    }

    return syncDLObject;
  }