/** * Copyright (C) 2010-2017 Gordon Fraser, Andrea Arcuri and EvoSuite * contributors * * This file is part of EvoSuite. * * EvoSuite is free software: you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as published * by the Free Software Foundation, either version 3.0 of the License, or * (at your option) any later version. * * EvoSuite 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 * Lesser Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with EvoSuite. If not, see <http://www.gnu.org/licenses/>. */ package com.examples.with.different.packagename.concolic; public class StringSearch2 { private static int getFragmentLocation(String s) { int fragmentLocation = s.indexOf('#'); if (fragmentLocation == -1) return s.length(); return fragmentLocation; } public static void checkPathURN(String nuri) { // URI code String uri = nuri; int colonLocation = nuri.indexOf(':'); int fragmentLocation = getFragmentLocation(nuri); if (colonLocation == -1 || colonLocation > fragmentLocation || colonLocation == 0) throw new RuntimeException("No scheme in URI \"" + uri + "\""); // URN code String nurn = nuri; int secondColonLocation = nurn.indexOf(':', colonLocation + 1); if (secondColonLocation == -1 || secondColonLocation > fragmentLocation || secondColonLocation == colonLocation + 1) throw new RuntimeException("No protocol part in URN \"" + nurn + "\"."); if (!nurn.regionMatches(0, "urn", 0, colonLocation)) throw new RuntimeException("The identifier was no URN \"" + nurn + "\"."); // PathURN code if (uri.length() == secondColonLocation + 1) throw new RuntimeException("Empty Path URN"); if (uri.charAt(secondColonLocation + 1) != '/') throw new RuntimeException("Path URN has no '/': \"" + uri + "\""); if (!uri.regionMatches(colonLocation + 1, "path", 0, secondColonLocation - colonLocation - 1)) throw new RuntimeException("The identifier was no Path URN \"" + uri + "\"."); } }