示例#1
0
 /**
  * {@inheritDoc}
  *
  * @throws IOException
  */
 public void writeStub(IStub stub, IProgressMonitor progressMonitor) throws CoreException {
   try {
     fileExporter.writeStub(stub);
   } catch (IOException ex) {
     throw PharUIUtil.createCoreException(ex.getLocalizedMessage(), ex);
   }
 }
示例#2
0
 /** {@inheritDoc} */
 public void writeFile(IFile resource, IPath destinationPath) throws CoreException {
   try {
     fileExporter.write(resource, destinationPath.toString());
   } catch (IOException ex) {
     throw PharUIUtil.createCoreException(ex.getLocalizedMessage(), ex);
   }
 }
示例#3
0
  /** {@inheritDoc} */
  public void close() throws CoreException {
    if (fileExporter != null) {
      try {

        fileExporter.finished();
        registerInWorkspaceIfNeeded();
      } catch (IOException ex) {
        throw PharUIUtil.createCoreException(ex.getLocalizedMessage(), ex);
      }
    }
  }
示例#4
0
  public void writeSignature(IProgressMonitor monitor) throws CoreException {
    if (fileExporter != null) {
      try {

        // if (fJarPackage.isUseSignature()) {
        fileExporter.writeSignature();
        // }
      } catch (IOException ex) {
        throw PharUIUtil.createCoreException(ex.getLocalizedMessage(), ex);
      }
    }
  }
示例#5
0
  /**
   * Checks if the JAR file can be overwritten. If the JAR package setting does not allow to
   * overwrite the JAR then a dialog will ask the user again.
   *
   * @param parent the parent for the dialog, or <code>null</code> if no dialog should be presented
   * @return <code>true</code> if it is OK to create the JAR
   */
  protected boolean canCreateJar(Shell parent) {
    File file = fJarPackage.getAbsolutePharLocation().toFile();
    if (file.exists()) {
      if (!file.canWrite()) return false;
      if (fJarPackage.allowOverwrite()) return true;
      return parent != null
          && PharUIUtil.askForOverwritePermission(
              parent, fJarPackage.getAbsolutePharLocation(), true);
    }

    // Test if directory exists
    String path = file.getAbsolutePath();
    int separatorIndex = path.lastIndexOf(File.separator);
    if (separatorIndex == -1) // i.e.- default directory, which is fine
    return true;
    File directory = new File(path.substring(0, separatorIndex));
    if (!directory.exists()) {
      if (PharUIUtil.askToCreateDirectory(parent, directory)) return directory.mkdirs();
      else return false;
    }
    return true;
  }
示例#6
0
  /** {@inheritDoc} */
  public void open(PharPackage jarPackage, Shell displayShell, MultiStatus statusMsg)
      throws CoreException {
    super.open(jarPackage, displayShell, statusMsg);
    fJarPackage = jarPackage;
    Assert.isTrue(
        fJarPackage.isValid(), "The PHAR package specification is invalid"); // $NON-NLS-1$
    if (!canCreateJar(displayShell)) throw new OperationCanceledException();

    try {
      fileExporter = PharExportHelper.createFileExporter(fJarPackage);
    } catch (IOException ex) {
      throw PharUIUtil.createCoreException(ex.getLocalizedMessage(), ex);
    }
    // fJarWriter= new PharWriter3(fJarPackage, displayShell);
  }