1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.myfaces.tobago.facelets;
21
22 import org.apache.myfaces.tobago.util.ComponentUtils;
23 import org.apache.myfaces.tobago.validator.FileItemValidator;
24
25 import javax.faces.view.facelets.FaceletContext;
26 import javax.faces.view.facelets.MetaRule;
27 import javax.faces.view.facelets.Metadata;
28 import javax.faces.view.facelets.MetadataTarget;
29 import javax.faces.view.facelets.TagAttribute;
30
31 public class ContentTypeRule extends MetaRule {
32
33 public static final ContentTypeRule INSTANCE = new ContentTypeRule();
34
35 public Metadata applyRule(String name, TagAttribute attribute, MetadataTarget metadataTarget) {
36 if ("contentType".equals(name)) {
37 return new ContentTypeRuleMapper(attribute);
38 }
39 return null;
40 }
41
42 static final class ContentTypeRuleMapper extends Metadata {
43
44 private final TagAttribute attribute;
45
46 public ContentTypeRuleMapper(TagAttribute attribute) {
47 this.attribute = attribute;
48 }
49
50 public void applyMetadata(FaceletContext ctx, Object instance) {
51 String[] components = ComponentUtils.splitList(attribute.getValue(ctx));
52 ((FileItemValidator) instance).setContentType(components);
53 }
54 }
55 }