001    /**
002     * Copyright (c) 2000-2012 Liferay, Inc. All rights reserved.
003     *
004     * This library is free software; you can redistribute it and/or modify it under
005     * the terms of the GNU Lesser General Public License as published by the Free
006     * Software Foundation; either version 2.1 of the License, or (at your option)
007     * any later version.
008     *
009     * This library is distributed in the hope that it will be useful, but WITHOUT
010     * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
011     * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
012     * details.
013     */
014    
015    package com.liferay.portal.kernel.util;
016    
017    import com.liferay.portal.service.ServiceContext;
018    import com.liferay.portal.util.PortalUtil;
019    
020    import java.io.Serializable;
021    
022    import java.text.DateFormat;
023    
024    import java.util.Date;
025    import java.util.Enumeration;
026    import java.util.Map;
027    
028    import javax.portlet.PortletRequest;
029    
030    import javax.servlet.http.HttpServletRequest;
031    
032    /**
033     * @author Brian Wing Shun Chan
034     * @author Raymond Augé
035     */
036    public class ParamUtil {
037    
038            public static boolean get(
039                    HttpServletRequest request, String param, boolean defaultValue) {
040    
041                    return GetterUtil.get(request.getParameter(param), defaultValue);
042            }
043    
044            public static Date get(
045                    HttpServletRequest request, String param, DateFormat dateFormat,
046                    Date defaultValue) {
047    
048                    return GetterUtil.get(
049                            request.getParameter(param), dateFormat, defaultValue);
050            }
051    
052            public static double get(
053                    HttpServletRequest request, String param, double defaultValue) {
054    
055                    return GetterUtil.get(request.getParameter(param), defaultValue);
056            }
057    
058            public static float get(
059                    HttpServletRequest request, String param, float defaultValue) {
060    
061                    return GetterUtil.get(request.getParameter(param), defaultValue);
062            }
063    
064            public static int get(
065                    HttpServletRequest request, String param, int defaultValue) {
066    
067                    return GetterUtil.get(request.getParameter(param), defaultValue);
068            }
069    
070            public static long get(
071                    HttpServletRequest request, String param, long defaultValue) {
072    
073                    return GetterUtil.get(request.getParameter(param), defaultValue);
074            }
075    
076            public static short get(
077                    HttpServletRequest request, String param, short defaultValue) {
078    
079                    return GetterUtil.get(request.getParameter(param), defaultValue);
080            }
081    
082            public static String get(
083                    HttpServletRequest request, String param, String defaultValue) {
084    
085                    String returnValue = GetterUtil.get(
086                            request.getParameter(param), defaultValue);
087    
088                    if (returnValue != null) {
089                            return returnValue.trim();
090                    }
091    
092                    return null;
093            }
094    
095            public static boolean get(
096                    PortletRequest portletRequest, String param, boolean defaultValue) {
097    
098                    return GetterUtil.get(portletRequest.getParameter(param), defaultValue);
099            }
100    
101            public static Date get(
102                    PortletRequest portletRequest, String param, DateFormat dateFormat,
103                    Date defaultValue) {
104    
105                    return GetterUtil.get(
106                            portletRequest.getParameter(param), dateFormat, defaultValue);
107            }
108    
109            public static double get(
110                    PortletRequest portletRequest, String param, double defaultValue) {
111    
112                    return GetterUtil.get(portletRequest.getParameter(param), defaultValue);
113            }
114    
115            public static float get(
116                    PortletRequest portletRequest, String param, float defaultValue) {
117    
118                    return GetterUtil.get(portletRequest.getParameter(param), defaultValue);
119            }
120    
121            public static int get(
122                    PortletRequest portletRequest, String param, int defaultValue) {
123    
124                    return GetterUtil.get(portletRequest.getParameter(param), defaultValue);
125            }
126    
127            public static long get(
128                    PortletRequest portletRequest, String param, long defaultValue) {
129    
130                    return GetterUtil.get(portletRequest.getParameter(param), defaultValue);
131            }
132    
133            public static short get(
134                    PortletRequest portletRequest, String param, short defaultValue) {
135    
136                    return GetterUtil.get(portletRequest.getParameter(param), defaultValue);
137            }
138    
139            public static String get(
140                    PortletRequest portletRequest, String param, String defaultValue) {
141    
142                    String returnValue = GetterUtil.get(
143                            portletRequest.getParameter(param), defaultValue);
144    
145                    if (returnValue != null) {
146                            return returnValue.trim();
147                    }
148    
149                    return null;
150            }
151    
152            public static boolean get(
153                    ServiceContext serviceContext, String param, boolean defaultValue) {
154    
155                    return GetterUtil.get(serviceContext.getAttribute(param), defaultValue);
156            }
157    
158            public static Date get(
159                    ServiceContext serviceContext, String param, DateFormat dateFormat,
160                    Date defaultValue) {
161    
162                    return GetterUtil.get(
163                            serviceContext.getAttribute(param), dateFormat, defaultValue);
164            }
165    
166            public static double get(
167                    ServiceContext serviceContext, String param, double defaultValue) {
168    
169                    return GetterUtil.get(serviceContext.getAttribute(param), defaultValue);
170            }
171    
172            public static float get(
173                    ServiceContext serviceContext, String param, float defaultValue) {
174    
175                    return GetterUtil.get(serviceContext.getAttribute(param), defaultValue);
176            }
177    
178            public static int get(
179                    ServiceContext serviceContext, String param, int defaultValue) {
180    
181                    return GetterUtil.get(serviceContext.getAttribute(param), defaultValue);
182            }
183    
184            public static long get(
185                    ServiceContext serviceContext, String param, long defaultValue) {
186    
187                    return GetterUtil.get(serviceContext.getAttribute(param), defaultValue);
188            }
189    
190            public static short get(
191                    ServiceContext serviceContext, String param, short defaultValue) {
192    
193                    return GetterUtil.get(serviceContext.getAttribute(param), defaultValue);
194            }
195    
196            public static String get(
197                    ServiceContext serviceContext, String param, String defaultValue) {
198    
199                    String returnValue = GetterUtil.get(
200                            serviceContext.getAttribute(param), defaultValue);
201    
202                    if (returnValue != null) {
203                            return returnValue.trim();
204                    }
205    
206                    return null;
207            }
208    
209            public static boolean getBoolean(HttpServletRequest request, String param) {
210                    return GetterUtil.getBoolean(request.getParameter(param));
211            }
212    
213            public static boolean getBoolean(
214                    HttpServletRequest request, String param, boolean defaultValue) {
215    
216                    return get(request, param, defaultValue);
217            }
218    
219            public static boolean getBoolean(
220                    PortletRequest portletRequest, String param) {
221    
222                    return GetterUtil.getBoolean(portletRequest.getParameter(param));
223            }
224    
225            public static boolean getBoolean(
226                    PortletRequest portletRequest, String param, boolean defaultValue) {
227    
228                    return get(portletRequest, param, defaultValue);
229            }
230    
231            public static boolean getBoolean(
232                    ServiceContext serviceContext, String param) {
233    
234                    return GetterUtil.getBoolean(serviceContext.getAttribute(param));
235            }
236    
237            public static boolean getBoolean(
238                    ServiceContext serviceContext, String param, boolean defaultValue) {
239    
240                    return get(serviceContext, param, defaultValue);
241            }
242    
243            public static boolean[] getBooleanValues(
244                    HttpServletRequest request, String param) {
245    
246                    return getBooleanValues(request, param, new boolean[0]);
247            }
248    
249            public static boolean[] getBooleanValues(
250                    HttpServletRequest request, String param, boolean[] defaultValue) {
251    
252                    return GetterUtil.getBooleanValues(
253                            getParameterValues(request, param), defaultValue);
254            }
255    
256            public static boolean[] getBooleanValues(
257                    PortletRequest portletRequest, String param) {
258    
259                    return getBooleanValues(portletRequest, param, new boolean[0]);
260            }
261    
262            public static boolean[] getBooleanValues(
263                    PortletRequest portletRequest, String param, boolean[] defaultValue) {
264    
265                    return GetterUtil.getBooleanValues(
266                            getParameterValues(portletRequest, param), defaultValue);
267            }
268    
269            public static boolean[] getBooleanValues(
270                    ServiceContext serviceContext, String param) {
271    
272                    return getBooleanValues(serviceContext, param, new boolean[0]);
273            }
274    
275            public static boolean[] getBooleanValues(
276                    ServiceContext serviceContext, String param, boolean[] defaultValue) {
277    
278                    return GetterUtil.getBooleanValues(
279                            serviceContext.getAttribute(param), defaultValue);
280            }
281    
282            public static Date getDate(
283                    HttpServletRequest request, String param, DateFormat dateFormat) {
284    
285                    return GetterUtil.getDate(request.getParameter(param), dateFormat);
286            }
287    
288            public static Date getDate(
289                    HttpServletRequest request, String param, DateFormat dateFormat,
290                    Date defaultValue) {
291    
292                    return get(request, param, dateFormat, defaultValue);
293            }
294    
295            public static Date getDate(
296                    PortletRequest portletRequest, String param, DateFormat dateFormat) {
297    
298                    return GetterUtil.getDate(
299                            portletRequest.getParameter(param), dateFormat);
300            }
301    
302            public static Date getDate(
303                    PortletRequest portletRequest, String param, DateFormat dateFormat,
304                    Date defaultValue) {
305    
306                    return get(portletRequest, param, dateFormat, defaultValue);
307            }
308    
309            public static Date getDate(
310                    ServiceContext serviceContext, String param, DateFormat dateFormat) {
311    
312                    return GetterUtil.getDate(
313                            serviceContext.getAttribute(param), dateFormat);
314            }
315    
316            public static Date getDate(
317                    ServiceContext serviceContext, String param, DateFormat dateFormat,
318                    Date defaultValue) {
319    
320                    return get(serviceContext, param, dateFormat, defaultValue);
321            }
322    
323            public static Date[] getDateValues(
324                    HttpServletRequest request, String param, DateFormat dateFormat) {
325    
326                    return getDateValues(request, param, dateFormat, new Date[0]);
327            }
328    
329            public static Date[] getDateValues(
330                    HttpServletRequest request, String param, DateFormat dateFormat,
331                    Date[] defaultValue) {
332    
333                    return GetterUtil.getDateValues(
334                            getParameterValues(request, param), dateFormat, defaultValue);
335            }
336    
337            public static Date[] getDateValues(
338                    PortletRequest portletRequest, String param, DateFormat dateFormat) {
339    
340                    return getDateValues(portletRequest, param, dateFormat, new Date[0]);
341            }
342    
343            public static Date[] getDateValues(
344                    PortletRequest portletRequest, String param, DateFormat dateFormat,
345                    Date[] defaultValue) {
346    
347                    return GetterUtil.getDateValues(
348                            getParameterValues(portletRequest, param), dateFormat,
349                            defaultValue);
350            }
351    
352            public static Date[] getDateValues(
353                    ServiceContext serviceContext, String param, DateFormat dateFormat) {
354    
355                    return getDateValues(serviceContext, param, dateFormat, new Date[0]);
356            }
357    
358            public static Date[] getDateValues(
359                    ServiceContext serviceContext, String param, DateFormat dateFormat,
360                    Date[] defaultValue) {
361    
362                    return GetterUtil.getDateValues(
363                            serviceContext.getAttribute(param), dateFormat, defaultValue);
364            }
365    
366            public static double getDouble(HttpServletRequest request, String param) {
367                    return GetterUtil.getDouble(request.getParameter(param));
368            }
369    
370            public static double getDouble(
371                    HttpServletRequest request, String param, double defaultValue) {
372    
373                    return get(request, param, defaultValue);
374            }
375    
376            public static double getDouble(
377                    PortletRequest portletRequest, String param) {
378    
379                    return GetterUtil.getDouble(portletRequest.getParameter(param));
380            }
381    
382            public static double getDouble(
383                    PortletRequest portletRequest, String param, double defaultValue) {
384    
385                    return get(portletRequest, param, defaultValue);
386            }
387    
388            public static double getDouble(
389                    ServiceContext serviceContext, String param) {
390    
391                    return GetterUtil.getDouble(serviceContext.getAttribute(param));
392            }
393    
394            public static double getDouble(
395                    ServiceContext serviceContext, String param, double defaultValue) {
396    
397                    return get(serviceContext, param, defaultValue);
398            }
399    
400            public static double[] getDoubleValues(
401                    HttpServletRequest request, String param) {
402    
403                    return getDoubleValues(request, param, new double[0]);
404            }
405    
406            public static double[] getDoubleValues(
407                    HttpServletRequest request, String param, double[] defaultValue) {
408    
409                    return GetterUtil.getDoubleValues(
410                            getParameterValues(request, param), defaultValue);
411            }
412    
413            public static double[] getDoubleValues(
414                    PortletRequest portletRequest, String param) {
415    
416                    return getDoubleValues(portletRequest, param, new double[0]);
417            }
418    
419            public static double[] getDoubleValues(
420                    PortletRequest portletRequest, String param, double[] defaultValue) {
421    
422                    return GetterUtil.getDoubleValues(
423                            getParameterValues(portletRequest, param), defaultValue);
424            }
425    
426            public static double[] getDoubleValues(
427                    ServiceContext serviceContext, String param) {
428    
429                    return getDoubleValues(serviceContext, param, new double[0]);
430            }
431    
432            public static double[] getDoubleValues(
433                    ServiceContext serviceContext, String param, double[] defaultValue) {
434    
435                    return GetterUtil.getDoubleValues(
436                            serviceContext.getAttribute(param), defaultValue);
437            }
438    
439            public static float getFloat(HttpServletRequest request, String param) {
440                    return GetterUtil.getFloat(request.getParameter(param));
441            }
442    
443            public static float getFloat(
444                    HttpServletRequest request, String param, float defaultValue) {
445    
446                    return get(request, param, defaultValue);
447            }
448    
449            public static float getFloat(PortletRequest portletRequest, String param) {
450                    return GetterUtil.getFloat(portletRequest.getParameter(param));
451            }
452    
453            public static float getFloat(
454                    PortletRequest portletRequest, String param, float defaultValue) {
455    
456                    return get(portletRequest, param, defaultValue);
457            }
458    
459            public static float getFloat(ServiceContext serviceContext, String param) {
460                    return GetterUtil.getFloat(serviceContext.getAttribute(param));
461            }
462    
463            public static float getFloat(
464                    ServiceContext serviceContext, String param, float defaultValue) {
465    
466                    return get(serviceContext, param, defaultValue);
467            }
468    
469            public static float[] getFloatValues(
470                    HttpServletRequest request, String param) {
471    
472                    return getFloatValues(request, param, new float[0]);
473            }
474    
475            public static float[] getFloatValues(
476                    HttpServletRequest request, String param, float[] defaultValue) {
477    
478                    return GetterUtil.getFloatValues(
479                            getParameterValues(request, param), defaultValue);
480            }
481    
482            public static float[] getFloatValues(
483                    PortletRequest portletRequest, String param) {
484    
485                    return getFloatValues(portletRequest, param, new float[0]);
486            }
487    
488            public static float[] getFloatValues(
489                    PortletRequest portletRequest, String param, float[] defaultValue) {
490    
491                    return GetterUtil.getFloatValues(
492                            getParameterValues(portletRequest, param), defaultValue);
493            }
494    
495            public static float[] getFloatValues(
496                    ServiceContext serviceContext, String param) {
497    
498                    return getFloatValues(serviceContext, param, new float[0]);
499            }
500    
501            public static float[] getFloatValues(
502                    ServiceContext serviceContext, String param, float[] defaultValue) {
503    
504                    return GetterUtil.getFloatValues(
505                            serviceContext.getAttribute(param), defaultValue);
506            }
507    
508            public static int getInteger(HttpServletRequest request, String param) {
509                    return GetterUtil.getInteger(request.getParameter(param));
510            }
511    
512            public static int getInteger(
513                    HttpServletRequest request, String param, int defaultValue) {
514    
515                    return get(request, param, defaultValue);
516            }
517    
518            public static int getInteger(PortletRequest portletRequest, String param) {
519                    return GetterUtil.getInteger(portletRequest.getParameter(param));
520            }
521    
522            public static int getInteger(
523                    PortletRequest portletRequest, String param, int defaultValue) {
524    
525                    return get(portletRequest, param, defaultValue);
526            }
527    
528            public static int getInteger(ServiceContext serviceContext, String param) {
529                    return GetterUtil.getInteger(serviceContext.getAttribute(param));
530            }
531    
532            public static int getInteger(
533                    ServiceContext serviceContext, String param, int defaultValue) {
534    
535                    return get(serviceContext, param, defaultValue);
536            }
537    
538            public static int[] getIntegerValues(
539                    HttpServletRequest request, String param) {
540    
541                    return getIntegerValues(request, param, new int[0]);
542            }
543    
544            public static int[] getIntegerValues(
545                    HttpServletRequest request, String param, int[] defaultValue) {
546    
547                    return GetterUtil.getIntegerValues(
548                            getParameterValues(request, param), defaultValue);
549            }
550    
551            public static int[] getIntegerValues(
552                    PortletRequest portletRequest, String param) {
553    
554                    return getIntegerValues(portletRequest, param, new int[0]);
555            }
556    
557            public static int[] getIntegerValues(
558                    PortletRequest portletRequest, String param, int[] defaultValue) {
559    
560                    return GetterUtil.getIntegerValues(
561                            getParameterValues(portletRequest, param), defaultValue);
562            }
563    
564            public static int[] getIntegerValues(
565                    ServiceContext serviceContext, String param) {
566    
567                    return getIntegerValues(serviceContext, param, new int[0]);
568            }
569    
570            public static int[] getIntegerValues(
571                    ServiceContext serviceContext, String param, int[] defaultValue) {
572    
573                    return GetterUtil.getIntegerValues(
574                            serviceContext.getAttribute(param), defaultValue);
575            }
576    
577            public static long getLong(HttpServletRequest request, String param) {
578                    return GetterUtil.getLong(request.getParameter(param));
579            }
580    
581            public static long getLong(
582                    HttpServletRequest request, String param, long defaultValue) {
583    
584                    return get(request, param, defaultValue);
585            }
586    
587            public static long getLong(PortletRequest portletRequest, String param) {
588                    return GetterUtil.getLong(portletRequest.getParameter(param));
589            }
590    
591            public static long getLong(
592                    PortletRequest portletRequest, String param, long defaultValue) {
593    
594                    return get(portletRequest, param, defaultValue);
595            }
596    
597            public static long getLong(ServiceContext serviceContext, String param) {
598                    return GetterUtil.getLong(serviceContext.getAttribute(param));
599            }
600    
601            public static long getLong(
602                    ServiceContext serviceContext, String param, long defaultValue) {
603    
604                    return get(serviceContext, param, defaultValue);
605            }
606    
607            public static long[] getLongValues(
608                    HttpServletRequest request, String param) {
609    
610                    return getLongValues(request, param, new long[0]);
611            }
612    
613            public static long[] getLongValues(
614                    HttpServletRequest request, String param, long[] defaultValue) {
615    
616                    return GetterUtil.getLongValues(
617                            getParameterValues(request, param), defaultValue);
618            }
619    
620            public static long[] getLongValues(
621                    PortletRequest portletRequest, String param) {
622    
623                    return getLongValues(portletRequest, param, new long[0]);
624            }
625    
626            public static long[] getLongValues(
627                    PortletRequest portletRequest, String param, long[] defaultValue) {
628    
629                    return GetterUtil.getLongValues(
630                            getParameterValues(portletRequest, param), defaultValue);
631            }
632    
633            public static long[] getLongValues(
634                    ServiceContext serviceContext, String param) {
635    
636                    return getLongValues(serviceContext, param, new long[0]);
637            }
638    
639            public static long[] getLongValues(
640                    ServiceContext serviceContext, String param, long[] defaultValue) {
641    
642                    return GetterUtil.getLongValues(
643                            serviceContext.getAttribute(param), defaultValue);
644            }
645    
646            public static String[] getParameterValues(
647                    HttpServletRequest request, String param) {
648    
649                    return getParameterValues(request, param, new String[0]);
650            }
651    
652            public static String[] getParameterValues(
653                    HttpServletRequest request, String param, String[] defaultValue) {
654    
655                    String[] values = request.getParameterValues(param);
656    
657                    if (values == null) {
658                            return defaultValue;
659                    }
660    
661                    if (values.length == 1) {
662                            return StringUtil.split(values[0]);
663                    }
664    
665                    return values;
666            }
667    
668            public static String[] getParameterValues(
669                    PortletRequest portletRequest, String param) {
670    
671                    return getParameterValues(portletRequest, param, new String[0]);
672            }
673    
674            public static String[] getParameterValues(
675                    PortletRequest portletRequest, String param, String[] defaultValue) {
676    
677                    HttpServletRequest request = PortalUtil.getHttpServletRequest(
678                            portletRequest);
679    
680                    return getParameterValues(request, param, defaultValue);
681            }
682    
683            public static short getShort(HttpServletRequest request, String param) {
684                    return GetterUtil.getShort(request.getParameter(param));
685            }
686    
687            public static short getShort(
688                    HttpServletRequest request, String param, short defaultValue) {
689    
690                    return get(request, param, defaultValue);
691            }
692    
693            public static short getShort(PortletRequest portletRequest, String param) {
694                    return GetterUtil.getShort(portletRequest.getParameter(param));
695            }
696    
697            public static short getShort(
698                    PortletRequest portletRequest, String param, short defaultValue) {
699    
700                    return get(portletRequest, param, defaultValue);
701            }
702    
703            public static short getShort(ServiceContext serviceContext, String param) {
704                    return GetterUtil.getShort(serviceContext.getAttribute(param));
705            }
706    
707            public static short getShort(
708                    ServiceContext serviceContext, String param, short defaultValue) {
709    
710                    return get(serviceContext, param, defaultValue);
711            }
712    
713            public static short[] getShortValues(
714                    HttpServletRequest request, String param) {
715    
716                    return getShortValues(request, param, new short[0]);
717            }
718    
719            public static short[] getShortValues(
720                    HttpServletRequest request, String param, short[] defaultValue) {
721    
722                    return GetterUtil.getShortValues(
723                            getParameterValues(request, param), defaultValue);
724            }
725    
726            public static short[] getShortValues(
727                    PortletRequest portletRequest, String param) {
728    
729                    return getShortValues(portletRequest, param, new short[0]);
730            }
731    
732            public static short[] getShortValues(
733                    PortletRequest portletRequest, String param, short[] defaultValue) {
734    
735                    return GetterUtil.getShortValues(
736                            getParameterValues(portletRequest, param), defaultValue);
737            }
738    
739            public static short[] getShortValues(
740                    ServiceContext serviceContext, String param) {
741    
742                    return getShortValues(serviceContext, param, new short[0]);
743            }
744    
745            public static short[] getShortValues(
746                    ServiceContext serviceContext, String param, short[] defaultValue) {
747    
748                    return GetterUtil.getShortValues(
749                            serviceContext.getAttribute(param), defaultValue);
750            }
751    
752            public static String getString(HttpServletRequest request, String param) {
753                    return GetterUtil.getString(request.getParameter(param));
754            }
755    
756            public static String getString(
757                    HttpServletRequest request, String param, String defaultValue) {
758    
759                    return get(request, param, defaultValue);
760            }
761    
762            public static String getString(
763                    PortletRequest portletRequest, String param) {
764    
765                    return GetterUtil.getString(portletRequest.getParameter(param));
766            }
767    
768            public static String getString(
769                    PortletRequest portletRequest, String param, String defaultValue) {
770    
771                    return get(portletRequest, param, defaultValue);
772            }
773    
774            public static String getString(
775                    ServiceContext serviceContext, String param) {
776    
777                    return GetterUtil.getString(serviceContext.getAttribute(param));
778            }
779    
780            public static String getString(
781                    ServiceContext serviceContext, String param, String defaultValue) {
782    
783                    return get(serviceContext, param, defaultValue);
784            }
785    
786            public static void print(HttpServletRequest request) {
787                    Map<String, String[]> parameters = request.getParameterMap();
788    
789                    for (Map.Entry<String, String[]> entry : parameters.entrySet()) {
790                            String name = entry.getKey();
791                            String[] values = entry.getValue();
792    
793                            for (int i = 0; i < values.length; i++) {
794                                    System.out.println(name + "[" + i + "] = " + values[i]);
795                            }
796                    }
797            }
798    
799            public static void print(PortletRequest portletRequest) {
800                    Enumeration<String> enu = portletRequest.getParameterNames();
801    
802                    while (enu.hasMoreElements()) {
803                            String param = enu.nextElement();
804    
805                            String[] values = portletRequest.getParameterValues(param);
806    
807                            for (int i = 0; i < values.length; i++) {
808                                    System.out.println(param + "[" + i + "] = " + values[i]);
809                            }
810                    }
811            }
812    
813            public static void print(ServiceContext serviceContext) {
814                    Map<String, Serializable> attributes = serviceContext.getAttributes();
815    
816                    for (Map.Entry<String, Serializable> entry : attributes.entrySet()) {
817                            System.out.println(
818                                    entry.getKey() + " = " + String.valueOf(entry.getValue()));
819                    }
820            }
821    
822    }