Project

General

Profile

Download (1.63 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
 *
3
 */
4
package eu.etaxonomy.cdm.strategy.cache;
5

    
6
import java.util.ArrayList;
7
import java.util.List;
8
import java.util.SortedSet;
9
import java.util.TreeSet;
10

    
11
/**
12
 * Rules to define tagging for HTML tagged string output.
13
 *
14
 * @author a.mueller
15
 * @since 14/02/2012
16
 */
17
public class HTMLTagRules {
18

    
19
	private List<TagRule> rules = new ArrayList<>();
20

    
21
	private class TagRule{
22
		private TagRule(TagEnum type, String htmlTag){
23
		    this.type = type;
24
		    this.htmlTag = htmlTag;
25
		}
26
		private TagEnum type;
27
		private String htmlTag;
28
//		public TagEnum getType(){return this.type;}
29
//		public String getString(){return this.htmlTag;}
30
		@Override public String toString(){return type.name() + "-><" + htmlTag + ">";}
31
	}
32

    
33

    
34
	public HTMLTagRules addRule(TagEnum type, String htmlTag){
35
		if (type == null || htmlTag == null){
36
			throw new NullPointerException("Null tpye or htmlTag not allowed for HTMLTagRule");
37
		}
38
		rules.add(new TagRule(type, htmlTag));
39
		return this;
40
	}
41

    
42
	public SortedSet<String> getRule(TagEnum type){
43
		SortedSet<String> result = new TreeSet<>();
44
		for (TagRule rule : rules){
45
			if (rule.type.equals(type)){
46
				result.add(rule.htmlTag);
47
			}
48
		}
49
		return result;
50
	}
51

    
52
	public boolean hasRule(TagEnum type, String htmlTag){
53
		for (TagRule rule : rules){
54
			if (rule.type.equals(type) && htmlTag.equals(htmlTag)){
55
				return true;
56
			}
57
		}
58
		return false;
59
	}
60

    
61
	@Override
62
	public String toString(){
63
		String result = "HTMLTagRules[";
64
		for (TagRule rule : rules){
65
			result += rule.toString() + ";";
66
		}
67
		result = result.substring(0, result.length() -1) + "]";
68
		return result;
69
	}
70

    
71

    
72
}
(1-1/5)