blob: 6c71903a47df90f57e94ff8283d715155eb66245 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004, 2013 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* IBM - Initial API and implementation
*******************************************************************************/
package org.eclipse.pde.internal.build.ant;
import org.eclipse.core.runtime.Path;
public class ZipFileSet extends FileSet {
String prefix;
boolean file;
String permission;
/**
* @param dir
* @param defaultexcludes
* @param includes
* @param includesfile
* @param excludes
* @param excludesfile
* @param casesensitive
* @param permission
*/
public ZipFileSet(String dir, boolean file, String defaultexcludes, String includes, String includesfile, String excludes, String excludesfile, String prefix, String casesensitive, String permission) {
super(dir, defaultexcludes, includes, includesfile, excludes, excludesfile, casesensitive);
this.prefix = prefix;
this.file = file;
this.permission = permission;
}
@Override
protected void print(AntScript script) {
script.printTab();
script.print("<zipfileset"); //$NON-NLS-1$
if (file)
script.printAttribute("file", dir, false); //$NON-NLS-1$
else
script.printAttribute("dir", dir, false); //$NON-NLS-1$
script.printAttribute("defaultexcludes", defaultexcludes, false); //$NON-NLS-1$
script.printAttribute("includes", includes, false); //$NON-NLS-1$
script.printAttribute("includesfile", includesfile, false); //$NON-NLS-1$
script.printAttribute("excludes", excludes, false); //$NON-NLS-1$
script.printAttribute("excludesfile", excludesfile, false); //$NON-NLS-1$
script.printAttribute("casesensitive", casesensitive, false); //$NON-NLS-1$
if (prefixHasWildcards()) {
String pre = new Path(prefix).removeLastSegments(1).toString();
script.printAttribute("prefix", pre, false); //$NON-NLS-1$
} else if (file) {
script.printAttribute("fullpath", prefix, false); //$NON-NLS-1$
} else {
script.printAttribute("prefix", prefix, false); //$NON-NLS-1$
}
if (file)
script.printAttribute("filemode", permission, false); //$NON-NLS-1$
else
script.printAttribute("dirmode", permission, false); //$NON-NLS-1$
script.println("/>"); //$NON-NLS-1$
}
private boolean prefixHasWildcards() {
if (prefix == null)
return false;
return (prefix.indexOf('*') != -1 || prefix.indexOf('?') != -1);
}
}