This repository has been archived by the owner on Nov 9, 2017. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 57
/
ValidationFactory.java
91 lines (75 loc) · 3.22 KB
/
ValidationFactory.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
/**
*
*/
package org.zanata.webtrans.shared.validation;
import java.util.*;
import org.zanata.webtrans.client.resources.*;
import org.zanata.webtrans.shared.model.*;
import org.zanata.webtrans.shared.model.ValidationAction.*;
import org.zanata.webtrans.shared.validation.action.*;
import com.google.common.collect.*;
/**
* Validation Factory - provides list of available validation rules to run on server or client.
*
* @author Alex Eng <a href="mailto:aeng@redhat.com">aeng@redhat.com</a>
*/
public final class ValidationFactory
{
private final ValidationMessages validationMessages;
private final Map<ValidationId, ValidationAction> referenceMap;
public static Comparator<ValidationId> ValidationIdComparator = new Comparator<ValidationId>()
{
@Override
public int compare(ValidationId o1, ValidationId o2)
{
return o1.getDisplayName().compareTo(o2.getDisplayName());
}
};
public static final Comparator<ValidationAction> ValidationActionComparator = new Comparator<ValidationAction>()
{
@Override
public int compare(ValidationAction o1, ValidationAction o2)
{
return o1.getId().getDisplayName().compareTo(o2.getId().getDisplayName());
}
};
public ValidationFactory(ValidationMessages validationMessages)
{
this.validationMessages = validationMessages;
referenceMap = generateActions();
}
/**
* Generate all Validation Actions with default states(Warning)
*
* @return Map<ValidationId, ValidationAction>
*/
public Map<ValidationId, ValidationAction> getAllValidationActions()
{
return generateActions();
}
public ValidationAction getValidationAction(ValidationId id)
{
return referenceMap.get(id);
}
private Map<ValidationId, ValidationAction> generateActions()
{
TreeMap<ValidationId, ValidationAction> validationMap = Maps.newTreeMap();
validationMap.put(ValidationId.HTML_XML, new HtmlXmlTagValidation(ValidationId.HTML_XML, validationMessages));
validationMap.put(ValidationId.JAVA_VARIABLES, new JavaVariablesValidation(ValidationId.JAVA_VARIABLES,
validationMessages));
validationMap.put(ValidationId.NEW_LINE, new NewlineLeadTrailValidation(ValidationId.NEW_LINE,
validationMessages));
PrintfVariablesValidation printfVariablesValidation = new PrintfVariablesValidation(
ValidationId.PRINTF_VARIABLES, validationMessages);
PrintfXSIExtensionValidation positionalPrintfValidation = new PrintfXSIExtensionValidation(
ValidationId.PRINTF_XSI_EXTENSION, validationMessages);
positionalPrintfValidation.setState(State.Off);
printfVariablesValidation.mutuallyExclusive(positionalPrintfValidation);
positionalPrintfValidation.mutuallyExclusive(printfVariablesValidation);
validationMap.put(ValidationId.PRINTF_VARIABLES, printfVariablesValidation);
validationMap.put(ValidationId.PRINTF_XSI_EXTENSION, positionalPrintfValidation);
validationMap.put(ValidationId.TAB, new TabValidation(ValidationId.TAB, validationMessages));
validationMap.put(ValidationId.XML_ENTITY, new XmlEntityValidation(ValidationId.XML_ENTITY, validationMessages));
return validationMap;
}
}