PageRenderTime 55ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/servers/diameter/core/jdiameter/api/src/main/java/org/jdiameter/api/AvpSet.java

http://mobicents.googlecode.com/
Java | 814 lines | 86 code | 84 blank | 644 comment | 0 complexity | c61502729aeecda82d6cd9b90d2e4950 MD5 | raw file
Possible License(s): LGPL-3.0, GPL-3.0, LGPL-2.1, GPL-2.0, CC-BY-SA-3.0, CC0-1.0, Apache-2.0, BSD-3-Clause
  1. /*
  2. * JBoss, Home of Professional Open Source
  3. * Copyright 2006, Red Hat, Inc. and individual contributors
  4. * by the @authors tag. See the copyright.txt in the distribution for a
  5. * full listing of individual contributors.
  6. *
  7. * This is free software; you can redistribute it and/or modify it
  8. * under the terms of the GNU Lesser General Public License as
  9. * published by the Free Software Foundation; either version 2.1 of
  10. * the License, or (at your option) any later version.
  11. *
  12. * This software is distributed in the hope that it will be useful,
  13. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  15. * Lesser General Public License for more details.
  16. *
  17. * You should have received a copy of the GNU Lesser General Public
  18. * License along with this software; if not, write to the Free
  19. * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  20. * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  21. */
  22. package org.jdiameter.api;
  23. import java.io.Serializable;
  24. import java.net.InetAddress;
  25. import java.util.Date;
  26. /**
  27. * A set of data representing a message avp set. AvpSet is simple container of avps allows direct access to Avp by Avp code
  28. * or index of Avp. The AvpSet interface provides add/rem methods for appending new Avp and remove Avp from AvpSet.
  29. * Wrapper interface allows adapt message to any driver vendor specific interface
  30. * Serializable interface allows use this class in SLEE Event objects
  31. *
  32. * @author erick.svenson@yahoo.com
  33. * @version 1.5.1 Final
  34. */
  35. public interface AvpSet extends Iterable<Avp>, Serializable, Wrapper {
  36. /**
  37. * get AVP by code
  38. * @param avpCode code of Avp
  39. * @return Avp instance
  40. */
  41. Avp getAvp(int avpCode);
  42. /**
  43. * get AVP by position
  44. * @param index position of Avp
  45. * @return Avp instance
  46. */
  47. Avp getAvpByIndex(int index);
  48. /**
  49. * get AVP by code
  50. * @param avpCode code of Avp
  51. * @param vendorId vendor of Avp
  52. * @return Avp instance
  53. */
  54. Avp getAvp(int avpCode, long vendorId);
  55. /**
  56. * get AVP by code
  57. * @param avpCode code of Avp
  58. * @return array Avp instance
  59. */
  60. AvpSet getAvps(int avpCode);
  61. /**
  62. * get AVP by code
  63. * @param avpCode code of Avp
  64. * @param vendorId vendor of Avp
  65. * @return array Avp instance
  66. */
  67. AvpSet getAvps(int avpCode, long vendorId);
  68. /**
  69. * Remove AVPs with avpCode
  70. * @param avpCode code of Avp
  71. * @return array of removed Avps instance
  72. */
  73. AvpSet removeAvp(int avpCode);
  74. /**
  75. * Remove AVPs with avpCode
  76. * @param avpCode code of Avp
  77. * @param vendorId code of Vendor
  78. * @return array of removed Avps instance
  79. */
  80. AvpSet removeAvp(int avpCode, long vendorId);
  81. /**
  82. * Remove Avp by Avp index
  83. * @param index Avp position
  84. * @return Avp instance
  85. */
  86. Avp removeAvpByIndex(int index);
  87. /**
  88. * Return count of top Avps
  89. * @return size of top Avps
  90. */
  91. int size();
  92. /**
  93. * Return array of avp
  94. * @return array of avp
  95. */
  96. Avp[] asArray();
  97. /**
  98. * Append avp array as value
  99. * @param value avp array
  100. */
  101. void addAvp(Avp... value);
  102. /**
  103. * Append array of avps
  104. * @param value avp array from AvpSet container
  105. */
  106. void addAvp(AvpSet value);
  107. /**
  108. * Append byte[] AVP
  109. * @param avpCode code of Avp
  110. * @param value Avp data
  111. * @return Avp instance
  112. */
  113. Avp addAvp(int avpCode, byte[] value);
  114. /**
  115. * Append byte[] AVP
  116. * @param avpCode code of Avp
  117. * @param value Avp data
  118. * @param mFlag true set M flag/false clear M flag in header Avp
  119. * @param pFlag true set P flag/false clear P flag in header Avp
  120. * @return Avp instance
  121. */
  122. Avp addAvp(int avpCode, byte[] value, boolean mFlag, boolean pFlag);
  123. /**
  124. * Append byte[] AVP
  125. * @param avpCode code of Avp
  126. * @param value Avp data
  127. * @param vendorId vendor of Avp
  128. * @param mFlag true set M flag/false clear M flag in header Avp
  129. * @param pFlag true set P flag/false clear P flag in header Avp
  130. * @return Avp instance
  131. */
  132. Avp addAvp(int avpCode, byte[] value, long vendorId, boolean mFlag, boolean pFlag);
  133. /**
  134. * Append int AVP
  135. * @param avpCode code of Avp
  136. * @param value Avp data
  137. * @return Avp instance
  138. */
  139. Avp addAvp(int avpCode, int value);
  140. /**
  141. * Append int AVP
  142. * @param avpCode code of Avp
  143. * @param value Avp data
  144. * @param mFlag true set M flag/false clear M flag in header Avp
  145. * @param pFlag true set P flag/false clear P flag in header Avp
  146. * @return Avp instance
  147. */
  148. Avp addAvp(int avpCode, int value, boolean mFlag, boolean pFlag);
  149. /**
  150. * Append int AVP
  151. * @param avpCode code of Avp
  152. * @param value Avp data
  153. * @param vendorId vendor of Avp
  154. * @param mFlag true set M flag/false clear M flag in header Avp
  155. * @param pFlag true set P flag/false clear P flag in header Avp
  156. * @return Avp instance
  157. */
  158. Avp addAvp(int avpCode, int value, long vendorId, boolean mFlag, boolean pFlag);
  159. /**
  160. * Append long(integer64) AVP
  161. * @param avpCode code of Avp
  162. * @param value Avp data
  163. * @return Avp instance
  164. */
  165. Avp addAvp(int avpCode, long value);
  166. /**
  167. * Append long(integer64) AVP
  168. * @param avpCode code of Avp
  169. * @param value Avp data
  170. * @param mFlag true set M flag/false clear M flag in header Avp
  171. * @param pFlag true set P flag/false clear P flag in header Avp
  172. * @return Avp instance
  173. */
  174. Avp addAvp(int avpCode, long value, boolean mFlag, boolean pFlag);
  175. /**
  176. * Append long(integer64) AVP
  177. * @param avpCode code of Avp
  178. * @param value Avp data
  179. * @param vendorId vendor of Avp
  180. * @param mFlag true set M flag/false clear M flag in header Avp
  181. * @param pFlag true set P flag/false clear P flag in header Avp
  182. * @return Avp instance
  183. */
  184. Avp addAvp(int avpCode, long value, long vendorId, boolean mFlag, boolean pFlag);
  185. /**
  186. * Append long(integer64) AVP
  187. * @param avpCode code of Avp
  188. * @param value Avp data
  189. * @param asUnsignedInt32 true if value is unsigned integer 32 type
  190. * @return Avp instance
  191. */
  192. Avp addAvp(int avpCode, long value, boolean asUnsignedInt32);
  193. /**
  194. * Append long(integer64) AVP
  195. * @param avpCode code of Avp
  196. * @param value Avp data
  197. * @param mFlag true set M flag/false clear M flag in header Avp
  198. * @param pFlag true set P flag/false clear P flag in header Avp
  199. * @param asUnsignedInt32 true if value is unsigned integer 32 type
  200. * @return Avp instance
  201. */
  202. Avp addAvp(int avpCode, long value, boolean mFlag, boolean pFlag, boolean asUnsignedInt32);
  203. /**
  204. * Append long(integer64) AVP
  205. * @param avpCode code of Avp
  206. * @param value Avp data
  207. * @param vendorId vendor of Avp
  208. * @param mFlag true set M flag/false clear M flag in header Avp
  209. * @param pFlag true set P flag/false clear P flag in header Avp
  210. * @param asUnsignedInt32 true if value is unsigned integer 32 type
  211. * @return Avp instance
  212. */
  213. Avp addAvp(int avpCode, long value, long vendorId, boolean mFlag, boolean pFlag, boolean asUnsignedInt32);
  214. /**
  215. * Append float AVP
  216. * @param avpCode code of Avp
  217. * @param value Avp data
  218. * @return Avp instance
  219. */
  220. Avp addAvp(int avpCode, float value);
  221. /**
  222. * Append float AVP
  223. * @param avpCode code of Avp
  224. * @param value Avp data
  225. * @param mFlag true set M flag/false clear M flag in header Avp
  226. * @param pFlag true set P flag/false clear P flag in header Avp
  227. * @return Avp instance
  228. */
  229. Avp addAvp(int avpCode, float value, boolean mFlag, boolean pFlag);
  230. /**
  231. * Append float AVP
  232. * @param avpCode code of Avp
  233. * @param value Avp data
  234. * @param vendorId vendor of Avp
  235. * @param mFlag true set M flag/false clear M flag in header Avp
  236. * @param pFlag true set P flag/false clear P flag in header Avp
  237. * @return Avp instance
  238. */
  239. Avp addAvp(int avpCode, float value, long vendorId, boolean mFlag, boolean pFlag);
  240. /**
  241. * Append double(float64) AVP
  242. * @param avpCode code of Avp
  243. * @param value Avp data
  244. * @return Avp instance
  245. */
  246. Avp addAvp(int avpCode, double value);
  247. /**
  248. * Append double(float64) AVP
  249. * @param avpCode code of Avp
  250. * @param value Avp data
  251. * @param mFlag true set M flag/false clear M flag in header Avp
  252. * @param pFlag true set P flag/false clear P flag in header Avp
  253. * @return Avp instance
  254. */
  255. Avp addAvp(int avpCode, double value, boolean mFlag, boolean pFlag);
  256. /**
  257. * Append double(float64) AVP
  258. * @param avpCode code of Avp
  259. * @param value Avp data
  260. * @param vendorId vendor of Avp
  261. * @param mFlag true set M flag/false clear M flag in header Avp
  262. * @param pFlag true set P flag/false clear P flag in header Avp
  263. * @return Avp instance
  264. */
  265. Avp addAvp(int avpCode, double value, long vendorId, boolean mFlag, boolean pFlag);
  266. /**
  267. * Append String(UTF-8 or Octet) AVP
  268. * @param avpCode code of Avp
  269. * @param value Avp data
  270. * @param asOctetString true if it octet string
  271. * @return Avp instance
  272. */
  273. Avp addAvp(int avpCode, String value, boolean asOctetString);
  274. /**
  275. * Append String(UTF-8 or Octet) AVP
  276. * @param avpCode code of Avp
  277. * @param value Avp data
  278. * @param mFlag true set M flag/false clear M flag in header Avp
  279. * @param pFlag true set P flag/false clear P flag in header Avp
  280. * @param asOctetString true if it octet string
  281. * @return Avp instance
  282. */
  283. Avp addAvp(int avpCode, String value, boolean mFlag, boolean pFlag, boolean asOctetString);
  284. /**
  285. * Append String(UTF-8 or Octet) AVP
  286. * @param avpCode code of Avp
  287. * @param value Avp data
  288. * @param vendorId vendor of Avp
  289. * @param mFlag true set M flag/false clear M flag in header Avp
  290. * @param pFlag true set P flag/false clear P flag in header Avp
  291. * @param asOctetString true if it octet string
  292. * @return Avp instance
  293. */
  294. Avp addAvp(int avpCode, String value, long vendorId, boolean mFlag, boolean pFlag, boolean asOctetString);
  295. /**
  296. * Append URI AVP
  297. * @param avpCode code of Avp
  298. * @param value Avp data
  299. * @return Avp instance
  300. */
  301. Avp addAvp(int avpCode, URI value);
  302. /**
  303. * Append URI AVP
  304. * @param avpCode code of Avp
  305. * @param value Avp data
  306. * @param mFlag true set M flag/false clear M flag in header Avp
  307. * @param pFlag true set P flag/false clear P flag in header Avp
  308. * @return Avp instance
  309. */
  310. Avp addAvp(int avpCode, URI value, boolean mFlag, boolean pFlag);
  311. /**
  312. * Append URI AVP
  313. * @param avpCode code of Avp
  314. * @param value Avp data
  315. * @param vendorId vendor of Avp
  316. * @param mFlag true set M flag/false clear M flag in header Avp
  317. * @param pFlag true set P flag/false clear P flag in header Avp
  318. * @return Avp instance
  319. */
  320. Avp addAvp(int avpCode, URI value, long vendorId, boolean mFlag, boolean pFlag);
  321. /**
  322. * Append Address AVP
  323. * @param avpCode code of Avp
  324. * @param value Avp data
  325. * @return Avp instance
  326. */
  327. Avp addAvp(int avpCode, InetAddress value);
  328. /**
  329. * Append Address AVP
  330. * @param avpCode code of Avp
  331. * @param value Avp data
  332. * @param mFlag true set M flag/false clear M flag in header Avp
  333. * @param pFlag true set P flag/false clear P flag in header Avp
  334. * @return Avp instance
  335. */
  336. Avp addAvp(int avpCode, InetAddress value, boolean mFlag, boolean pFlag);
  337. /**
  338. * Append Address AVP
  339. * @param avpCode code of Avp
  340. * @param value Avp data
  341. * @param vendorId vendor of Avp
  342. * @param mFlag true set M flag/false clear M flag in header Avp
  343. * @param pFlag true set P flag/false clear P flag in header Avp
  344. * @return Avp instance
  345. */
  346. Avp addAvp(int avpCode, InetAddress value, long vendorId, boolean mFlag, boolean pFlag);
  347. /**
  348. * Append Diameter Time AVP
  349. * @param avpCode code of Avp
  350. * @param date value
  351. * @return Avp instance
  352. */
  353. Avp addAvp(int avpCode, Date date);
  354. /**
  355. * Append Diameter Time AVP
  356. * @param avpCode code of Avp
  357. * @param date value
  358. * @param mFlag true set M flag/false clear M flag in header Avp
  359. * @param pFlag true set P flag/false clear P flag in header Avp
  360. * @return Avp instance
  361. */
  362. Avp addAvp(int avpCode, Date date, boolean mFlag, boolean pFlag);
  363. /**
  364. * Append Diameter Time AVP
  365. * @param avpCode code of Avp
  366. * @param date value
  367. * @param vendorId vendor of Avp
  368. * @param mFlag true set M flag/false clear M flag in header Avp
  369. * @param pFlag true set P flag/false clear P flag in header Avp
  370. * @return Avp instance
  371. */
  372. Avp addAvp(int avpCode, Date date, long vendorId, boolean mFlag, boolean pFlag);
  373. /**
  374. * Append Grouped AVP
  375. * @param avpCode code of Avp
  376. * @return AvpSet instance
  377. */
  378. AvpSet addGroupedAvp(int avpCode);
  379. /**
  380. * Append Grouped AVP
  381. * @param avpCode code of Avp
  382. * @param mFlag true set M flag/false clear M flag in header Avp
  383. * @param pFlag true set P flag/false clear P flag in header Avp
  384. * @return AvpSet instance
  385. */
  386. AvpSet addGroupedAvp(int avpCode, boolean mFlag, boolean pFlag);
  387. /**
  388. * Append Grouped AVP
  389. * @param avpCode code of Avp
  390. * @param vendorId vendor of Avp
  391. * @param mFlag true set M flag/false clear M flag in header Avp
  392. * @param pFlag true set P flag/false clear P flag in header Avp
  393. * @return AvpSet instance
  394. */
  395. AvpSet addGroupedAvp(int avpCode, long vendorId, boolean mFlag, boolean pFlag);
  396. /**
  397. * Insert AvpSet
  398. * @param index index of inserted avp
  399. * @param value avp array
  400. */
  401. void insertAvp(int index, Avp... value);
  402. /**
  403. * Insert AvpSet
  404. * @param index index of inserted avp
  405. * @param value avp array from AvpSet container
  406. */
  407. void insertAvp(int index, AvpSet value);
  408. /**
  409. * Insert byte[] AVP
  410. * @param index index of inserted avp
  411. * @param avpCode code of Avp
  412. * @param value Avp data
  413. * @return Avp instance
  414. */
  415. Avp insertAvp(int index, int avpCode, byte[] value);
  416. /**
  417. * Insert byte[] AVP
  418. * @param avpCode code of Avp
  419. * @param index index of inserted avp
  420. * @param value Avp data
  421. * @param mFlag true set M flag/false clear M flag in header Avp
  422. * @param pFlag true set P flag/false clear P flag in header Avp
  423. * @return Avp instance
  424. */
  425. Avp insertAvp(int index, int avpCode, byte[] value, boolean mFlag, boolean pFlag);
  426. /**
  427. * Insert byte[] AVP
  428. * @param index index of inserted avp
  429. * @param avpCode code of Avp
  430. * @param value Avp data
  431. * @param vendorId vendor of Avp
  432. * @param mFlag true set M flag/false clear M flag in header Avp
  433. * @param pFlag true set P flag/false clear P flag in header Avp
  434. * @return Avp instance
  435. */
  436. Avp insertAvp(int index, int avpCode, byte[] value, long vendorId, boolean mFlag, boolean pFlag);
  437. /**
  438. * Insert int AVP
  439. * @param index index of inserted avp
  440. * @param avpCode code of Avp
  441. * @param value Avp data
  442. * @return Avp instance
  443. */
  444. Avp insertAvp(int index,int avpCode, int value);
  445. /**
  446. * Insertint AVP
  447. * @param index index of inserted avp
  448. * @param avpCode code of Avp
  449. * @param value Avp data
  450. * @param mFlag true set M flag/false clear M flag in header Avp
  451. * @param pFlag true set P flag/false clear P flag in header Avp
  452. * @return Avp instance
  453. */
  454. Avp insertAvp(int index, int avpCode, int value, boolean mFlag, boolean pFlag);
  455. /**
  456. * Insert int AVP
  457. * @param index index of inserted avp
  458. * @param avpCode code of Avp
  459. * @param value Avp data
  460. * @param vendorId vendor of Avp
  461. * @param mFlag true set M flag/false clear M flag in header Avp
  462. * @param pFlag true set P flag/false clear P flag in header Avp
  463. * @return Avp instance
  464. */
  465. Avp insertAvp(int index, int avpCode, int value, long vendorId, boolean mFlag, boolean pFlag);
  466. /**
  467. * Insert long(integer64) AVP
  468. * @param index index of inserted avp
  469. * @param avpCode code of Avp
  470. * @param value Avp data
  471. * @return Avp instance
  472. */
  473. Avp insertAvp(int index, int avpCode, long value);
  474. /**
  475. * Insert long(integer64) AVP
  476. * @param index index of inserted avp
  477. * @param avpCode code of Avp
  478. * @param value Avp data
  479. * @param mFlag true set M flag/false clear M flag in header Avp
  480. * @param pFlag true set P flag/false clear P flag in header Avp
  481. * @return Avp instance
  482. */
  483. Avp insertAvp(int index, int avpCode, long value, boolean mFlag, boolean pFlag);
  484. /**
  485. * Insert long(integer64) AVP
  486. * @param index index of inserted avp
  487. * @param avpCode code of Avp
  488. * @param value Avp data
  489. * @param vendorId vendor of Avp
  490. * @param mFlag true set M flag/false clear M flag in header Avp
  491. * @param pFlag true set P flag/false clear P flag in header Avp
  492. * @return Avp instance
  493. */
  494. Avp insertAvp(int index, int avpCode, long value, long vendorId, boolean mFlag, boolean pFlag);
  495. /**
  496. * Insert long(integer64) AVP
  497. * @param index index of inserted avp
  498. * @param avpCode code of Avp
  499. * @param value Avp data
  500. * @param asUnsignedInt32 true if value is unisignet integer 32 type
  501. * @return Avp instance
  502. */
  503. Avp insertAvp(int index, int avpCode, long value, boolean asUnsignedInt32);
  504. /**
  505. * Insert long(integer64) AVP
  506. * @param index index of inserted avp
  507. * @param avpCode code of Avp
  508. * @param value Avp data
  509. * @param mFlag true set M flag/false clear M flag in header Avp
  510. * @param pFlag true set P flag/false clear P flag in header Avp
  511. * @param asUnsignedInt32 true if value is unisignet integer 32 type
  512. * @return Avp instance
  513. */
  514. Avp insertAvp(int index, int avpCode, long value, boolean mFlag, boolean pFlag, boolean asUnsignedInt32);
  515. /**
  516. * Insert long(integer64) AVP
  517. * @param index index of inserted avp
  518. * @param avpCode code of Avp
  519. * @param value Avp data
  520. * @param vendorId vendor of Avp
  521. * @param mFlag true set M flag/false clear M flag in header Avp
  522. * @param pFlag true set P flag/false clear P flag in header Avp
  523. * @param asUnsignedInt32 true if value is unisignet integer 32 type
  524. * @return Avp instance
  525. */
  526. Avp insertAvp(int index, int avpCode, long value, long vendorId, boolean mFlag, boolean pFlag, boolean asUnsignedInt32);
  527. /**
  528. * Insert float AVP
  529. * @param index index of inserted avp
  530. * @param avpCode code of Avp
  531. * @param value Avp data
  532. * @return Avp instance
  533. */
  534. Avp insertAvp(int index, int avpCode, float value);
  535. /**
  536. * Insert float AVP
  537. * @param index index of inserted avp
  538. * @param avpCode code of Avp
  539. * @param value Avp data
  540. * @param mFlag true set M flag/false clear M flag in header Avp
  541. * @param pFlag true set P flag/false clear P flag in header Avp
  542. * @return Avp instance
  543. */
  544. Avp insertAvp(int index, int avpCode, float value, boolean mFlag, boolean pFlag);
  545. /**
  546. * Insert float AVP
  547. * @param index index of inserted avp
  548. * @param avpCode code of Avp
  549. * @param value Avp data
  550. * @param vendorId vendor of Avp
  551. * @param mFlag true set M flag/false clear M flag in header Avp
  552. * @param pFlag true set P flag/false clear P flag in header Avp
  553. * @return Avp instance
  554. */
  555. Avp insertAvp(int index, int avpCode, float value, long vendorId, boolean mFlag, boolean pFlag);
  556. /**
  557. * Insert double(float64) AVP
  558. * @param index index of inserted avp
  559. * @param avpCode code of Avp
  560. * @param value Avp data
  561. * @return Avp instance
  562. */
  563. Avp insertAvp(int index, int avpCode, double value);
  564. /**
  565. * Insert double(float64) AVP
  566. * @param index index of inserted avp
  567. * @param avpCode code of Avp
  568. * @param value Avp data
  569. * @param mFlag true set M flag/false clear M flag in header Avp
  570. * @param pFlag true set P flag/false clear P flag in header Avp
  571. * @return Avp instance
  572. */
  573. Avp insertAvp(int index, int avpCode, double value, boolean mFlag, boolean pFlag);
  574. /**
  575. * Insert double(float64) AVP
  576. * @param index index of inserted avp
  577. * @param avpCode code of Avp
  578. * @param value Avp data
  579. * @param vendorId vendor of Avp
  580. * @param mFlag true set M flag/false clear M flag in header Avp
  581. * @param pFlag true set P flag/false clear P flag in header Avp
  582. * @return Avp instance
  583. */
  584. Avp insertAvp(int index, int avpCode, double value, long vendorId, boolean mFlag, boolean pFlag);
  585. /**
  586. * Insert String(UTF-8 or Octet) AVP
  587. * @param index index of inserted avp
  588. * @param avpCode code of Avp
  589. * @param value Avp data
  590. * @param asOctetString true if it octet string
  591. * @return Avp instance
  592. */
  593. Avp insertAvp(int index, int avpCode, String value, boolean asOctetString);
  594. /**
  595. * Insert String(UTF-8 or Octet) AVP
  596. * @param index index of inserted avp
  597. * @param avpCode code of Avp
  598. * @param value Avp data
  599. * @param mFlag true set M flag/false clear M flag in header Avp
  600. * @param pFlag true set P flag/false clear P flag in header Avp
  601. * @param asOctetString true if it octet string
  602. * @return Avp instance
  603. */
  604. Avp insertAvp(int index, int avpCode, String value, boolean mFlag, boolean pFlag, boolean asOctetString);
  605. /**
  606. * Insert String(UTF-8 or Octet) AVP
  607. * @param index index of inserted avp
  608. * @param avpCode code of Avp
  609. * @param value Avp data
  610. * @param vendorId vendor of Avp
  611. * @param mFlag true set M flag/false clear M flag in header Avp
  612. * @param pFlag true set P flag/false clear P flag in header Avp
  613. * @param asOctetString true if it octet string
  614. * @return Avp instance
  615. */
  616. Avp insertAvp(int index, int avpCode, String value, long vendorId, boolean mFlag, boolean pFlag, boolean asOctetString);
  617. /**
  618. * Insert URI AVP
  619. * @param index index of inserted avp
  620. * @param avpCode code of Avp
  621. * @param value Avp data
  622. * @return Avp instance
  623. */
  624. Avp insertAvp(int index, int avpCode, URI value);
  625. /**
  626. * Insert URI AVP
  627. * @param index index of inserted avp
  628. * @param avpCode code of Avp
  629. * @param value Avp data
  630. * @param mFlag true set M flag/false clear M flag in header Avp
  631. * @param pFlag true set P flag/false clear P flag in header Avp
  632. * @return Avp instance
  633. */
  634. Avp insertAvp(int index, int avpCode, URI value, boolean mFlag, boolean pFlag);
  635. /**
  636. * Insert URI AVP
  637. * @param index index of inserted avp
  638. * @param avpCode code of Avp
  639. * @param value Avp data
  640. * @param vendorId vendor of Avp
  641. * @param mFlag true set M flag/false clear M flag in header Avp
  642. * @param pFlag true set P flag/false clear P flag in header Avp
  643. * @return Avp instance
  644. */
  645. Avp insertAvp(int index, int avpCode, URI value, long vendorId, boolean mFlag, boolean pFlag);
  646. /**
  647. * Insert Address AVP
  648. * @param index index of inserted avp
  649. * @param avpCode code of Avp
  650. * @param value Avp data
  651. * @return Avp instance
  652. */
  653. Avp insertAvp(int index, int avpCode, InetAddress value);
  654. /**
  655. * Insert Address AVP
  656. * @param index index of inserted avp
  657. * @param avpCode code of Avp
  658. * @param value Avp data
  659. * @param mFlag true set M flag/false clear M flag in header Avp
  660. * @param pFlag true set P flag/false clear P flag in header Avp
  661. * @return Avp instance
  662. */
  663. Avp insertAvp(int index, int avpCode, InetAddress value, boolean mFlag, boolean pFlag);
  664. /**
  665. * Insert Address AVP
  666. * @param index index of inserted avp
  667. * @param avpCode code of Avp
  668. * @param value Avp data
  669. * @param vendorId vendor of Avp
  670. * @param mFlag true set M flag/false clear M flag in header Avp
  671. * @param pFlag true set P flag/false clear P flag in header Avp
  672. * @return Avp instance
  673. */
  674. Avp insertAvp(int index, int avpCode, InetAddress value, long vendorId, boolean mFlag, boolean pFlag);
  675. /**
  676. * Insert Diameter Time AVP
  677. * @param index index of inserted avp
  678. * @param avpCode code of Avp
  679. * @param date value
  680. * @return Avp instance
  681. */
  682. Avp insertAvp(int index, int avpCode, Date date);
  683. /**
  684. * Insert Diameter Time AVP
  685. * @param index index of inserted avp
  686. * @param avpCode code of Avp
  687. * @param date value
  688. * @param mFlag true set M flag/false clear M flag in header Avp
  689. * @param pFlag true set P flag/false clear P flag in header Avp
  690. * @return Avp instance
  691. */
  692. Avp insertAvp(int index, int avpCode, Date date, boolean mFlag, boolean pFlag);
  693. /**
  694. * Insert Diameter Time AVP
  695. * @param index index of inserted avp
  696. * @param avpCode code of Avp
  697. * @param date value
  698. * @param vendorId vendor of Avp
  699. * @param mFlag true set M flag/false clear M flag in header Avp
  700. * @param pFlag true set P flag/false clear P flag in header Avp
  701. * @return Avp instance
  702. */
  703. Avp insertAvp(int index, int avpCode, Date date, long vendorId, boolean mFlag, boolean pFlag);
  704. /**
  705. * Insert Grouped AVP
  706. * @param index index of inserted avp
  707. * @param avpCode code of Avp
  708. * @return AvpSet instance
  709. */
  710. AvpSet insertGroupedAvp(int index, int avpCode);
  711. /**
  712. * Insert Grouped AVP
  713. * @param index index of inserted avp
  714. * @param avpCode code of Avp
  715. * @param mFlag true set M flag/false clear M flag in header Avp
  716. * @param pFlag true set P flag/false clear P flag in header Avp
  717. * @return AvpSet instance
  718. */
  719. AvpSet insertGroupedAvp(int index, int avpCode, boolean mFlag, boolean pFlag);
  720. /**
  721. * Insert Grouped AVP
  722. * @param index index of inserted avp
  723. * @param avpCode code of Avp
  724. * @param vendorId vendor of Avp
  725. * @param mFlag true set M flag/false clear M flag in header Avp
  726. * @param pFlag true set P flag/false clear P flag in header Avp
  727. * @return AvpSet instance
  728. */
  729. AvpSet insertGroupedAvp(int index, int avpCode, long vendorId, boolean mFlag, boolean pFlag);
  730. }