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 package net.fortuna.ical4j.model;
35
36 import java.net.URISyntaxException;
37
38 import net.fortuna.ical4j.model.parameter.AltRep;
39 import net.fortuna.ical4j.model.parameter.Cn;
40 import net.fortuna.ical4j.model.parameter.CuType;
41 import net.fortuna.ical4j.model.parameter.DelegatedFrom;
42 import net.fortuna.ical4j.model.parameter.DelegatedTo;
43 import net.fortuna.ical4j.model.parameter.Dir;
44 import net.fortuna.ical4j.model.parameter.Encoding;
45 import net.fortuna.ical4j.model.parameter.FbType;
46 import net.fortuna.ical4j.model.parameter.FmtType;
47 import net.fortuna.ical4j.model.parameter.Language;
48 import net.fortuna.ical4j.model.parameter.Member;
49 import net.fortuna.ical4j.model.parameter.PartStat;
50 import net.fortuna.ical4j.model.parameter.Range;
51 import net.fortuna.ical4j.model.parameter.RelType;
52 import net.fortuna.ical4j.model.parameter.Related;
53 import net.fortuna.ical4j.model.parameter.Role;
54 import net.fortuna.ical4j.model.parameter.Rsvp;
55 import net.fortuna.ical4j.model.parameter.SentBy;
56 import net.fortuna.ical4j.model.parameter.TzId;
57 import net.fortuna.ical4j.model.parameter.Value;
58 import net.fortuna.ical4j.model.parameter.XParameter;
59
60 /***
61 * A factory for creating iCalendar parameters.
62 *
63 * @author benfortuna
64 */
65 public final class ParameterFactory {
66
67 private static ParameterFactory instance = new ParameterFactory();
68
69 /***
70 * Constructor made private to prevent instantiation.
71 */
72 private ParameterFactory() {
73 }
74
75 /***
76 * @return Returns the instance.
77 */
78 public static ParameterFactory getInstance() {
79 return instance;
80 }
81
82 /***
83 * Creates a parameter.
84 *
85 * @param name
86 * name of the parameter
87 * @param value
88 * a parameter value
89 * @return a component
90 * @throws URISyntaxException thrown when the specified string
91 * is not a valid representation of a URI for selected parameters
92 */
93 public Parameter createParameter(final String name, final String value)
94 throws URISyntaxException {
95
96 if (Parameter.ALTREP.equals(name)) {
97 return new AltRep(value);
98 }
99 else if (Parameter.CN.equals(name)) {
100 return new Cn(value);
101 }
102 else if (Parameter.CUTYPE.equals(name)) {
103 return new CuType(value);
104 }
105 else if (Parameter.DELEGATED_FROM.equals(name)) {
106 return new DelegatedFrom(value);
107 }
108 else if (Parameter.DELEGATED_TO.equals(name)) {
109 return new DelegatedTo(value);
110 }
111 else if (Parameter.DIR.equals(name)) {
112 return new Dir(value);
113 }
114 else if (Parameter.ENCODING.equals(name)) {
115 return new Encoding(value);
116 }
117 else if (Parameter.FMTTYPE.equals(name)) {
118 return new FmtType(value);
119 }
120 else if (Parameter.FBTYPE.equals(name)) {
121 return new FbType(value);
122 }
123 else if (Parameter.LANGUAGE.equals(name)) {
124 return new Language(value);
125 }
126 else if (Parameter.MEMBER.equals(name)) {
127 return new Member(value);
128 }
129 else if (Parameter.PARTSTAT.equals(name)) {
130 return new PartStat(value);
131 }
132 else if (Parameter.RANGE.equals(name)) {
133 return new Range(value);
134 }
135 else if (Parameter.RELATED.equals(name)) {
136 return new Related(value);
137 }
138 else if (Parameter.RELTYPE.equals(name)) {
139 return new RelType(value);
140 }
141 else if (Parameter.ROLE.equals(name)) {
142 return new Role(value);
143 }
144 else if (Parameter.RSVP.equals(name)) {
145 return new Rsvp(value);
146 }
147 else if (Parameter.SENT_BY.equals(name)) {
148 return new SentBy(value);
149 }
150 else if (Parameter.TZID.equals(name)) {
151 return new TzId(value);
152 }
153 else if (Parameter.VALUE.equals(name)) {
154 return new Value(value);
155 }
156
157 else {
158 return new XParameter(name, value);
159 }
160 }
161 }