List<OptionalParameter> optParams = new ArrayList<OptionalParameter>();
for (Entry<String, String> entry : optinalParamaters.entrySet()) {
OptionalParameter optParam = null;
try {
Tag tag = Tag.valueOf(entry.getKey());
Class type = determineTypeClass(tag);
if (OctetString.class.equals(type)) {
optParam = new OptionalParameter.OctetString(tag.code(), entry.getValue());
} else if (COctetString.class.equals(type)) {
optParam = new OptionalParameter.COctetString(tag.code(), entry.getValue());
} else if (org.jsmpp.bean.OptionalParameter.Byte.class.equals(type)) {
optParam = new OptionalParameter.Byte(tag.code(), Byte.valueOf(entry.getValue()));
} else if (org.jsmpp.bean.OptionalParameter.Int.class.equals(type)) {
optParam = new OptionalParameter.Int(tag.code(), Integer.valueOf(entry.getValue()));
} else if (org.jsmpp.bean.OptionalParameter.Short.class.equals(type)) {
optParam = new OptionalParameter.Short(tag.code(), Short.valueOf(entry.getValue()));
} else if (org.jsmpp.bean.OptionalParameter.Null.class.equals(type)) {
optParam = new OptionalParameter.Null(tag);
}
optParams.add(optParam);