PageRenderTime 39ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/servers/jain-sip-ext/src/main/java/gov/nist/javax/sip/message/selective/SelectiveSIPRequest.java

http://mobicents.googlecode.com/
Java | 1697 lines | 269 code | 56 blank | 1372 comment | 64 complexity | f1bf47206e0f726c5bdcc07ffa07b3c6 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 2011, 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 gov.nist.javax.sip.message.selective;
  23. import gov.nist.core.InternalErrorHandler;
  24. import gov.nist.javax.sip.header.ContentLength;
  25. import gov.nist.javax.sip.header.SIPHeader;
  26. import gov.nist.javax.sip.message.SIPRequest;
  27. import gov.nist.javax.sip.parser.selective.SelectiveMessage;
  28. import java.io.UnsupportedEncodingException;
  29. import java.text.ParseException;
  30. import java.util.Iterator;
  31. import java.util.LinkedList;
  32. import java.util.ListIterator;
  33. import java.util.Map;
  34. import java.util.Set;
  35. import java.util.Map.Entry;
  36. import javax.sip.header.Header;
  37. import javax.sip.header.ViaHeader;
  38. /**
  39. * @author jean.deruelle@gmail.com
  40. *
  41. */
  42. public class SelectiveSIPRequest extends SIPRequest implements SelectiveMessage {
  43. SelectiveMessageDelegate delegate;
  44. private static Set<String> headersToParse;
  45. public SelectiveSIPRequest(Set<String> headersToParse) {
  46. SelectiveSIPRequest.headersToParse = headersToParse;
  47. delegate = new SelectiveMessageDelegate();
  48. }
  49. public void addHeaderNotParsed(String headerName, String header) {
  50. delegate.addHeaderNotParsed(headerName, header);
  51. }
  52. @Override
  53. protected Header getHeaderLowerCase(String lowerCaseHeaderName) {
  54. if(!headersToParse.contains(lowerCaseHeaderName)) {
  55. SIPHeader sipHeader = delegate.parseHeader(lowerCaseHeaderName, true);
  56. // once the header is parsed we have to add it to the standard list of headers since
  57. // the application can keep the ref to it and modify it, the only way to to get
  58. // the modifications appear in encode is to add it
  59. if(sipHeader != null) {
  60. super.addHeader(sipHeader);
  61. }
  62. }
  63. return super.getHeaderLowerCase(lowerCaseHeaderName);
  64. }
  65. @Override
  66. public SIPHeader getSIPHeaderListLowerCase(String lowerCaseHeaderName) {
  67. if(!headersToParse.contains(lowerCaseHeaderName)) {
  68. SIPHeader sipHeader = delegate.parseHeader(lowerCaseHeaderName, true);
  69. // once the header is parsed we have to add it to the standard list of headers since
  70. // the application can keep the ref to it and modify it, the only way to to get
  71. // the modifications appear in encode is to add it
  72. if(sipHeader != null) {
  73. super.addHeader(sipHeader);
  74. }
  75. }
  76. return super.getSIPHeaderListLowerCase(lowerCaseHeaderName);
  77. }
  78. // @Override
  79. // public void attachHeader(SIPHeader header, boolean replaceFlag, boolean top)
  80. // throws SIPDuplicateHeaderException {
  81. // if(!headersToParse.contains(header.getName().toLowerCase())) {
  82. // delegate.addHeader(header.getName().toLowerCase(), header.toString(), replaceFlag, top);
  83. // }
  84. // super.attachHeader(header, replaceFlag, top);
  85. // }
  86. @Override
  87. public String encode() {
  88. String retval;
  89. if (requestLine != null) {
  90. this.setRequestLineDefaults();
  91. retval = requestLine.encode() + encodeSelective();
  92. } else if (this.isNullRequest()) {
  93. retval = "\r\n\r\n";
  94. } else {
  95. retval = encodeSelective();
  96. }
  97. return retval;
  98. }
  99. public String encodeSelective() {
  100. StringBuilder encoding = new StringBuilder();
  101. Iterator<SIPHeader> it = this.headers.iterator();
  102. while (it.hasNext()) {
  103. SIPHeader siphdr = (SIPHeader) it.next();
  104. if (!(siphdr instanceof ContentLength))
  105. siphdr.encode(encoding);
  106. }
  107. //Append the unparsed headers
  108. Iterator<String> nonParsedHeadersIt = this.delegate.getHeaderValuesNotParsed();
  109. while (nonParsedHeadersIt.hasNext()) {
  110. String nonParsedHeader = nonParsedHeadersIt.next();
  111. encoding.append(nonParsedHeader);
  112. }
  113. // Append the unrecognized headers. Headers that are not
  114. // recognized are passed through unchanged.
  115. if(unrecognizedHeaders != null) {
  116. for (String unrecognized : unrecognizedHeaders) {
  117. encoding.append(unrecognized).append(NEWLINE);
  118. }
  119. }
  120. contentLengthHeader.encode(encoding).append(NEWLINE);
  121. if (this.messageContentObject != null) {
  122. String mbody = this.getContent().toString();
  123. encoding.append(mbody);
  124. } else if (this.messageContent != null || this.messageContentBytes != null) {
  125. String content = null;
  126. try {
  127. if (messageContent != null)
  128. content = messageContent;
  129. else {
  130. // JvB: Check for 'charset' parameter which overrides the default UTF-8
  131. content = new String(messageContentBytes, getCharset() );
  132. }
  133. } catch (UnsupportedEncodingException ex) {
  134. InternalErrorHandler.handleException(ex);
  135. }
  136. encoding.append(content);
  137. }
  138. return encoding.toString();
  139. }
  140. public byte[] encodeAsBytesSelective(String transport) {
  141. if (this instanceof SIPRequest && ((SIPRequest) this).isNullRequest()) {
  142. return "\r\n\r\n".getBytes();
  143. }
  144. // JvB: added to fix case where application provides the wrong transport
  145. // in the topmost Via header
  146. ViaHeader topVia = (ViaHeader) this.getHeader(ViaHeader.NAME);
  147. try {
  148. topVia.setTransport(transport);
  149. } catch (ParseException e) {
  150. InternalErrorHandler.handleException(e);
  151. }
  152. StringBuilder encoding = new StringBuilder();
  153. synchronized (this.headers) {
  154. Iterator<SIPHeader> it = this.headers.iterator();
  155. while (it.hasNext()) {
  156. SIPHeader siphdr = (SIPHeader) it.next();
  157. if (!(siphdr instanceof ContentLength))
  158. siphdr.encode(encoding);
  159. }
  160. }
  161. // Append the unparsed headers
  162. Iterator<String> nonParsedHeadersIt = this.delegate.getHeaderValuesNotParsed();
  163. while (nonParsedHeadersIt.hasNext()) {
  164. String nonParsedHeader = nonParsedHeadersIt.next();
  165. encoding.append(nonParsedHeader);
  166. }
  167. contentLengthHeader.encode(encoding);
  168. encoding.append(NEWLINE);
  169. byte[] retval = null;
  170. byte[] content = this.getRawContent();
  171. if (content != null) {
  172. // Append the content
  173. byte[] msgarray = null;
  174. try {
  175. msgarray = encoding.toString().getBytes( getCharset() );
  176. } catch (UnsupportedEncodingException ex) {
  177. InternalErrorHandler.handleException(ex);
  178. }
  179. retval = new byte[msgarray.length + content.length];
  180. System.arraycopy(msgarray, 0, retval, 0, msgarray.length);
  181. System.arraycopy(content, 0, retval, msgarray.length, content.length);
  182. } else {
  183. // Message content does not exist.
  184. try {
  185. retval = encoding.toString().getBytes( getCharset() );
  186. } catch (UnsupportedEncodingException ex) {
  187. InternalErrorHandler.handleException(ex);
  188. }
  189. }
  190. return retval;
  191. }
  192. @Override
  193. public byte[] encodeAsBytes(String transport) {
  194. if (this.isNullRequest()) {
  195. // Encoding a null message for keepalive.
  196. return "\r\n\r\n".getBytes();
  197. } else if ( this.requestLine == null ) {
  198. return new byte[0];
  199. }
  200. byte[] rlbytes = null;
  201. if (requestLine != null) {
  202. try {
  203. rlbytes = requestLine.encode().getBytes("UTF-8");
  204. } catch (UnsupportedEncodingException ex) {
  205. InternalErrorHandler.handleException(ex);
  206. }
  207. }
  208. byte[] superbytes = encodeAsBytesSelective(transport);
  209. byte[] retval = new byte[rlbytes.length + superbytes.length];
  210. System.arraycopy(rlbytes, 0, retval, 0, rlbytes.length);
  211. System.arraycopy(superbytes, 0, retval, rlbytes.length, superbytes.length);
  212. return retval;
  213. }
  214. @Override
  215. public StringBuilder encodeMessage(StringBuilder retval) {
  216. if (requestLine != null) {
  217. this.setRequestLineDefaults();
  218. requestLine.encode(retval);
  219. encodeSIPHeaders(retval);
  220. } else if (this.isNullRequest()) {
  221. retval.append("\r\n\r\n");
  222. } else
  223. retval = encodeSIPHeaders(retval);
  224. return retval;
  225. }
  226. @Override
  227. protected StringBuilder encodeSIPHeaders(StringBuilder encoding) {
  228. // StringBuilder encoding = new StringBuilder();
  229. Iterator<SIPHeader> it = this.headers.iterator();
  230. while (it.hasNext()) {
  231. SIPHeader siphdr = (SIPHeader) it.next();
  232. if (!(siphdr instanceof ContentLength))
  233. siphdr.encode(encoding);
  234. }
  235. // Append the unparsed headers
  236. Iterator<String> nonParsedHeadersIt = this.delegate.getHeaderValuesNotParsed();
  237. while (nonParsedHeadersIt.hasNext()) {
  238. String nonParsedHeader = nonParsedHeadersIt.next();
  239. encoding.append(nonParsedHeader);
  240. }
  241. return contentLengthHeader.encode(encoding).append(NEWLINE);
  242. }
  243. // @Override
  244. // public boolean equals(Object other) {
  245. // if (!this.getClass().equals(other.getClass()))
  246. // return false;
  247. // SIPRequest that = (SIPRequest) other;
  248. //
  249. // return requestLine.equals(that.requestLine) && super.equals(other);
  250. // }
  251. @Override
  252. public String getHeaderAsFormattedString(String name) {
  253. if(!headersToParse.contains(name.toLowerCase())) {
  254. String unparsedHeader = delegate.getHeaderUnparsed(name.toLowerCase());
  255. if(unparsedHeader != null) {
  256. return unparsedHeader;
  257. }
  258. }
  259. String lowerCaseName = name.toLowerCase();
  260. if (this.headerTable.containsKey(lowerCaseName)) {
  261. return this.headerTable.get(lowerCaseName).toString();
  262. } else {
  263. return this.getHeader(name).toString();
  264. }
  265. }
  266. @Override
  267. public ListIterator<String> getHeaderNames() {
  268. Iterator<SIPHeader> li = this.headers.iterator();
  269. LinkedList<String> retval = new LinkedList<String>();
  270. while (li.hasNext()) {
  271. SIPHeader sipHeader = (SIPHeader) li.next();
  272. String name = sipHeader.getName();
  273. retval.add(name);
  274. }
  275. // Append the unparsed headers
  276. Iterator<String> nonParsedHeadersIt = this.delegate.getHeaderValuesNotParsed();
  277. while (nonParsedHeadersIt.hasNext()) {
  278. String nonParsedHeader = nonParsedHeadersIt.next();
  279. retval.add(nonParsedHeader);
  280. }
  281. return retval.listIterator();
  282. }
  283. @Override
  284. public Iterator<SIPHeader> getHeaders() {
  285. // Append the unparsed headers
  286. Iterator<String> nonParsedHeadersIt = this.delegate.getHeaderNamesNotParsed();
  287. while (nonParsedHeadersIt.hasNext()) {
  288. String nonParsedHeaderName = nonParsedHeadersIt.next();
  289. SIPHeader sipHeader = delegate.parseHeader(nonParsedHeaderName, true);
  290. // once the header is parsed we have to add it to the standard list of headers since
  291. // the application can keep the ref to it and modify it, the only way to to get
  292. // the modifications appear in encode is to add it
  293. if(sipHeader != null) {
  294. super.addHeader(sipHeader);
  295. }
  296. }
  297. return super.getHeaders();
  298. }
  299. @Override
  300. public ListIterator<SIPHeader> getHeaders(String headerName) {
  301. if(!headersToParse.contains(headerName.toLowerCase())) {
  302. SIPHeader sipHeader = delegate.parseHeader(headerName.toLowerCase(), true);
  303. // once the header is parsed we have to add it to the standard list of headers since
  304. // the application can keep the ref to it and modify it, the only way to to get
  305. // the modifications appear in encode is to add it
  306. if(sipHeader != null) {
  307. super.addHeader(sipHeader);
  308. }
  309. }
  310. return super.getHeaders(headerName);
  311. }
  312. @Override
  313. public void removeHeader(String headerName) {
  314. if(!headersToParse.contains(headerName.toLowerCase())) {
  315. delegate.removeHeaderNotParsed(headerName.toLowerCase());
  316. }
  317. super.removeHeader(headerName);
  318. }
  319. @Override
  320. public void removeHeader(String headerName, boolean top) {
  321. if(!headersToParse.contains(headerName.toLowerCase())) {
  322. delegate.removeHeaderNotParsed(headerName.toLowerCase());
  323. }
  324. super.removeHeader(headerName, top);
  325. }
  326. @Override
  327. public Object clone() {
  328. SelectiveSIPRequest retval = (SelectiveSIPRequest) super.clone();
  329. retval.delegate = new SelectiveMessageDelegate();
  330. Map<String, String> headersNotParsed = delegate.getHeadersNotParsed();
  331. for(Entry<String, String> entry : headersNotParsed.entrySet()) {
  332. retval.delegate.addHeaderNotParsed(entry.getKey(), entry.getValue());
  333. }
  334. return retval;
  335. }
  336. // Semaphore cleanUpSem = new Semaphore(1);
  337. // boolean isCleanedUp = false;
  338. // String savedMessageAsString = null;
  339. // String mergedId;
  340. // String method;
  341. // String fromTag;
  342. // String toTag;
  343. // Via topMostViaHeader = null;
  344. // List<String> savedHeadersForResponse = new ArrayList<String>(0);
  345. // static String[] headerNamesForResponse = new String[] {FromHeader.NAME.toLowerCase(), ToHeader.NAME.toLowerCase(), ViaHeader.NAME.toLowerCase(), CallIdHeader.NAME.toLowerCase(), RecordRouteHeader.NAME.toLowerCase(), CSeqHeader.NAME.toLowerCase(), TimeStampHeader.NAME};
  346. //
  347. // @Override
  348. // public synchronized void cleanUp() {
  349. // // let's encode the actual message into its string representation
  350. // try {
  351. // if(!isCleanedUp) {
  352. // cleanUpSem.acquire();
  353. // savedMessageAsString = super.encode();
  354. // mergedId = super.getMergeId();
  355. // method = super.getMethod();
  356. // fromTag = super.getFromTag();
  357. // toTag = super.getToTag();
  358. // ViaList viaList = super.getViaHeaders();
  359. // if (viaList != null)
  360. // topMostViaHeader = (Via) viaList.getFirst();
  361. // // and nullify the rest
  362. // super.setRequestLine(null);
  363. // for (String headerNameForResponse : headerNamesForResponse) {
  364. // SIPHeader header = headerTable.get(headerNameForResponse);
  365. // if(header != null) {
  366. // savedHeadersForResponse.add(header.toString());
  367. // }
  368. // }
  369. // isCleanedUp = true;
  370. // callIdHeader = null;
  371. // contentLengthHeader = null;
  372. // cSeqHeader = null;
  373. // forkId = null;
  374. // fromHeader = null;
  375. // if(headers != null) {
  376. // headers.clear();
  377. // // headers = null;
  378. // }
  379. // matchExpression = null;
  380. // maxForwardsHeader = null;
  381. // messageContent = null;
  382. // messageContentBytes = null;
  383. // messageContentObject = null;
  384. // if(headerTable != null) {
  385. // headerTable.clear();
  386. // // headerTable = null;
  387. // }
  388. // stringRepresentation = null;
  389. // toHeader = null;
  390. // if(unrecognizedHeaders != null) {
  391. // unrecognizedHeaders.clear();
  392. // // unrecognizedHeaders = null;
  393. // }
  394. // super.cleanUp();
  395. // cleanUpSem.release();
  396. // }
  397. // } catch (InterruptedException e) {}
  398. // }
  399. //
  400. // private synchronized void reparseMessage() {
  401. // try {
  402. // if(isCleanedUp) {
  403. // cleanUpSem.acquire();
  404. // isCleanedUp = false;
  405. // try {
  406. // new SelectiveParser().reparseSIPMessage(savedMessageAsString, this);
  407. // savedMessageAsString = null;
  408. // mergedId = null;
  409. // method = null;
  410. // toTag = null;
  411. // fromTag = null;
  412. // topMostViaHeader = null;
  413. // savedHeadersForResponse.clear();
  414. // } catch (ParseException e) {
  415. // throw new IllegalArgumentException("A PArsing problem occured while reparsing the message " + savedMessageAsString, e);
  416. // } finally {
  417. // cleanUpSem.release();
  418. // }
  419. // }
  420. // } catch (InterruptedException e) {}
  421. // }
  422. //
  423. // /* (non-Javadoc)
  424. // * @see gov.nist.javax.sip.message.SIPRequest#checkHeaders()
  425. // */
  426. // @Override
  427. // public void checkHeaders() throws ParseException {
  428. // reparseMessage();
  429. // super.checkHeaders();
  430. // }
  431. //
  432. // /* (non-Javadoc)
  433. // * @see gov.nist.javax.sip.message.SIPRequest#clone()
  434. // */
  435. // @Override
  436. // public Object clone() {
  437. // reparseMessage();
  438. // return super.clone();
  439. // }
  440. //
  441. // /* (non-Javadoc)
  442. // * @see gov.nist.javax.sip.message.SIPRequest#createACKRequest()
  443. // */
  444. // @Override
  445. // public SIPRequest createACKRequest() {
  446. // reparseMessage();
  447. // return super.createACKRequest();
  448. // }
  449. //
  450. // /* (non-Javadoc)
  451. // * @see gov.nist.javax.sip.message.SIPRequest#createAckRequest(gov.nist.javax.sip.header.To)
  452. // */
  453. // @Override
  454. // public SIPRequest createAckRequest(To responseToHeader) {
  455. // reparseMessage();
  456. // return super.createAckRequest(responseToHeader);
  457. // }
  458. //
  459. // /* (non-Javadoc)
  460. // * @see gov.nist.javax.sip.message.SIPRequest#createBYERequest(boolean)
  461. // */
  462. // @Override
  463. // public SIPRequest createBYERequest(boolean switchHeaders) {
  464. // reparseMessage();
  465. // return super.createBYERequest(switchHeaders);
  466. // }
  467. //
  468. // /* (non-Javadoc)
  469. // * @see gov.nist.javax.sip.message.SIPRequest#createCancelRequest()
  470. // */
  471. // @Override
  472. // public SIPRequest createCancelRequest() throws SipException {
  473. // reparseMessage();
  474. // return super.createCancelRequest();
  475. // }
  476. //
  477. // /* (non-Javadoc)
  478. // * @see gov.nist.javax.sip.message.SIPRequest#createResponse(int)
  479. // */
  480. // @Override
  481. // public SIPResponse createResponse(int statusCode) {
  482. // return super.createResponse(statusCode);
  483. // }
  484. //
  485. // /* (non-Javadoc)
  486. // * @see gov.nist.javax.sip.message.SIPRequest#createResponse(int, java.lang.String)
  487. // */
  488. // @Override
  489. // public SIPResponse createResponse(int statusCode, String reasonPhrase) {
  490. // if(isCleanedUp) {
  491. // try {
  492. // cleanUpSem.acquire();
  493. // SIPResponse newResponse = new SIPResponse();
  494. // try {
  495. // newResponse.setStatusCode(statusCode);
  496. // } catch (ParseException ex) {
  497. // throw new IllegalArgumentException("Bad code " + statusCode);
  498. // }
  499. // if (reasonPhrase != null)
  500. // newResponse.setReasonPhrase(reasonPhrase);
  501. // else
  502. // newResponse.setReasonPhrase(SIPResponse.getReasonPhrase(statusCode));
  503. // for (String savedHeaderForResponse : savedHeadersForResponse) {
  504. // try {
  505. // newResponse.attachHeader((SIPHeader) StringMsgParser.parseSIPHeader(savedHeaderForResponse), false);
  506. // } catch (SIPDuplicateHeaderException e) {
  507. // e.printStackTrace();
  508. // } catch (ParseException e) {
  509. // throw new IllegalArgumentException("A Parsing problem occured while reparsing the header " + savedHeaderForResponse, e);
  510. // }
  511. // }
  512. // if (MessageFactoryImpl.getDefaultServerHeader() != null) {
  513. // newResponse.setHeader(MessageFactoryImpl.getDefaultServerHeader());
  514. //
  515. // }
  516. // if (newResponse.getStatusCode() == 100) {
  517. // // Trying is never supposed to have the tag parameter set.
  518. // newResponse.getTo().removeParameter("tag");
  519. //
  520. // }
  521. // ServerHeader server = MessageFactoryImpl.getDefaultServerHeader();
  522. // if (server != null) {
  523. // newResponse.setHeader(server);
  524. // }
  525. // return newResponse;
  526. // } catch (InterruptedException e) {
  527. // e.printStackTrace();
  528. // return null;
  529. // } finally {
  530. // cleanUpSem.release();
  531. // }
  532. // } else {
  533. // return super.createResponse(statusCode, reasonPhrase);
  534. // }
  535. //
  536. // }
  537. //
  538. // /* (non-Javadoc)
  539. // * @see gov.nist.javax.sip.message.SIPRequest#createSIPRequest(gov.nist.javax.sip.header.RequestLine, boolean)
  540. // */
  541. // @Override
  542. // public SIPRequest createSIPRequest(RequestLine requestLine,
  543. // boolean switchHeaders) {
  544. // reparseMessage();
  545. // return super.createSIPRequest(requestLine, switchHeaders);
  546. // }
  547. //
  548. // /* (non-Javadoc)
  549. // * @see gov.nist.javax.sip.message.SIPRequest#debugDump()
  550. // */
  551. // @Override
  552. // public String debugDump() {
  553. // reparseMessage();
  554. // return super.debugDump();
  555. // }
  556. //
  557. // /* (non-Javadoc)
  558. // * @see gov.nist.javax.sip.message.SIPRequest#encode()
  559. // */
  560. // @Override
  561. // public String encode() {
  562. // if(savedMessageAsString !=null) {
  563. // return savedMessageAsString;
  564. // }
  565. // return super.encode();
  566. // }
  567. //
  568. // /* (non-Javadoc)
  569. // * @see gov.nist.javax.sip.message.SIPRequest#encodeAsBytes(java.lang.String)
  570. // */
  571. // @Override
  572. // public byte[] encodeAsBytes(String transport) {
  573. // if(savedMessageAsString !=null) {
  574. // return savedMessageAsString.getBytes();
  575. // }
  576. // return super.encodeAsBytes(transport);
  577. // }
  578. //
  579. // /* (non-Javadoc)
  580. // * @see gov.nist.javax.sip.message.SIPRequest#encodeMessage(java.lang.StringBuilder)
  581. // */
  582. // @Override
  583. // public StringBuilder encodeMessage(StringBuilder retval) {
  584. // if(savedMessageAsString !=null) {
  585. // return retval.append(savedMessageAsString);
  586. // }
  587. // return super.encodeMessage(retval);
  588. // }
  589. //
  590. // /* (non-Javadoc)
  591. // * @see gov.nist.javax.sip.message.SIPRequest#equals(java.lang.Object)
  592. // */
  593. // @Override
  594. // public boolean equals(Object other) {
  595. // reparseMessage();
  596. // return super.equals(other);
  597. // }
  598. //
  599. // /* (non-Javadoc)
  600. // * @see gov.nist.javax.sip.message.SIPRequest#getDialogId(boolean)
  601. // */
  602. // @Override
  603. // public String getDialogId(boolean isServer) {
  604. // reparseMessage();
  605. // return super.getDialogId(isServer);
  606. // }
  607. //
  608. // /* (non-Javadoc)
  609. // * @see gov.nist.javax.sip.message.SIPRequest#getDialogId(boolean, java.lang.String)
  610. // */
  611. // @Override
  612. // public String getDialogId(boolean isServer, String toTag) {
  613. // reparseMessage();
  614. // return super.getDialogId(isServer, toTag);
  615. // }
  616. //
  617. // /* (non-Javadoc)
  618. // * @see gov.nist.javax.sip.message.SIPRequest#getFirstLine()
  619. // */
  620. // @Override
  621. // public String getFirstLine() {
  622. // reparseMessage();
  623. // return super.getFirstLine();
  624. // }
  625. //
  626. // /* (non-Javadoc)
  627. // * @see gov.nist.javax.sip.message.SIPRequest#getInviteTransaction()
  628. // */
  629. // @Override
  630. // public Object getInviteTransaction() {
  631. // reparseMessage();
  632. // return super.getInviteTransaction();
  633. // }
  634. //
  635. // /* (non-Javadoc)
  636. // * @see gov.nist.javax.sip.message.SIPRequest#getMergeId()
  637. // */
  638. // @Override
  639. // public String getMergeId() {
  640. // if(mergedId != null) {
  641. // return mergedId;
  642. // }
  643. // return super.getMergeId();
  644. // }
  645. //
  646. // /* (non-Javadoc)
  647. // * @see gov.nist.javax.sip.message.SIPRequest#getMessageAsEncodedStrings()
  648. // */
  649. // @Override
  650. // public LinkedList getMessageAsEncodedStrings() {
  651. // reparseMessage();
  652. // return super.getMessageAsEncodedStrings();
  653. // }
  654. //
  655. // /* (non-Javadoc)
  656. // * @see gov.nist.javax.sip.message.SIPRequest#getMessageChannel()
  657. // */
  658. // @Override
  659. // public Object getMessageChannel() {
  660. // reparseMessage();
  661. // return super.getMessageChannel();
  662. // }
  663. //
  664. // /* (non-Javadoc)
  665. // * @see gov.nist.javax.sip.message.SIPRequest#getMethod()
  666. // */
  667. // @Override
  668. // public String getMethod() {
  669. // if(method != null) {
  670. // return method;
  671. // }
  672. // return super.getMethod();
  673. // }
  674. //
  675. // /* (non-Javadoc)
  676. // * @see gov.nist.javax.sip.message.SIPRequest#getRequestLine()
  677. // */
  678. // @Override
  679. // public RequestLine getRequestLine() {
  680. // reparseMessage();
  681. // return super.getRequestLine();
  682. // }
  683. //
  684. // /* (non-Javadoc)
  685. // * @see gov.nist.javax.sip.message.SIPRequest#getRequestURI()
  686. // */
  687. // @Override
  688. // public URI getRequestURI() {
  689. // reparseMessage();
  690. // return super.getRequestURI();
  691. // }
  692. //
  693. // /* (non-Javadoc)
  694. // * @see gov.nist.javax.sip.message.SIPRequest#getSIPVersion()
  695. // */
  696. // @Override
  697. // public String getSIPVersion() {
  698. // reparseMessage();
  699. // return super.getSIPVersion();
  700. // }
  701. //
  702. // /* (non-Javadoc)
  703. // * @see gov.nist.javax.sip.message.SIPRequest#getTransaction()
  704. // */
  705. // @Override
  706. // public Object getTransaction() {
  707. // reparseMessage();
  708. // return super.getTransaction();
  709. // }
  710. //
  711. // /* (non-Javadoc)
  712. // * @see gov.nist.javax.sip.message.SIPRequest#getViaHost()
  713. // */
  714. // @Override
  715. // public String getViaHost() {
  716. // reparseMessage();
  717. // return super.getViaHost();
  718. // }
  719. //
  720. // /* (non-Javadoc)
  721. // * @see gov.nist.javax.sip.message.SIPRequest#getViaPort()
  722. // */
  723. // @Override
  724. // public int getViaPort() {
  725. // reparseMessage();
  726. // return super.getViaPort();
  727. // }
  728. //
  729. // /* (non-Javadoc)
  730. // * @see gov.nist.javax.sip.message.SIPRequest#match(java.lang.Object)
  731. // */
  732. // @Override
  733. // public boolean match(Object matchObj) {
  734. // reparseMessage();
  735. // return super.match(matchObj);
  736. // }
  737. //
  738. // /* (non-Javadoc)
  739. // * @see gov.nist.javax.sip.message.SIPRequest#setDefaults()
  740. // */
  741. // @Override
  742. // protected void setDefaults() {
  743. // reparseMessage();
  744. // super.setDefaults();
  745. // }
  746. //
  747. // /* (non-Javadoc)
  748. // * @see gov.nist.javax.sip.message.SIPRequest#setMethod(java.lang.String)
  749. // */
  750. // @Override
  751. // public void setMethod(String method) {
  752. // reparseMessage();
  753. // super.setMethod(method);
  754. // }
  755. //
  756. // /* (non-Javadoc)
  757. // * @see gov.nist.javax.sip.message.SIPRequest#setRequestLine(gov.nist.javax.sip.header.RequestLine)
  758. // */
  759. // @Override
  760. // public void setRequestLine(RequestLine requestLine) {
  761. // reparseMessage();
  762. // super.setRequestLine(requestLine);
  763. // }
  764. //
  765. // /* (non-Javadoc)
  766. // * @see gov.nist.javax.sip.message.SIPRequest#setRequestLineDefaults()
  767. // */
  768. // @Override
  769. // protected void setRequestLineDefaults() {
  770. // reparseMessage();
  771. // super.setRequestLineDefaults();
  772. // }
  773. //
  774. // /* (non-Javadoc)
  775. // * @see gov.nist.javax.sip.message.SIPRequest#setRequestURI(javax.sip.address.URI)
  776. // */
  777. // @Override
  778. // public void setRequestURI(URI uri) {
  779. // reparseMessage();
  780. // super.setRequestURI(uri);
  781. // }
  782. //
  783. // /* (non-Javadoc)
  784. // * @see gov.nist.javax.sip.message.SIPRequest#setSIPVersion(java.lang.String)
  785. // */
  786. // @Override
  787. // public void setSIPVersion(String sipVersion) throws ParseException {
  788. // reparseMessage();
  789. // super.setSIPVersion(sipVersion);
  790. // }
  791. //
  792. // /* (non-Javadoc)
  793. // * @see gov.nist.javax.sip.message.SIPRequest#toString()
  794. // */
  795. // @Override
  796. // public String toString() {
  797. // if(savedMessageAsString != null) {
  798. // return savedMessageAsString;
  799. // }
  800. // return super.toString();
  801. // }
  802. //
  803. // /* (non-Javadoc)
  804. // * @see gov.nist.javax.sip.message.SIPMessage#addFirst(javax.sip.header.Header)
  805. // */
  806. // @Override
  807. // public void addFirst(Header header) throws SipException,
  808. // NullPointerException {
  809. // reparseMessage();
  810. // super.addFirst(header);
  811. // }
  812. //
  813. // /* (non-Javadoc)
  814. // * @see gov.nist.javax.sip.message.SIPMessage#addHeader(javax.sip.header.Header)
  815. // */
  816. // @Override
  817. // public void addHeader(Header sipHeader) {
  818. // reparseMessage();
  819. // super.addHeader(sipHeader);
  820. // }
  821. //
  822. // /* (non-Javadoc)
  823. // * @see gov.nist.javax.sip.message.SIPMessage#addHeader(java.lang.String)
  824. // */
  825. // @Override
  826. // public void addHeader(String sipHeader) {
  827. // reparseMessage();
  828. // super.addHeader(sipHeader);
  829. // }
  830. //
  831. // /* (non-Javadoc)
  832. // * @see gov.nist.javax.sip.message.SIPMessage#addLast(javax.sip.header.Header)
  833. // */
  834. // @Override
  835. // public void addLast(Header header) throws SipException,
  836. // NullPointerException {
  837. // reparseMessage();
  838. // super.addLast(header);
  839. // }
  840. //
  841. // /* (non-Javadoc)
  842. // * @see gov.nist.javax.sip.message.SIPMessage#addUnparsed(java.lang.String)
  843. // */
  844. // @Override
  845. // public void addUnparsed(String unparsed) {
  846. // reparseMessage();
  847. // super.addUnparsed(unparsed);
  848. // }
  849. //
  850. // /* (non-Javadoc)
  851. // * @see gov.nist.javax.sip.message.SIPMessage#attachHeader(gov.nist.javax.sip.header.SIPHeader, boolean)
  852. // */
  853. // @Override
  854. // public void attachHeader(SIPHeader h, boolean replaceflag)
  855. // throws SIPDuplicateHeaderException {
  856. // reparseMessage();
  857. // super.attachHeader(h, replaceflag);
  858. // }
  859. //
  860. // /* (non-Javadoc)
  861. // * @see gov.nist.javax.sip.message.SIPMessage#attachHeader(gov.nist.javax.sip.header.SIPHeader, boolean, boolean)
  862. // */
  863. // @Override
  864. // public void attachHeader(SIPHeader header, boolean replaceFlag, boolean top)
  865. // throws SIPDuplicateHeaderException {
  866. // reparseMessage();
  867. // super.attachHeader(header, replaceFlag, top);
  868. // }
  869. //
  870. // /* (non-Javadoc)
  871. // * @see gov.nist.javax.sip.message.SIPMessage#encodeSIPHeaders(java.lang.StringBuilder)
  872. // */
  873. // @Override
  874. // protected StringBuilder encodeSIPHeaders(StringBuilder encoding) {
  875. // reparseMessage();
  876. // return super.encodeSIPHeaders(encoding);
  877. // }
  878. //
  879. // /* (non-Javadoc)
  880. // * @see gov.nist.javax.sip.message.SIPMessage#getApplicationData()
  881. // */
  882. // @Override
  883. // public Object getApplicationData() {
  884. // reparseMessage();
  885. // return super.getApplicationData();
  886. // }
  887. //
  888. // /* (non-Javadoc)
  889. // * @see gov.nist.javax.sip.message.SIPMessage#getAuthorization()
  890. // */
  891. // @Override
  892. // public Authorization getAuthorization() {
  893. // reparseMessage();
  894. // return super.getAuthorization();
  895. // }
  896. //
  897. // /* (non-Javadoc)
  898. // * @see gov.nist.javax.sip.message.SIPMessage#getCSeq()
  899. // */
  900. // @Override
  901. // public CSeqHeader getCSeq() {
  902. // reparseMessage();
  903. // return super.getCSeq();
  904. // }
  905. //
  906. // /* (non-Javadoc)
  907. // * @see gov.nist.javax.sip.message.SIPMessage#getCSeqHeader()
  908. // */
  909. // @Override
  910. // public CSeqHeader getCSeqHeader() {
  911. // reparseMessage();
  912. // return super.getCSeqHeader();
  913. // }
  914. //
  915. // /* (non-Javadoc)
  916. // * @see gov.nist.javax.sip.message.SIPMessage#getCallId()
  917. // */
  918. // @Override
  919. // public CallIdHeader getCallId() {
  920. // reparseMessage();
  921. // return super.getCallId();
  922. // }
  923. //
  924. // /* (non-Javadoc)
  925. // * @see gov.nist.javax.sip.message.SIPMessage#getCallIdHeader()
  926. // */
  927. // @Override
  928. // public CallIdHeader getCallIdHeader() {
  929. // reparseMessage();
  930. // return super.getCallIdHeader();
  931. // }
  932. //
  933. // /* (non-Javadoc)
  934. // * @see gov.nist.javax.sip.message.SIPMessage#getContactHeader()
  935. // */
  936. // @Override
  937. // public Contact getContactHeader() {
  938. // reparseMessage();
  939. // return super.getContactHeader();
  940. // }
  941. //
  942. // /* (non-Javadoc)
  943. // * @see gov.nist.javax.sip.message.SIPMessage#getContactHeaders()
  944. // */
  945. // @Override
  946. // public ContactList getContactHeaders() {
  947. // reparseMessage();
  948. // return super.getContactHeaders();
  949. // }
  950. //
  951. // /* (non-Javadoc)
  952. // * @see gov.nist.javax.sip.message.SIPMessage#getContent()
  953. // */
  954. // @Override
  955. // public Object getContent() {
  956. // reparseMessage();
  957. // return super.getContent();
  958. // }
  959. //
  960. // /* (non-Javadoc)
  961. // * @see gov.nist.javax.sip.message.SIPMessage#getContentDisposition()
  962. // */
  963. // @Override
  964. // public ContentDispositionHeader getContentDisposition() {
  965. // reparseMessage();
  966. // return super.getContentDisposition();
  967. // }
  968. //
  969. // /* (non-Javadoc)
  970. // * @see gov.nist.javax.sip.message.SIPMessage#getContentEncoding()
  971. // */
  972. // @Override
  973. // public ContentEncodingHeader getContentEncoding() {
  974. // reparseMessage();
  975. // return super.getContentEncoding();
  976. // }
  977. //
  978. // /* (non-Javadoc)
  979. // * @see gov.nist.javax.sip.message.SIPMessage#getContentLanguage()
  980. // */
  981. // @Override
  982. // public ContentLanguageHeader getContentLanguage() {
  983. // reparseMessage();
  984. // return super.getContentLanguage();
  985. // }
  986. //
  987. // /* (non-Javadoc)
  988. // * @see gov.nist.javax.sip.message.SIPMessage#getContentLength()
  989. // */
  990. // @Override
  991. // public ContentLengthHeader getContentLength() {
  992. // reparseMessage();
  993. // return super.getContentLength();
  994. // }
  995. //
  996. // /* (non-Javadoc)
  997. // * @see gov.nist.javax.sip.message.SIPMessage#getContentLengthHeader()
  998. // */
  999. // @Override
  1000. // public ContentLengthHeader getContentLengthHeader() {
  1001. // reparseMessage();
  1002. // return super.getContentLengthHeader();
  1003. // }
  1004. //
  1005. // /* (non-Javadoc)
  1006. // * @see gov.nist.javax.sip.message.SIPMessage#getContentTypeHeader()
  1007. // */
  1008. // @Override
  1009. // public ContentType getContentTypeHeader() {
  1010. // reparseMessage();
  1011. // return super.getContentTypeHeader();
  1012. // }
  1013. //
  1014. // /* (non-Javadoc)
  1015. // * @see gov.nist.javax.sip.message.SIPMessage#getErrorInfoHeaders()
  1016. // */
  1017. // @Override
  1018. // public ErrorInfoList getErrorInfoHeaders() {
  1019. // reparseMessage();
  1020. // return super.getErrorInfoHeaders();
  1021. // }
  1022. //
  1023. // /* (non-Javadoc)
  1024. // * @see gov.nist.javax.sip.message.SIPMessage#getExpires()
  1025. // */
  1026. // @Override
  1027. // public ExpiresHeader getExpires() {
  1028. // reparseMessage();
  1029. // return super.getExpires();
  1030. // }
  1031. //
  1032. // /* (non-Javadoc)
  1033. // * @see gov.nist.javax.sip.message.SIPMessage#getForkId()
  1034. // */
  1035. // @Override
  1036. // public String getForkId() {
  1037. // reparseMessage();
  1038. // return super.getForkId();
  1039. // }
  1040. //
  1041. // /* (non-Javadoc)
  1042. // * @see gov.nist.javax.sip.message.SIPMessage#getFrom()
  1043. // */
  1044. // @Override
  1045. // public FromHeader getFrom() {
  1046. // reparseMessage();
  1047. // return super.getFrom();
  1048. // }
  1049. //
  1050. // /* (non-Javadoc)
  1051. // * @see gov.nist.javax.sip.message.SIPMessage#getFromHeader()
  1052. // */
  1053. // @Override
  1054. // public FromHeader getFromHeader() {
  1055. // reparseMessage();
  1056. // return super.getFromHeader();
  1057. // }
  1058. //
  1059. // /* (non-Javadoc)
  1060. // * @see gov.nist.javax.sip.message.SIPMessage#getFromTag()
  1061. // */
  1062. // @Override
  1063. // public String getFromTag() {
  1064. // if(fromTag != null) {
  1065. // return fromTag;
  1066. // }
  1067. // return super.getFromTag();
  1068. // }
  1069. //
  1070. // /* (non-Javadoc)
  1071. // * @see gov.nist.javax.sip.message.SIPMessage#getHeader(java.lang.String)
  1072. // */
  1073. // @Override
  1074. // public Header getHeader(String headerName) {
  1075. // reparseMessage();
  1076. // return super.getHeader(headerName);
  1077. // }
  1078. //
  1079. // /* (non-Javadoc)
  1080. // * @see gov.nist.javax.sip.message.SIPMessage#getHeaderAsFormattedString(java.lang.String)
  1081. // */
  1082. // @Override
  1083. // public String getHeaderAsFormattedString(String name) {
  1084. // reparseMessage();
  1085. // return super.getHeaderAsFormattedString(name);
  1086. // }
  1087. //
  1088. // /* (non-Javadoc)
  1089. // * @see gov.nist.javax.sip.message.SIPMessage#getHeaderNames()
  1090. // */
  1091. // @Override
  1092. // public ListIterator<String> getHeaderNames() {
  1093. // reparseMessage();
  1094. // return super.getHeaderNames();
  1095. // }
  1096. //
  1097. // /* (non-Javadoc)
  1098. // * @see gov.nist.javax.sip.message.SIPMessage#getHeaders()
  1099. // */
  1100. // @Override
  1101. // public Iterator<SIPHeader> getHeaders() {
  1102. // reparseMessage();
  1103. // return super.getHeaders();
  1104. // }
  1105. //
  1106. // /* (non-Javadoc)
  1107. // * @see gov.nist.javax.sip.message.SIPMessage#getHeaders(java.lang.String)
  1108. // */
  1109. // @Override
  1110. // public ListIterator<SIPHeader> getHeaders(String headerName) {
  1111. // reparseMessage();
  1112. // return super.getHeaders(headerName);
  1113. // }
  1114. //
  1115. // /* (non-Javadoc)
  1116. // * @see gov.nist.javax.sip.message.SIPMessage#getHeadersAsCollection()
  1117. // */
  1118. // @Override
  1119. // public Collection<SIPHeader> getHeadersAsCollection() {
  1120. // reparseMessage();
  1121. // return super.getHeadersAsCollection();
  1122. // }
  1123. //
  1124. // /* (non-Javadoc)
  1125. // * @see gov.nist.javax.sip.message.SIPMessage#getMaxForwards()
  1126. // */
  1127. // @Override
  1128. // public MaxForwardsHeader getMaxForwards() {
  1129. // reparseMessage();
  1130. // return super.getMaxForwards();
  1131. // }
  1132. //
  1133. // /* (non-Javadoc)
  1134. // * @see gov.nist.javax.sip.message.SIPMessage#getMessageContent()
  1135. // */
  1136. // @Override
  1137. // public String getMessageContent() throws UnsupportedEncodingException {
  1138. // reparseMessage();
  1139. // return super.getMessageContent();
  1140. // }
  1141. //
  1142. // /* (non-Javadoc)
  1143. // * @see gov.nist.javax.sip.message.SIPMessage#getMultipartMimeContent()
  1144. // */
  1145. // @Override
  1146. // public MultipartMimeContent getMultipartMimeContent() throws ParseException {
  1147. // reparseMessage();
  1148. // return super.getMultipartMimeContent();
  1149. // }
  1150. //
  1151. // /* (non-Javadoc)
  1152. // * @see gov.nist.javax.sip.message.SIPMessage#getRawContent()
  1153. // */
  1154. // @Override
  1155. // public byte[] getRawContent() {
  1156. // reparseMessage();
  1157. // return super.getRawContent();
  1158. // }
  1159. //
  1160. // /* (non-Javadoc)
  1161. // * @see gov.nist.javax.sip.message.SIPMessage#getRecordRouteHeaders()
  1162. // */
  1163. // @Override
  1164. // public RecordRouteList getRecordRouteHeaders() {
  1165. // reparseMessage();
  1166. // return super.getRecordRouteHeaders();
  1167. // }
  1168. //
  1169. // /* (non-Javadoc)
  1170. // * @see gov.nist.javax.sip.message.SIPMessage#getRouteHeaders()
  1171. // */
  1172. // @Override
  1173. // public RouteList getRouteHeaders() {
  1174. // reparseMessage();
  1175. // return super.getRouteHeaders();
  1176. // }
  1177. //
  1178. // /* (non-Javadoc)
  1179. // * @see gov.nist.javax.sip.message.SIPMessage#getSIPHeaderListLowerCase(java.lang.String)
  1180. // */
  1181. // @Override
  1182. // protected SIPHeader getSIPHeaderListLowerCase(String lowerCaseHeaderName) {
  1183. // reparseMessage();
  1184. // return super.getSIPHeaderListLowerCase(lowerCaseHeaderName);
  1185. // }
  1186. //
  1187. // /* (non-Javadoc)
  1188. // * @see gov.nist.javax.sip.message.SIPMessage#getSize()
  1189. // */
  1190. // @Override
  1191. // public int getSize() {
  1192. // reparseMessage();
  1193. // return super.getSize();
  1194. // }
  1195. //
  1196. // /* (non-Javadoc)
  1197. // * @see gov.nist.javax.sip.message.SIPMessage#getTo()
  1198. // */
  1199. // @Override
  1200. // public ToHeader getTo() {
  1201. // reparseMessage();
  1202. // return super.getTo();
  1203. // }
  1204. //
  1205. // /* (non-Javadoc)
  1206. // * @see gov.nist.javax.sip.message.SIPMessage#getToHeader()
  1207. // */
  1208. // @Override
  1209. // public ToHeader getToHeader() {
  1210. // reparseMessage();
  1211. // return super.getToHeader();
  1212. // }
  1213. //
  1214. // /* (non-Javadoc)
  1215. // * @see gov.nist.javax.sip.message.SIPMessage#getToTag()
  1216. // */
  1217. // @Override
  1218. // public String getToTag() {
  1219. // if(toTag != null) {
  1220. // return toTag;
  1221. // }
  1222. // return super.getToTag();
  1223. // }
  1224. //
  1225. // /* (non-Javadoc)
  1226. // * @see gov.nist.javax.sip.message.SIPMessage#getTopmostVia()
  1227. // */
  1228. // @Override
  1229. // public Via getTopmostVia() {
  1230. // if(isCleanedUp) {
  1231. // return topMostViaHeader;
  1232. // }
  1233. // return super.getTopmostVia();
  1234. // }
  1235. //
  1236. // /* (non-Javadoc)
  1237. // * @see gov.nist.javax.sip.message.SIPMessage#getTopmostViaHeader()
  1238. // */
  1239. // @Override
  1240. // public ViaHeader getTopmostViaHeader() {
  1241. // if(isCleanedUp) {
  1242. // return topMostViaHeader;
  1243. // }
  1244. // return super.getTopmostViaHeader();
  1245. // }
  1246. //
  1247. // /* (non-Javadoc)
  1248. // * @see gov.nist.javax.sip.message.SIPMessage#getTransactionId()
  1249. // */
  1250. // @Override
  1251. // public String getTransactionId() {
  1252. // reparseMessage();
  1253. // return super.getTransactionId();
  1254. // }
  1255. //
  1256. // /* (non-Javadoc)
  1257. // * @see gov.nist.javax.sip.message.SIPMessage#getUnrecognizedHeaders()
  1258. // */
  1259. // @Override
  1260. // public ListIterator<String> getUnrecognizedHeaders() {
  1261. // reparseMessage();
  1262. // return super.getUnrecognizedHeaders();
  1263. // }
  1264. //
  1265. // /* (non-Javadoc)
  1266. // * @see gov.nist.javax.sip.message.SIPMessage#getUnrecognizedHeadersList()
  1267. // */
  1268. // @Override
  1269. // protected LinkedList<String> getUnrecognizedHeadersList() {
  1270. // reparseMessage();
  1271. // return super.getUnrecognizedHeadersList();
  1272. // }
  1273. //
  1274. // /* (non-Javadoc)
  1275. // * @see gov.nist.javax.sip.message.SIPMessage#getViaHeaders()
  1276. // */
  1277. // @Override
  1278. // public ViaList getViaHeaders() {
  1279. // reparseMessage();
  1280. // return super.getViaHeaders();
  1281. // }
  1282. //
  1283. // /* (non-Javadoc)
  1284. // * @see gov.nist.javax.sip.message.SIPMessage#hasContent()
  1285. // */
  1286. // @Override
  1287. // public boolean hasContent() {
  1288. // reparseMessage();
  1289. // return super.hasContent();
  1290. // }
  1291. //
  1292. // /* (non-Javadoc)
  1293. // * @see gov.nist.javax.sip.message.SIPMessage#hasFromTag()
  1294. // */
  1295. // @Override
  1296. // public boolean hasFromTag() {
  1297. // reparseMessage();
  1298. // return super.hasFromTag();
  1299. // }
  1300. //
  1301. // /* (non-Javadoc)
  1302. // * @see gov.nist.javax.sip.message.SIPMessage#hasHeader(java.lang.String)
  1303. // */
  1304. // @Override
  1305. // public boolean hasHeader(String headerName) {
  1306. // reparseMessage();
  1307. // return super.hasHeader(headerName);
  1308. // }
  1309. //
  1310. // /* (non-Javadoc)
  1311. // * @see gov.nist.javax.sip.message.SIPMessage#hasToTag()
  1312. // */
  1313. // @Override
  1314. // public boolean hasToTag() {
  1315. // reparseMessage();
  1316. // return super.hasToTag();
  1317. // }
  1318. //
  1319. // /* (non-Javadoc)
  1320. // * @see gov.nist.javax.sip.message.SIPMessage#hashCode()
  1321. // */
  1322. // @Override
  1323. // public int hashCode() {
  1324. // reparseMessage();
  1325. // return super.hashCode();
  1326. // }
  1327. //
  1328. //// /* (non-Javadoc)
  1329. //// * @see gov.nist.javax.sip.message.SIPMessage#isNullRequest()
  1330. //// */
  1331. //// @Override
  1332. //// public boolean isNullRequest() {
  1333. //// reparseMessage();
  1334. //// return super.isNullRequest();
  1335. //// }
  1336. //
  1337. // /* (non-Javadoc)
  1338. // * @see gov.nist.javax.sip.message.SIPMessage#merge(java.lang.Object)
  1339. // */
  1340. // @Override
  1341. // public void merge(Object template) {
  1342. // reparseMessage();
  1343. // super.merge(template);
  1344. // }
  1345. //
  1346. // /* (non-Javadoc)
  1347. // * @see gov.nist.javax.sip.message.SIPMessage#removeContent()
  1348. // */
  1349. // @Override
  1350. // public void removeContent() {
  1351. // reparseMessage();
  1352. // super.removeContent();
  1353. // }
  1354. //
  1355. // /* (non-Javadoc)
  1356. // * @see gov.nist.javax.sip.message.SIPMessage#removeFirst(java.lang.String)
  1357. // */
  1358. // @Override
  1359. // public void removeFirst(String headerName) throws NullPointerException {
  1360. // reparseMessage();
  1361. // super.removeFirst(headerName);
  1362. // }
  1363. //
  1364. // /* (non-Javadoc)
  1365. // * @see gov.nist.javax.sip.message.SIPMessage#removeHeader(java.lang.String, boolean)
  1366. // */
  1367. // @Override
  1368. // public void removeHeader(String headerName, boolean top) {
  1369. // reparseMessage();
  1370. // super.removeHeader(headerName, top);
  1371. // }
  1372. //
  1373. // /* (non-Javadoc)
  1374. // * @see gov.nist.javax.sip.message.SIPMessage#removeHeader(java.lang.String)
  1375. // */
  1376. // @Override
  1377. // public void removeHeader(String headerName) {
  1378. // reparseMessage();
  1379. // super.removeHeader(headerName);
  1380. // }
  1381. //
  1382. // /* (non-Javadoc)
  1383. // * @see gov.nist.javax.sip.message.SIPMessage#removeLast(java.lang.String)
  1384. // */
  1385. // @Override
  1386. // public void removeLast(String headerName) {
  1387. // reparseMessage();
  1388. // super.removeLast(headerName);
  1389. // }
  1390. //
  1391. // /* (non-Javadoc)
  1392. // * @see gov.nist.javax.sip.message.SIPMessage#setApplicationData(java.lang.Object)
  1393. // */
  1394. // @Override
  1395. // public void setApplicationData(Object applicationData) {
  1396. // reparseMessage();
  1397. // super.setApplicationData(applicationData);
  1398. // }
  1399. //
  1400. // /* (non-Javadoc)
  1401. // * @see gov.nist.javax.sip.message.SIPMessage#setCSeq(javax.sip.header.CSeqHeader)
  1402. // */
  1403. // @Override
  1404. // public void setCSeq(CSeqHeader cseqHeader) {
  1405. // reparseMessage();
  1406. // super.setCSeq(cseqHeader);
  1407. // }
  1408. //
  1409. // /* (non-Javadoc)
  1410. // * @see gov.nist.javax.sip.message.SIPMessage#setCallId(javax.sip.header.CallIdHeader)
  1411. // */
  1412. // @Override
  1413. // public void setCallId(CallIdHeader callId) {
  1414. // reparseMessage();
  1415. // super.setCallId(callId);
  1416. // }
  1417. //
  1418. // /* (non-Javadoc)
  1419. // * @see gov.nist.javax.sip.message.SIPMessage#setCallId(java.lang.String)
  1420. // */
  1421. // @Override
  1422. // public void setCallId(String callId) throws ParseException {
  1423. // reparseMessage();
  1424. // super.setCallId(callId);
  1425. // }
  1426. //
  1427. // /* (non-Javadoc)
  1428. // * @see gov.nist.javax.sip.message.SIPMessage#setContent(java.lang.Object, javax.sip.header.ContentTypeHeader)
  1429. // */
  1430. // @Override
  1431. // public void setContent(Object content, ContentTypeHeader contentTypeHeader)
  1432. // throws ParseException {
  1433. // reparseMessage();
  1434. // super.setContent(content, contentTypeHeader);
  1435. // }
  1436. //
  1437. // /* (non-Javadoc)
  1438. // * @see gov.nist.javax.sip.message.SIPMessage#setContentDisposition(javax.sip.header.ContentDispositionHeader)
  1439. // */
  1440. // @Override
  1441. // public void setContentDisposition(
  1442. // ContentDispositionHeader contentDispositionHeader) {
  1443. // reparseMessage();
  1444. // super.setContentDisposition(contentDispositionHeader);
  1445. // }
  1446. //
  1447. // /* (non-Javadoc)
  1448. // * @see gov.nist.javax.sip.message.SIPMessage#setContentEncoding(javax.sip.header.ContentEncodingHeader)
  1449. // */
  1450. // @Override
  1451. // public void setContentEncoding(ContentEncodingHeader contentEncodingHeader) {
  1452. // reparseMessage();
  1453. // super.setContentEncoding(contentEncodingHeader);
  1454. // }
  1455. //
  1456. // /* (non-Javadoc)
  1457. // * @see gov.nist.javax.sip.message.SIPMessage#setContentLanguage(javax.sip.header.ContentLanguageHeader)
  1458. // */
  1459. // @Override
  1460. // public void setContentLanguage(ContentLanguageHeader contentLanguageHeader) {
  1461. // reparseMessage();
  1462. // super.setContentLanguage(contentLanguageHeader);
  1463. // }
  1464. //
  1465. // /* (non-Javadoc)
  1466. // * @see gov.nist.javax.sip.message.SIPMessage#setContentLength(javax.sip.header.ContentLengthHeader)
  1467. // */
  1468. // @Override
  1469. // public void setContentLength(ContentLengthHeader contentLength) {
  1470. // reparseMessage();
  1471. // super.setContentLength(contentLength);
  1472. // }
  1473. //
  1474. // /* (non-Javadoc)
  1475. // * @see gov.nist.javax.sip.message.SIPMessage#setExpires(javax.sip.header.ExpiresHeader)
  1476. // */
  1477. // @Override
  1478. // public void setExpires(ExpiresHeader expiresHeader) {
  1479. // reparseMessage();
  1480. // super.setExpires(expiresHeader);
  1481. // }
  1482. //
  1483. // /* (non-Javadoc)
  1484. // * @see gov.nist.javax.sip.message.SIPMessage#setFrom(javax.sip.header.FromHeader)
  1485. // */
  1486. // @Override
  1487. // public void setFrom(FromHeader from) {
  1488. // reparseMessage();
  1489. // super.setFrom(from);
  1490. // }
  1491. //
  1492. // /* (non-Javadoc)
  1493. // * @see gov.nist.javax.sip.message.SIPMessage#setFromTag(java.lang.String)
  1494. // */
  1495. // @Override
  1496. // public void setFromTag(String tag) {
  1497. // reparseMessage();
  1498. // super.setFromTag(tag);
  1499. // }
  1500. //
  1501. // /* (non-Javadoc)
  1502. // * @see gov.nist.javax.sip.message.SIPMessage#setHeader(javax.sip.header.Header)
  1503. // */
  1504. // @Override
  1505. // public void setHeader(Header sipHeader) {
  1506. // reparseMessage();
  1507. // super.setHeader(sipHeader);
  1508. // }
  1509. //
  1510. // /* (non-Javadoc)
  1511. // * @see gov.nist.javax.sip.message.SIPMessage#setHeader(gov.nist.javax.sip.header.SIPHeaderList)
  1512. // */
  1513. // @Override
  1514. // public void setHeader(SIPHeaderList<Via> sipHeaderList) {
  1515. // reparseMessage();
  1516. // super.setHeader(sipHeaderList);
  1517. // }
  1518. //
  1519. // /* (non-Javadoc)
  1520. // * @see gov.nist.javax.sip.message.SIPMessage#setHeaders(java.util.List)
  1521. // */
  1522. // @Override
  1523. // public void setHeaders(List<SIPHeader> headers) {
  1524. // reparseMessage();
  1525. // super.setHeaders(headers);
  1526. // }
  1527. //
  1528. // /* (non-Javadoc)
  1529. // * @see gov.nist.javax.sip.message.SIPMessage#setMaxForwards(javax.sip.header.MaxForwardsHeader)
  1530. // */
  1531. // @Override
  1532. // public void setMaxForwards(MaxForwardsHeader maxForwards) {
  1533. // reparseMessage();
  1534. // super.setMaxForwards(maxForwards);
  1535. // }
  1536. //
  1537. // /* (non-Javadoc)
  1538. // * @see gov.nist.javax.sip.message.SIPMessage#setMessageContent(java.lang.String, java.lang.String, java.lang.String)
  1539. // */
  1540. // @Override
  1541. // public void setMessageContent(String type, String subType,
  1542. // String messageContent) {
  1543. // reparseMessage();
  1544. // super.setMessageContent(type, subType, messageContent);
  1545. // }
  1546. //
  1547. // /* (non-Javadoc)
  1548. // * @see gov.nist.javax.sip.message.SIPMessage#setMessageContent(java.lang.String, java.lang.String, byte[])
  1549. // */
  1550. // @Override
  1551. // public void setMessageContent(String type, String subType,
  1552. // byte[] messageContent) {
  1553. // reparseMessage();
  1554. // super.setMessageContent(type, subType, messageContent);
  1555. // }
  1556. //
  1557. // /* (non-Javadoc)
  1558. // * @see gov.nist.javax.sip.message.SIPMessage#setMessageContent(java.lang.String, boolean, boolean, int)
  1559. // */
  1560. // @Override
  1561. // public void setMessageContent(String content, boolean strict,
  1562. // boolean computeContentLength, int givenLength)
  1563. // throws ParseException {
  1564. // reparseMessage();
  1565. // super.setMessageContent(content, strict, computeContentLength, givenLength);
  1566. // }
  1567. //
  1568. // /* (non-Javadoc)
  1569. // * @see gov.nist.javax.sip.message.SIPMessage#setMessageContent(byte[])
  1570. // */
  1571. // @Override
  1572. // public void setMessageContent(byte[] content) {
  1573. // reparseMessage();
  1574. // super.setMessageContent(content);
  1575. // }
  1576. //
  1577. // /* (non-Javadoc)
  1578. // * @see gov.nist.javax.sip.message.SIPMessage#setMessageContent(byte[], boolean, int)
  1579. // */
  1580. // @Override
  1581. // public void setMessageContent(byte[] content, boolean computeContentLength,
  1582. // int givenLength) throws ParseException {
  1583. // reparseMessage();
  1584. // super.setMessageContent(content, computeContentLength, givenLength);
  1585. // }
  1586. //
  1587. // /* (non-Javadoc)
  1588. // * @see gov.nist.javax.sip.message.SIPMessage#setNullRequest()
  1589. // */
  1590. // @Override
  1591. // public void setNullRequest() {
  1592. // reparseMessage();
  1593. // super.setNullRequest();
  1594. // }
  1595. //
  1596. // /* (non-Javadoc)
  1597. // * @see gov.nist.javax.sip.message.SIPMessage#setSize(int)
  1598. // */
  1599. // @Override
  1600. // public void setSize(int size) {
  1601. // reparseMessage();
  1602. // super.setSize(size);
  1603. // }
  1604. //
  1605. // /* (non-Javadoc)
  1606. // * @see gov.nist.javax.sip.message.SIPMessage#setTo(javax.sip.header.ToHeader)
  1607. // */
  1608. // @Override
  1609. // public void setTo(ToHeader to) {
  1610. // reparseMessage();
  1611. // super.setTo(to);
  1612. // }
  1613. //
  1614. // /* (non-Javadoc)
  1615. // * @see gov.nist.javax.sip.message.SIPMessage#setToTag(java.lang.String)
  1616. // */
  1617. // @Override
  1618. // public void setToTag(String tag) {
  1619. // reparseMessage();
  1620. // super.setToTag(tag);
  1621. // }
  1622. //
  1623. // /* (non-Javadoc)
  1624. // * @see gov.nist.javax.sip.message.SIPMessage#setUnrecognizedHeadersList(java.util.LinkedList)
  1625. // */
  1626. // @Override
  1627. // protected void setUnrecognizedHeadersList(
  1628. // LinkedList<String> unrecognizedHeaders) {
  1629. // reparseMessage();
  1630. // super.setUnrecognizedHeadersList(unrecognizedHeaders);
  1631. // }
  1632. //
  1633. // /* (non-Javadoc)
  1634. // * @see gov.nist.javax.sip.message.SIPMessage#setVia(java.util.List)
  1635. // */
  1636. // @Override
  1637. // public void setVia(List viaList) {
  1638. // reparseMessage();
  1639. // super.setVia(viaList);
  1640. // }
  1641. }