/* * Copyright 2013-2014 Grzegorz Ligas <ligasgr@gmail.com> and other contributors * (see the CONTRIBUTORS file). * * 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 org.intellij.xquery.runner; import java.util.List; public class UniqueNameGenerator { public UniqueNameGenerator() { } public static String generateUniqueNameUsingBaseName(String baseName, List<String> allNames) { if (nameIsNotTaken(baseName, allNames)) return baseName; int i = 1; do { String baseNameWithNumber = baseName + i; if (nameIsNotTaken(baseNameWithNumber, allNames)) return baseNameWithNumber; i++; } while (i < Integer.MAX_VALUE); return ""; } private static boolean nameIsNotTaken(String name, List<String> allNames) { for (String existingName : allNames) { if (name.equals(existingName)) return false; } return true; } }