001 /* Copyright (c) 2000-2006 hamcrest.org
002 */
003 package org.hamcrest.core;
004
005 import org.hamcrest.Factory;
006 import org.hamcrest.Matcher;
007
008 /**
009 * Tests if the argument is a string that contains a substring.
010 */
011 public class StringStartsWith extends SubstringMatcher {
012 public StringStartsWith(String substring) {
013 super(substring);
014 }
015
016 @Override
017 protected boolean evalSubstringOf(String s) {
018 return s.startsWith(substring);
019 }
020
021 @Override
022 protected String relationship() {
023 return "starting with";
024 }
025
026 /**
027 * Creates a matcher that matches if the examined {@link String} starts with the specified
028 * {@link String}.
029 * <p/>
030 * For example:
031 * <pre>assertThat("myStringOfNote", startsWith("my"))</pre>
032 *
033 * @param prefix
034 * the substring that the returned matcher will expect at the start of any examined string
035 */
036 @Factory
037 public static Matcher<String> startsWith(String prefix) {
038 return new StringStartsWith(prefix);
039 }
040
041 }