View Javadoc
1   /**
2    * Copyright (C) 2014-2015 Philip Helger (www.helger.com)
3    * philip[at]helger[dot]com
4    *
5    * Licensed under the Apache License, Version 2.0 (the "License");
6    * you may not use this file except in compliance with the License.
7    * You may obtain a copy of the License at
8    *
9    *         http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  package com.helger.schematron.pure.model;
18  
19  import java.util.List;
20  
21  import javax.annotation.Nonnull;
22  
23  import com.helger.commons.annotation.ReturnsMutableCopy;
24  
25  /**
26   * Base interface for all Schematron objects having text children (as Strings)
27   * 
28   * @author Philip Helger
29   */
30  public interface IPSHasTexts
31  {
32    /**
33     * Add a new text element.
34     * 
35     * @param sText
36     *        The text to be added. May not be <code>null</code>.
37     */
38    void addText (@Nonnull String sText);
39  
40    /**
41     * @return <code>true</code> if at least one text element is contained,
42     *         <code>false</code> if not
43     */
44    boolean hasAnyText ();
45  
46    /**
47     * @return A copy of all contained text elements. Never <code>null</code>.
48     */
49    @Nonnull
50    @ReturnsMutableCopy
51    List <String> getAllTexts ();
52  }