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 StringEndsWith extends SubstringMatcher {
012        public StringEndsWith(String substring) {
013            super(substring);
014        }
015    
016        @Override
017        protected boolean evalSubstringOf(String s) {
018            return s.endsWith(substring);
019        }
020    
021        @Override
022        protected String relationship() {
023            return "ending with";
024        }
025    
026        /**
027         * Creates a matcher that matches if the examined {@link String} ends with the specified
028         * {@link String}.
029         * <p/>
030         * For example:
031         * <pre>assertThat("myStringOfNote", endsWith("Note"))</pre>
032         * 
033         * @param suffix
034         *      the substring that the returned matcher will expect at the end of any examined string
035         */
036        @Factory
037        public static Matcher<String> endsWith(String suffix) {
038            return new StringEndsWith(suffix);
039        }
040    
041    }