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 @Override
36 public Metadata applyRule(final String name, final TagAttribute attribute, final MetadataTarget metadataTarget) {
37 if ("contentType".equals(name)) {
38 return new ContentTypeRuleMapper(attribute);
39 }
40 return null;
41 }
42
43 static final class ContentTypeRuleMapper extends Metadata {
44
45 private final TagAttribute attribute;
46
47 ContentTypeRuleMapper(final TagAttribute attribute) {
48 this.attribute = attribute;
49 }
50
51 @Override
52 public void applyMetadata(final FaceletContext ctx, final Object instance) {
53 final String[] components = ComponentUtils.splitList(attribute.getValue(ctx));
54 ((FileItemValidator) instance).setContentType(components);
55 }
56 }
57 }