View Javadoc

1   package de.matthias_burbach.mosaique.core.model;
2   
3   /***
4    * Is the abstract base class for parsed objects that relate to a file and a
5    * specific part of a file.
6    *
7    * @author Matthias Burbach
8    */
9   public abstract class AbstractFileItem {
10      /***
11       * Holds what is kind of global but still distinct for different contexts.
12       */
13      private Context context;
14  
15      /***
16       * The full path of the file this item relates to.
17       */
18      private String filePath;
19  
20      /***
21       * The character begin position of the text this item was parsed from.
22       * -1 means unknown.
23       */
24      private int begin = -1;
25  
26      /***
27       * The character end position of the text this item was parsed from.
28       * -1 means unknown.
29       */
30      private int end = -1;
31  
32      /***
33       * The text to search for within the underlying text file to find the text
34       * this item was parsed from.
35       * <p/>
36       * Serves as substitute if begin and end
37       * character positions are not available.
38       * <p/>
39       * Can be <code>null</code>.
40       */
41      private String primarySearchText;
42  
43      /***
44       * The text to search for within the underlying text file
45       * relative to the matching position of the primary search text
46       * to find the text this item was parsed from.
47       * <p/>
48       * Serves as substitute if begin and end character positions are not
49       * available.
50       * <p/>
51       * Can be <code>null</code>.
52       */
53      private String secondarySearchText;
54  
55      /***
56       * Signals that the (creator of this) file item has discovered an error
57       * related to this file item.
58       * Can be used to display the error state, for example.
59       */
60      private boolean erroneous = false;
61  
62      /***
63       * A message about this file item. Can be an error message if
64       * {@link #erroneous} is <code>true</code>.
65       */
66      private String message;
67  
68      /***
69       * @return A message about this file item. Can be an error message if
70       *         {@link #isErroneous()} is <code>true</code>.
71       */
72      public String getMessage() {
73          return message;
74      }
75  
76      /***
77       * @param message A message about this file item. Can be an error message if
78       *                {@link #isErroneous()} is <code>true</code>.
79       */
80      public void setMessage(final String message) {
81          this.message = message;
82      }
83  
84      /***
85       * @return Signals that the (creator of the) node has discovered an error
86       *         related to this node.
87       *         Can be used to display the error state, for example.
88       */
89      public boolean isErroneous() {
90          return erroneous;
91      }
92  
93      /***
94       * @param erroneous Signals that the (creator of the) node has discovered an
95       *                  error related to this node.
96       *                  Can be used to display the error state, for example.
97       */
98      public void setErroneous(final boolean erroneous) {
99          this.erroneous = erroneous;
100     }
101 
102     /***
103      * @return The full path of the file this item relates to.
104      */
105     public String getFilePath() {
106         return filePath;
107     }
108 
109     /***
110      * @param filePath The full path of the file this item relates to.
111      */
112     public void setFilePath(final String filePath) {
113         this.filePath = filePath;
114     }
115 
116     /***
117      * @return The character begin position of the text this item was parsed
118      *         from. -1 means unknown.
119      */
120     public int getBegin() {
121         return begin;
122     }
123 
124     /***
125      * @param begin The character begin position of the text this item was
126      *              parsed from. -1 means unknown.
127      */
128     public void setBegin(final int begin) {
129         this.begin = begin;
130     }
131 
132     /***
133      * @return The column number where the text this item was parsed from
134      *         starts. -1 means unknown.
135      */
136     public int getEnd() {
137         return end;
138     }
139 
140     /***
141      * @param end The character end position of the text this item was parsed
142      *            from. -1 means unknown.
143      */
144     public void setEnd(final int end) {
145         this.end = end;
146     }
147 
148     /***
149      * @return The text to search for within the underlying text file to find
150      *         the text this item was parsed from.
151      *         Can be <code>null</code>.
152      */
153     public String getPrimarySearchText() {
154         return primarySearchText;
155     }
156 
157     /***
158      * @param primarySearchText The text to search for within the underlying
159      *                          text file to find the text this item was parsed
160      *                          from.
161      *                          Can be <code>null</code>.
162      */
163     public void setPrimarySearchText(final String primarySearchText) {
164         this.primarySearchText = primarySearchText;
165     }
166 
167     /***
168      * @return The text to search for within the underlying
169      *         text file relative to the matching position of
170      *         the primary search text to find the text this
171      *         item was parsed from.
172      *         Can be <code>null</code>.
173      */
174     public String getSecondarySearchText() {
175         return secondarySearchText;
176     }
177 
178     /***
179      * @param secondarySearchText The text to search for within the underlying
180      *                            text file relative to the matching position of
181      *                            the primary search text to find the text this
182      *                            item was parsed from.
183      *                            Can be <code>null</code>.
184      */
185     public void setSecondarySearchText(final String secondarySearchText) {
186         this.secondarySearchText = secondarySearchText;
187     }
188 
189     /***
190      * @return The context holding the objects to be shared by a cluster of
191      *         application objects.
192      */
193     protected Context getContext() {
194         return context;
195     }
196 
197     /***
198      * @param context The context holding the objects to be shared by a cluster
199      *                of application objects.
200      */
201     protected void setContext(final Context context) {
202         this.context = context;
203     }
204 
205     /***
206      * @return The definition resolver to use by this instance
207      *         (in subclass code).
208      */
209     protected DefinitionResolver getDefinitionResolver() {
210         DefinitionResolver result = null;
211         if (context != null) {
212             result = context.getDefinitionResolver();
213         } else {
214             result = DefinitionResolver.getInstance();
215         }
216         return result;
217     }
218 
219     /***
220      * @return The JSP resolver to use by this instance
221      *         (in subclass code).
222      */
223     protected JspResolver getJspResolver() {
224         JspResolver result = null;
225         if (context != null) {
226             result = context.getJspResolver();
227         } else {
228             result = JspResolver.getInstance();
229         }
230         return result;
231     }
232 }