Project

General

Profile

Download (1.65 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
 * @created 14/02/2012
16
 *
17
 */
18
public class HTMLTagRules {
19

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

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

    
34

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

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

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

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

    
72

    
73
}
(1-1/4)