
io.fabric8.utils.FabricValidations Maven / Gradle / Ivy
/**
* Copyright 2005-2016 Red Hat, Inc.
*
* Red Hat licenses this file to you 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 io.fabric8.utils;
import java.util.Collection;
import java.util.List;
import java.util.regex.Pattern;
public final class FabricValidations {
// container name must be lower case only, and without dots
private static final Pattern ALLOWED_CONTAINER_NAMES_PATTERN = Pattern.compile("^[a-z0-9]+[a-z0-9_-]*$");
// we allow using dot in profile names, and also mixed case
private static final Pattern ALLOWED_PROFILE_NAMES_PATTERN = Pattern.compile("^[a-z0-9]+[\\.a-z0-9_-]*$");
private FabricValidations() {
//Utility Class
}
public static void validateProfileNames(Collection profileNames) {
if (profileNames != null && !profileNames.isEmpty()) {
for (String profileName : profileNames)
validateProfileName(profileName);
}
}
public static void validateProfileName(String profileName) {
if (!isValidProfileName(profileName)) {
throw new IllegalArgumentException("Profile name '" + profileName + "' is invalid. Profile name must be: lower-case letters, numbers, and . _ or - characters");
}
}
public static void validateContainerNames(List containerNames) {
if (containerNames != null && !containerNames.isEmpty()) {
for (String containerName : containerNames) {
validateContainerName(containerName);
}
}
}
public static void validateContainerName(String containerName) {
if (!isValidContainerName(containerName)) {
throw new IllegalArgumentException("Container name '" + containerName + "' is invalid. Container name must be: lower-case letters, numbers, and _ or - characters");
}
}
/**
* @deprecated use {@link #isValidContainerName(String)}
*/
@Deprecated
public static boolean isValidName(String containerName) {
return isValidContainerName(containerName);
}
public static boolean isValidContainerName(String containerName) {
return containerName != null && !containerName.isEmpty() && ALLOWED_CONTAINER_NAMES_PATTERN.matcher(containerName).matches();
}
public static boolean isValidProfileName(String name) {
return name != null && !name.isEmpty() && ALLOWED_PROFILE_NAMES_PATTERN.matcher(name).matches();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy