Class |
Line # |
Actions |
|||||
---|---|---|---|---|---|---|---|
Components | 29 | 11 | 0% | 9 | 8 |
1 | /* | |
2 | * Licensed to the Apache Software Foundation (ASF) under one | |
3 | * or more contributor license agreements. See the NOTICE file | |
4 | * distributed with this work for additional information | |
5 | * regarding copyright ownership. The ASF licenses this file | |
6 | * to you under the Apache License, Version 2.0 (the | |
7 | * "License"); you may not use this file except in compliance | |
8 | * with the License. You may obtain a copy of the License at | |
9 | * | |
10 | * http://www.apache.org/licenses/LICENSE-2.0 | |
11 | * | |
12 | * Unless required by applicable law or agreed to in writing, | |
13 | * software distributed under the License is distributed on an | |
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
15 | * KIND, either express or implied. See the License for the | |
16 | * specific language governing permissions and limitations | |
17 | * under the License. | |
18 | */ | |
19 | package org.devacfr.maven.skins.reflow.snippet; | |
20 | ||
21 | import java.util.ArrayList; | |
22 | ||
23 | import org.jsoup.internal.StringUtil; | |
24 | ||
25 | /** | |
26 | * @author Christophe Friederich | |
27 | * @version 2.4 | |
28 | */ | |
29 | public class Components extends ArrayList<Component<?>> { | |
30 | ||
31 | /** */ | |
32 | private static final long serialVersionUID = 1L; | |
33 | ||
34 | /** */ | |
35 | private static final Components EMPTY = new Components(); | |
36 | ||
37 | /** */ | |
38 | 0 | public static Components empty() { |
39 | 0 | return EMPTY; |
40 | } | |
41 | ||
42 | /** | |
43 | * | |
44 | */ | |
45 | 513 | public Components() { |
46 | } | |
47 | ||
48 | /** | |
49 | * @return | |
50 | */ | |
51 | 104 | public String html() { |
52 | 104 | final StringBuilder sb = StringUtil.borrowBuilder(); |
53 | 104 | for (final Component<?> component : this) { |
54 | 178 | if (sb.length() != 0) { |
55 | 74 | sb.append("\n"); |
56 | } | |
57 | 178 | final String html = component.getHtml(); |
58 | 178 | if (html != null) { |
59 | 178 | sb.append(html); |
60 | } | |
61 | } | |
62 | 104 | return StringUtil.releaseBuilder(sb); |
63 | } | |
64 | ||
65 | /** | |
66 | * Get the first matched element. | |
67 | * | |
68 | * @return The first matched component, or <code>null</code> if contents is empty. | |
69 | */ | |
70 | 138 | public Component<?> first() { |
71 | 138 | return isEmpty() ? null : get(0); |
72 | } | |
73 | ||
74 | /** | |
75 | * Get the last matched component. | |
76 | * | |
77 | * @return The last matched component, or <code>null</code> if contents is empty. | |
78 | */ | |
79 | 0 | public Component<?> last() { |
80 | 0 | return isEmpty() ? null : get(size() - 1); |
81 | } | |
82 | } |