Skip to content
This repository has been archived by the owner on Jul 26, 2022. It is now read-only.

Commit

Permalink
Missing break
Browse files Browse the repository at this point in the history
clean CleanUpResponse
  • Loading branch information
vwiencek committed Sep 5, 2014
1 parent 8640a83 commit baf4ca1
Show file tree
Hide file tree
Showing 3 changed files with 83 additions and 39 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,8 @@ private void printResults(CleanupOperationResult operationResult) {

case NOK_RECENTLY_CLEANED:
out.println("Cleanup has been done recently, so it is not necessary. If you are sure it is necessary, override with --force.");

break;

case NOK_LOCAL_CHANGES:
out.println("Local changes detected. Please call 'up' first'.");
break;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
import org.syncany.database.FileContent;
import org.syncany.database.FileVersion;
import org.syncany.database.FileVersion.FileType;
import org.syncany.database.MultiChunkEntry;
import org.syncany.database.MultiChunkEntry.MultiChunkId;
import org.syncany.database.ObjectId;
import org.syncany.database.PartialFileHistory.FileHistoryId;
Expand Down Expand Up @@ -196,7 +197,65 @@ private void handleCleanUpRequest(CleanUpRequest cleanUpRequest) {

CleanupOperationResult cleanUpOperationResult = cleanUpOperation.execute();

CleanUpResponse cleanUpResponse = new CleanUpResponse();
StringBuilder messageBuilder = new StringBuilder();

switch (cleanUpOperationResult.getResultCode()) {
case NOK_DIRTY_LOCAL:
messageBuilder.append("Cannot cleanup database if local repository is in a dirty state; Call 'up' first.");
break;

case NOK_RECENTLY_CLEANED:
messageBuilder.append("Cleanup has been done recently, so it is not necessary. If you are sure it is necessary, override with --force.");
messageBuilder.append(System.getProperty("line.separator"));

case NOK_LOCAL_CHANGES:
messageBuilder.append("Local changes detected. Please call 'up' first'.");
break;

case NOK_REMOTE_CHANGES:
messageBuilder.append("Remote changes detected or repository is locked by another user. Please call 'down' first.");
break;

case NOK_OTHER_OPERATIONS_RUNNING:
messageBuilder.append("Cannot run cleanup while other clients are performing up/down/cleanup. Try again later.");
break;

case OK:
if (cleanUpOperationResult.getMergedDatabaseFilesCount() > 0) {
messageBuilder.append(cleanUpOperationResult.getMergedDatabaseFilesCount() + " database files merged.");
}

if (cleanUpOperationResult.getRemovedMultiChunks().size() > 0) {
long totalRemovedMultiChunkSize = 0;

for (MultiChunkEntry removedMultiChunk : cleanUpOperationResult.getRemovedMultiChunks().values()) {
totalRemovedMultiChunkSize += removedMultiChunk.getSize();
}

messageBuilder.append(String.format("%d multichunk(s) deleted on remote storage (freed %.2f MB)\n",
cleanUpOperationResult.getRemovedMultiChunks().size(), (double) totalRemovedMultiChunkSize / 1024 / 1024));
}

if (cleanUpOperationResult.getRemovedOldVersionsCount() > 0) {
messageBuilder.append(cleanUpOperationResult.getRemovedOldVersionsCount() + " file histories shortened.");
// TODO [low] This counts only the file histories, not file versions; not very helpful!
}

messageBuilder.append("Cleanup successful.");
break;

case OK_NOTHING_DONE:
messageBuilder.append("Cleanup not necessary. Nothing done.");
break;

default:
throw new RuntimeException("Invalid result code: " + cleanUpOperationResult.getResultCode().toString());
}

CleanUpResponse cleanUpResponse = new CleanUpResponse(cleanUpRequest.getId(), messageBuilder.toString());
cleanUpResponse.setMergedDatabaseFilesCount(cleanUpOperationResult.getMergedDatabaseFilesCount());
cleanUpResponse.setRemovedOldVersionsCount(cleanUpOperationResult.getRemovedOldVersionsCount());
cleanUpResponse.setResultCode(cleanUpOperationResult.getResultCode().toString());

eventBus.post(cleanUpResponse);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,58 +17,42 @@
*/
package org.syncany.operations.daemon.messages;

import java.io.File;
import java.util.ArrayList;

import org.simpleframework.xml.ElementList;
import org.simpleframework.xml.Element;

public class CleanUpResponse extends Response {
@ElementList(required = false, entry = "new")
private ArrayList<String> newFiles;
@Element(required = true)
private String resultCode;

@ElementList(required = false, entry = "changed")
private ArrayList<String> changedFiles;
@Element(required = true)
private int mergedDatabaseFilesCount = 0;

@ElementList(required = false, entry = "deleted")
private ArrayList<String> deletedFiles;
@Element(required = true)
private int removedOldVersionsCount = 0;

public CleanUpResponse() {
// Required default constructor!
}

public CleanUpResponse(int requestId) {
super(200, requestId, null);
public CleanUpResponse(int requestId, String message) {
super(200, requestId, message);
}

public ArrayList<String> getNewFiles() {
return newFiles;
}
public void setNewFiles(ArrayList<String> newFiles) {
this.newFiles = newFiles;
}
public ArrayList<String> getChangedFiles() {
return changedFiles;
public void setRemovedOldVersionsCount(int removedOldVersionsCount) {
this.removedOldVersionsCount = removedOldVersionsCount;
}
public void setChangedFiles(ArrayList<String> changedFiles) {
this.changedFiles = changedFiles;
public void setResultCode(String resultCode) {
this.resultCode = resultCode;
}
public ArrayList<String> getDeletedFiles() {
return deletedFiles;
public void setMergedDatabaseFilesCount(int mergedDatabaseFilesCount) {
this.mergedDatabaseFilesCount = mergedDatabaseFilesCount;
}
public void setDeletedFiles(ArrayList<String> deletedFiles) {
this.deletedFiles = deletedFiles;
}

public void addNewFile(String file){
if (newFiles == null) newFiles = new ArrayList<>();
newFiles.add(file);
public int getMergedDatabaseFilesCount() {
return mergedDatabaseFilesCount;
}
public void addChangedFile(String file){
if (changedFiles == null) changedFiles = new ArrayList<>();
changedFiles.add(file);
public String getResultCode() {
return resultCode;
}
public void addDeletedFile(String file){
if (deletedFiles == null) deletedFiles = new ArrayList<>();
deletedFiles.add(file);
public int getRemovedOldVersionsCount() {
return removedOldVersionsCount;
}
}

0 comments on commit baf4ca1

Please sign in to comment.