/**
* Copyright (C) 2001-2017 by RapidMiner and the contributors
*
* Complete list of developers available at our web site:
*
* http://rapidminer.com
*
* This program is free software: you can redistribute it and/or modify it under the terms of the
* GNU Affero General Public License as published by the Free Software Foundation, either version 3
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
* even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License along with this program.
* If not, see http://www.gnu.org/licenses/.
*/
package com.rapidminer.parameter;
/**
* A parameter type for specifying a repository location.
*
* @author Simon Fischer, Sebastian Land
*/
public class ParameterTypeRepositoryLocation extends ParameterTypeString {
private static final long serialVersionUID = 1L;
private boolean allowFolders, allowEntries, allowAbsoluteEntries, enforceValidRepositoryEntryName,
onlyWriteableLocations;
/**
* Creates a new parameter type for files with the given extension. If the extension is null no
* file filters will be used.
*/
public ParameterTypeRepositoryLocation(String key, String description, boolean optional) {
this(key, description, true, false, optional);
}
/**
* Creates a new parameter type for files with the given extension. If the extension is null no
* file filters will be used.
*/
public ParameterTypeRepositoryLocation(String key, String description, boolean allowEntries, boolean allowDirectories,
boolean optional) {
this(key, description, allowEntries, allowDirectories, false, optional, false, false);
}
public ParameterTypeRepositoryLocation(String key, String description, boolean allowEntries, boolean allowDirectories,
boolean allowAbsoluteEntries, boolean optional, boolean enforceValidRepositoryEntryName) {
this(key, description, allowEntries, allowDirectories, allowAbsoluteEntries, optional,
enforceValidRepositoryEntryName, false);
}
/**
* Creates a new parameter type for files with the given extension. If the extension is null no
* file filters will be used. If {@link #enforceValidRepositoryEntryName} is set to
* <code>true</code>, will enforce valid repository entry names.
**/
public ParameterTypeRepositoryLocation(String key, String description, boolean allowEntries, boolean allowDirectories,
boolean allowAbsoluteEntries, boolean optional, boolean enforceValidRepositoryEntryName,
boolean onlyWriteableLocations) {
super(key, description, null);
setOptional(optional);
setAllowEntries(allowEntries);
setAllowFolders(allowDirectories);
setAllowAbsoluteEntries(allowAbsoluteEntries);
setEnforceValidRepositoryEntryName(enforceValidRepositoryEntryName);
setOnlyWriteableLocations(onlyWriteableLocations);
}
/**
* Creates a new parameter type for files with the given extension. If the extension is null no
* file filters will be used.
*/
public ParameterTypeRepositoryLocation(String key, String description, boolean allowEntries, boolean allowDirectories,
boolean allowAbsoluteEntries, boolean optional) {
this(key, description, allowEntries, allowDirectories, allowAbsoluteEntries, optional, false, false);
}
public boolean isOnlyWriteableLocations() {
return onlyWriteableLocations;
}
public void setOnlyWriteableLocations(boolean onlyWriteableLocations) {
this.onlyWriteableLocations = onlyWriteableLocations;
}
public boolean isAllowFolders() {
return allowFolders;
}
public void setAllowFolders(boolean allowFolders) {
this.allowFolders = allowFolders;
}
public boolean isAllowEntries() {
return allowEntries;
}
public void setAllowEntries(boolean allowEntries) {
this.allowEntries = allowEntries;
}
public void setAllowAbsoluteEntries(boolean allowAbsoluteEntries) {
this.allowAbsoluteEntries = allowAbsoluteEntries;
}
public boolean isAllowAbsoluteEntries() {
return this.allowAbsoluteEntries;
}
public boolean isEnforceValidRepositoryEntryName() {
return enforceValidRepositoryEntryName;
}
public void setEnforceValidRepositoryEntryName(boolean enforceValidRepositoryEntryName) {
this.enforceValidRepositoryEntryName = enforceValidRepositoryEntryName;
}
}