1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.myfaces.shared.util;
20
21
22
23
24
25 public class CommentUtils
26 {
27 public static final String INLINE_SCRIPT_COMMENT = "//";
28 public static final String START_SCRIPT_COMMENT = "/*";
29 public static final String END_SCRIPT_COMMENT = "*/";
30 public static final String CDATA_SIMPLE_START = "<![CDATA[";
31 public static final String CDATA_SIMPLE_END = "]]>";
32 public static final String COMMENT_SIMPLE_START = "<!--";
33 public static final String COMMENT_SIMPLE_END = "-->";
34
35 public static boolean isStartMatchWithCommentedCDATA(String trimmedContent)
36 {
37 if (trimmedContent.startsWith(START_SCRIPT_COMMENT))
38 {
39 int offset = 2;
40 while (trimmedContent.charAt(offset) <= ' ')
41 {
42 offset++;
43 }
44 if (trimmedContent.startsWith(CDATA_SIMPLE_START, offset))
45 {
46 return true;
47 }
48 }
49 return false;
50 }
51
52 public static boolean isEndMatchWithCommentedCDATA(String trimmedContent)
53 {
54 if (trimmedContent.endsWith(END_SCRIPT_COMMENT))
55 {
56 int offset = trimmedContent.length()-3;
57 while (trimmedContent.charAt(offset) <= ' ')
58 {
59 offset--;
60 }
61
62
63 if (trimmedContent.startsWith(CDATA_SIMPLE_END, offset - 2))
64 {
65 return true;
66 }
67 }
68 return false;
69 }
70
71 public static boolean isEndMatchtWithInlineCommentedXmlCommentTag(String trimmedContent)
72 {
73 if (trimmedContent.endsWith(COMMENT_SIMPLE_END))
74 {
75 int offset = trimmedContent.length()-4;
76 while (trimmedContent.charAt(offset) <= ' ' &&
77 trimmedContent.charAt(offset) != '\n')
78 {
79 offset--;
80 }
81
82
83 if (trimmedContent.startsWith(INLINE_SCRIPT_COMMENT, offset - 1))
84 {
85 return true;
86 }
87 }
88 return false;
89 }
90
91 public static boolean isStartMatchWithInlineCommentedCDATA(String trimmedContent)
92 {
93 if (trimmedContent.startsWith(INLINE_SCRIPT_COMMENT))
94 {
95 int offset = 2;
96 while (trimmedContent.charAt(offset) <= ' ' &&
97 trimmedContent.charAt(offset) != '\n')
98 {
99 offset++;
100 }
101 if (trimmedContent.startsWith(CDATA_SIMPLE_START, offset))
102 {
103 return true;
104 }
105 }
106 return false;
107 }
108
109 public static boolean isEndMatchWithInlineCommentedCDATA(String trimmedContent)
110 {
111 if (trimmedContent.endsWith(CDATA_SIMPLE_END))
112 {
113 int offset = trimmedContent.length()- 4;
114 while (trimmedContent.charAt(offset) <= ' ' &&
115 trimmedContent.charAt(offset) != '\n')
116 {
117 offset--;
118 }
119
120
121 if (trimmedContent.startsWith(INLINE_SCRIPT_COMMENT, offset - 1))
122 {
123 return true;
124 }
125 }
126 return false;
127 }
128 }