/*
 * Copyright 2003-2011 JetBrains s.r.o.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package jetbrains.mps.ide.projectPane.fileSystem.actions.providers;

import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.vfs.VirtualFileManager;

public class CopyPasteFilesData {
  private static final String CUT = "cut";
  private static final String COPY = "copy";
  private final boolean myIsCut;
  private final VirtualFile[] myFiles;

  public String[] getPresentation() {
    String[] presentation = new String[myFiles.length + 1];
    if (myIsCut) {
      presentation[0] = CUT;
    } else {
      presentation[0] = COPY;
    }
    for (int i = 0; i < myFiles.length; i++) {
      presentation[i + 1] = myFiles[i].getUrl();
    }
    return presentation;
  }

  public CopyPasteFilesData(VirtualFile[] files, boolean isCut) {
    myFiles = files;
    myIsCut = isCut;
  }

  public CopyPasteFilesData(String[] presentation) {
    myFiles = new VirtualFile[presentation.length - 1];
    myIsCut = presentation[0].equals(CUT);
    for (int i = 0; i < myFiles.length; i++) {
      myFiles[i] = VirtualFileManager.getInstance().findFileByUrl(presentation[i + 1]);
    }
  }

  public VirtualFile[] getFiles() {
    return myFiles;
  }

  public boolean isCut() {
    return myIsCut;
  }

  public boolean hasAnythingToDo() {
    return myFiles.length != 0;
  }
}
