%!PS-Adobe-3.0 %%BoundingBox: (atend) %%Pages: (atend) %%PageOrder: (atend) %%DocumentFonts: (atend) %%DocumentNeedsFonts: (atend) %%DocumentSuppliedFonts: (atend) %%Creator: Frame 5.5 %%DocumentData: Clean7Bit %%EndComments %%BeginProlog % % Frame ps_prolog 5.5, for use with Adobe Unix Frame 5.5 products % % This ps_prolog file is Copyright (c) 1986-1996 Adobe Systems, Incoporated. % All rights reserved. This ps_prolog file may be freely copied and % distributed in conjunction with documents created using FrameMaker, % FrameMaker+SGML, FrameReader, and FrameViewer as long as this % copyright notice is preserved. /FMDocSave save def % % FrameMaker users specify the proper paper size for each print job in the % "Print" dialog's "Printer Paper Size" "Width" and "Height~ fields. If the % printer that the PS file is sent to does not support the requested paper % size, or if there is no paper tray of the proper size currently installed, % then the job will not be printed. The following flag, if set to true, will % cause the job to print on the default paper in such cases. /FMAllowPaperSizeMismatch false def % % Frame products normally print colors as their true color on a color printer % or as shades of gray, based on luminance, on a black-and white printer. The % following flag, if set to true, forces all non-white colors to print as pure % black. This has no effect on bitmap images. /FMPrintAllColorsAsBlack false def % % Frame products can either set their own line screens or use a printer's % default settings. Three flags below control this separately for no % separations, spot separations and process separations. If a flag % is true, then the default printer settings will not be changed. If it is % false, Frame products will use their own settings from a table based on % the printer's resolution. /FMUseDefaultNoSeparationScreen true def /FMUseDefaultSpotSeparationScreen true def /FMUseDefaultProcessSeparationScreen false def % % For any given PostScript printer resolution, Frame products have two sets of % screen angles and frequencies for printing process separations, which are % recomended by Adobe. The following variable chooses the higher frequencies % when set to true or the lower frequencies when set to false. This is only % effective if the appropriate FMUseDefault...SeparationScreen flag is false. /FMUseHighFrequencyScreens true def % % The following is a set of predefined optimal frequencies and angles for various % common dpi settings. This is taken from "Advances in Color Separation Using % PostScript Software Technology," from Adobe Systems (3/13/89 P.N. LPS 0043) % and corrolated with information which is in various PPD (4.0) files. % % The "dpiranges" figure is the minimum dots per inch device resolution which % can support this setting. The "low" and "high" values are controlled by the % setting of the FMUseHighFrequencyScreens flag above. The "TDot" flags control % the use of the "Yellow Triple Dot" feature whereby the frequency id divided by % three, but the dot function is "trippled" giving a block of 3x3 dots per cell. % % PatFreq is a compromise pattern frequency for ps Level 2 printers which is close % to the ideal WYSIWYG pattern frequency of 9 repetitions/inch but does not beat % (too badly) against the screen frequencies of any separations for that DPI. /dpiranges [ 2540 2400 1693 1270 1200 635 600 0 ] def /CMLowFreqs [ 100.402 94.8683 89.2289 100.402 94.8683 66.9349 63.2456 47.4342 ] def /YLowFreqs [ 95.25 90.0 84.65 95.25 90.0 70.5556 66.6667 50.0 ] def /KLowFreqs [ 89.8026 84.8528 79.8088 89.8026 84.8528 74.8355 70.7107 53.033 ] def /CLowAngles [ 71.5651 71.5651 71.5651 71.5651 71.5651 71.5651 71.5651 71.5651 ] def /MLowAngles [ 18.4349 18.4349 18.4349 18.4349 18.4349 18.4349 18.4349 18.4349 ] def /YLowTDot [ true true false true true false false false ] def /CMHighFreqs [ 133.87 126.491 133.843 108.503 102.523 100.402 94.8683 63.2456 ] def /YHighFreqs [ 127.0 120.0 126.975 115.455 109.091 95.25 90.0 60.0 ] def /KHighFreqs [ 119.737 113.137 119.713 128.289 121.218 89.8026 84.8528 63.6395 ] def /CHighAngles [ 71.5651 71.5651 71.5651 70.0169 70.0169 71.5651 71.5651 71.5651 ] def /MHighAngles [ 18.4349 18.4349 18.4349 19.9831 19.9831 18.4349 18.4349 18.4349 ] def /YHighTDot [ false false true false false true true false ] def /PatFreq [ 10.5833 10.0 9.4055 10.5833 10.0 10.5833 10.0 9.375 ] def % % PostScript Level 2 printers contain an "Accurate Screens" feature which can % improve process separation rendering at the expense of compute time. This % flag is ignored by PostScript Level 1 printers. /FMUseAcccurateScreens true def % % The following PostScript procedure defines the spot function that Frame % products will use for process separations. You may un-comment-out one of % the alternative functions below, or use your own. % % Dot function /FMSpotFunction {abs exch abs 2 copy add 1 gt {1 sub dup mul exch 1 sub dup mul add 1 sub } {dup mul exch dup mul add 1 exch sub }ifelse } def % % Line function % /FMSpotFunction { pop } def % % Elipse function % /FMSpotFunction { dup 5 mul 8 div mul exch dup mul exch add % sqrt 1 exch sub } def % % /FMversion (5.5) def /fMLevel1 /languagelevel where {pop languagelevel} {1} ifelse 2 lt def /FMPColor fMLevel1 { false /colorimage where {pop pop true} if } { true } ifelse def /FrameDict 400 dict def systemdict /errordict known not {/errordict 10 dict def errordict /rangecheck {stop} put} if % The readline in PS 23.0 doesn't recognize cr's as nl's on AppleTalk FrameDict /tmprangecheck errordict /rangecheck get put errordict /rangecheck {FrameDict /bug true put} put FrameDict /bug false put mark % Some PS machines read past the CR, so keep the following 3 lines together! currentfile 5 string readline 00 0000000000 cleartomark errordict /rangecheck FrameDict /tmprangecheck get put FrameDict /bug get { /readline { /gstring exch def /gfile exch def /gindex 0 def { gfile read pop dup 10 eq {exit} if dup 13 eq {exit} if gstring exch gindex exch put /gindex gindex 1 add def } loop pop gstring 0 gindex getinterval true } bind def } if /FMshowpage /showpage load def /FMquit /quit load def /FMFAILURE { 2 copy exch = = flush FMshowpage /Helvetica findfont 12 scalefont setfont 72 200 moveto show 72 220 moveto show FMshowpage FMquit } def /FMVERSION { FMversion ne { (Adobe Frame product version does not match ps_prolog! Check installation;) (also check ~/fminit and ./fminit for old versions) FMFAILURE } if } def /fmConcatProcs { /proc2 exch cvlit def/proc1 exch cvlit def/newproc proc1 length proc2 length add array def newproc 0 proc1 putinterval newproc proc1 length proc2 putinterval newproc cvx }def FrameDict begin [ /ALDsave /FMdicttop /FMoptop /FMpointsize /FMsetsize /FMsaveobject /b /bitmapsave /blut /bpside /bs /bstring /bwidth /c /cf /cs /cynu /depth /edown /fh /fillvals /fw /fx /fy /g /gfile /gindex /grnt /gryt /gstring /height /hh /i /im /indx /is /k /kk /landscape /lb /len /llx /lly /m /magu /manualfeed /n /offbits /onbits /organgle /orgbangle /orgbfreq /orgbproc /orgbxfer /orgfreq /orggangle /orggfreq /orggproc /orggxfer /orghalftone /orgmatrix /orgproc /orgrangle /orgrfreq /orgrproc /orgrxfer /orgxfer /pagesave /paperheight /papersizedict /paperwidth /pos /pwid /r /rad /redt /sl /str /tran /u /urx /ury /val /width /width /ws /ww /x /x1 /x2 /xindex /xpoint /xscale /xx /y /y1 /y2 /yelu /yindex /ypoint /yscale /yy /tintGray ] { 0 def } forall /FmBD {bind def} bind def systemdict /pdfmark known systemdict /currentdistillerparams known and { /fMAcrobat true def /FmPD /pdfmark load def /FmPT /show load def currentdistillerparams /CoreDistVersion get 2000 ge { /FmPD2 /pdfmark load def /FmPA { mark exch /Dest exch 5 3 roll /View [ /XYZ null 6 -2 roll FmDC exch pop null] /DEST FmPD }FmBD } { /FmPD2 /cleartomark load def /FmPA {pop pop pop}FmBD } ifelse } { /fMAcrobat false def /FmPD /cleartomark load def /FmPD2 /cleartomark load def /FmPT /pop load def /FmPA {pop pop pop}FmBD } ifelse /FmDC { transform fMDefaultMatrix defaultmatrix itransform cvi exch cvi exch }FmBD /FmBx { dup 3 index lt {3 1 roll exch} if 1 index 4 index lt {4 -1 roll 3 1 roll exch 4 1 roll} if }FmBD /FMnone 0 def /FMcyan 1 def /FMmagenta 2 def /FMyellow 3 def /FMblack 4 def /FMcustom 5 def /fMNegative false def /FrameSepIs FMnone def /FrameSepBlack 0 def /FrameSepYellow 0 def /FrameSepMagenta 0 def /FrameSepCyan 0 def /FrameSepRed 1 def /FrameSepGreen 1 def /FrameSepBlue 1 def /FrameCurGray 1 def /FrameCurPat null def /FrameCurColors [ 0 0 0 1 0 0 0 1] def /FrameColorEpsilon .001 def /eqepsilon { sub dup 0 lt {neg} if FrameColorEpsilon le } bind def /FrameCmpColorsCMYK { 2 copy 0 get exch 0 get eqepsilon { 2 copy 1 get exch 1 get eqepsilon { 2 copy 2 get exch 2 get eqepsilon { 3 get exch 3 get eqepsilon } {pop pop false} ifelse }{pop pop false} ifelse } {pop pop false} ifelse } bind def /FrameCmpColorsRGB { 2 copy 4 get exch 0 get eqepsilon { 2 copy 5 get exch 1 get eqepsilon { 6 get exch 2 get eqepsilon }{pop pop false} ifelse } {pop pop false} ifelse } bind def /RGBtoCMYK { 1 exch sub 3 1 roll 1 exch sub 3 1 roll 1 exch sub 3 1 roll 3 copy 2 copy le { pop } { exch pop } ifelse 2 copy le { pop } { exch pop } ifelse dup dup dup 6 1 roll 4 1 roll 7 1 roll sub 6 1 roll sub 5 1 roll sub 4 1 roll } bind def /CMYKtoRGB { dup dup 4 -1 roll add 5 1 roll 3 -1 roll add 4 1 roll add 1 exch sub dup 0 lt {pop 0} if 3 1 roll 1 exch sub dup 0 lt {pop 0} if exch 1 exch sub dup 0 lt {pop 0} if exch } bind def /FrameSepInit { 1.0 RealSetgray } bind def /FrameSetSepColor { /FrameSepBlue exch def /FrameSepGreen exch def /FrameSepRed exch def /FrameSepBlack exch def /FrameSepYellow exch def /FrameSepMagenta exch def /FrameSepCyan exch def /FrameSepIs FMcustom def setCurrentScreen } bind def /FrameSetCyan { /FrameSepBlue 1.0 def /FrameSepGreen 1.0 def /FrameSepRed 0.0 def /FrameSepBlack 0.0 def /FrameSepYellow 0.0 def /FrameSepMagenta 0.0 def /FrameSepCyan 1.0 def /FrameSepIs FMcyan def setCurrentScreen } bind def /FrameSetMagenta { /FrameSepBlue 1.0 def /FrameSepGreen 0.0 def /FrameSepRed 1.0 def /FrameSepBlack 0.0 def /FrameSepYellow 0.0 def /FrameSepMagenta 1.0 def /FrameSepCyan 0.0 def /FrameSepIs FMmagenta def setCurrentScreen } bind def /FrameSetYellow { /FrameSepBlue 0.0 def /FrameSepGreen 1.0 def /FrameSepRed 1.0 def /FrameSepBlack 0.0 def /FrameSepYellow 1.0 def /FrameSepMagenta 0.0 def /FrameSepCyan 0.0 def /FrameSepIs FMyellow def setCurrentScreen } bind def /FrameSetBlack { /FrameSepBlue 0.0 def /FrameSepGreen 0.0 def /FrameSepRed 0.0 def /FrameSepBlack 1.0 def /FrameSepYellow 0.0 def /FrameSepMagenta 0.0 def /FrameSepCyan 0.0 def /FrameSepIs FMblack def setCurrentScreen } bind def /FrameNoSep { /FrameSepIs FMnone def setCurrentScreen } bind def /FrameSetSepColors { FrameDict begin [ exch 1 add 1 roll ] /FrameSepColors exch def end } bind def /FrameColorInSepListCMYK { FrameSepColors { exch dup 3 -1 roll FrameCmpColorsCMYK { pop true exit } if } forall dup true ne {pop false} if } bind def /FrameColorInSepListRGB { FrameSepColors { exch dup 3 -1 roll FrameCmpColorsRGB { pop true exit } if } forall dup true ne {pop false} if } bind def /RealSetgray /setgray load def /RealSetrgbcolor /setrgbcolor load def /RealSethsbcolor /sethsbcolor load def end /setgray { FrameDict begin FrameSepIs FMnone eq { RealSetgray } { FrameSepIs FMblack eq { RealSetgray } { FrameSepIs FMcustom eq FrameSepRed 0 eq and FrameSepGreen 0 eq and FrameSepBlue 0 eq and { RealSetgray } { 1 RealSetgray pop } ifelse } ifelse } ifelse end } bind def /setrgbcolor { FrameDict begin FrameSepIs FMnone eq { RealSetrgbcolor } { 3 copy [ 4 1 roll ] FrameColorInSepListRGB { FrameSepBlue eq exch FrameSepGreen eq and exch FrameSepRed eq and { 0 } { 1 } ifelse } { FMPColor { RealSetrgbcolor currentcmykcolor } { RGBtoCMYK } ifelse FrameSepIs FMblack eq {1.0 exch sub 4 1 roll pop pop pop} { FrameSepIs FMyellow eq {pop 1.0 exch sub 3 1 roll pop pop} { FrameSepIs FMmagenta eq {pop pop 1.0 exch sub exch pop } { FrameSepIs FMcyan eq {pop pop pop 1.0 exch sub } {pop pop pop pop 1} ifelse } ifelse } ifelse } ifelse } ifelse RealSetgray } ifelse end } bind def /sethsbcolor { FrameDict begin FrameSepIs FMnone eq { RealSethsbcolor } { RealSethsbcolor currentrgbcolor setrgbcolor } ifelse end } bind def FrameDict begin /setcmykcolor where { pop /RealSetcmykcolor /setcmykcolor load def } { /RealSetcmykcolor { 4 1 roll 3 { 3 index add 0 max 1 min 1 exch sub 3 1 roll} repeat RealSetrgbcolor pop } bind def } ifelse userdict /setcmykcolor { FrameDict begin FrameSepIs FMnone eq { RealSetcmykcolor } { 4 copy [ 5 1 roll ] FrameColorInSepListCMYK { FrameSepBlack eq exch FrameSepYellow eq and exch FrameSepMagenta eq and exch FrameSepCyan eq and { 0 } { 1 } ifelse } { FrameSepIs FMblack eq {1.0 exch sub 4 1 roll pop pop pop} { FrameSepIs FMyellow eq {pop 1.0 exch sub 3 1 roll pop pop} { FrameSepIs FMmagenta eq {pop pop 1.0 exch sub exch pop } { FrameSepIs FMcyan eq {pop pop pop 1.0 exch sub } {pop pop pop pop 1} ifelse } ifelse } ifelse } ifelse } ifelse RealSetgray } ifelse end } bind put fMLevel1 { /patScreenDict 7 dict dup begin <0f1e3c78f0e1c387> [ 45 { pop } {exch pop} .5 2 sqrt] FmBD <0f87c3e1f0783c1e> [ 135 { pop } {exch pop} .5 2 sqrt] FmBD [ 0 { pop } dup .5 2 ] FmBD [ 90 { pop } dup .5 2 ] FmBD <8142241818244281> [ 45 { 2 copy lt {exch} if pop} dup .75 2 sqrt] FmBD <03060c183060c081> [ 45 { pop } {exch pop} .875 2 sqrt] FmBD <8040201008040201> [ 135 { pop } {exch pop} .875 2 sqrt] FmBD end def } { /patProcDict 5 dict dup begin <0f1e3c78f0e1c387> { 3 setlinewidth -1 -1 moveto 9 9 lineto stroke 4 -4 moveto 12 4 lineto stroke -4 4 moveto 4 12 lineto stroke} bind def <0f87c3e1f0783c1e> { 3 setlinewidth -1 9 moveto 9 -1 lineto stroke -4 4 moveto 4 -4 lineto stroke 4 12 moveto 12 4 lineto stroke} bind def <8142241818244281> { 1 setlinewidth -1 9 moveto 9 -1 lineto stroke -1 -1 moveto 9 9 lineto stroke } bind def <03060c183060c081> { 1 setlinewidth -1 -1 moveto 9 9 lineto stroke 4 -4 moveto 12 4 lineto stroke -4 4 moveto 4 12 lineto stroke} bind def <8040201008040201> { 1 setlinewidth -1 9 moveto 9 -1 lineto stroke -4 4 moveto 4 -4 lineto stroke 4 12 moveto 12 4 lineto stroke} bind def end def /patDict 15 dict dup begin /PatternType 1 def /PaintType 2 def /TilingType 3 def /BBox [ 0 0 8 8 ] def /XStep 8 def /YStep 8 def /PaintProc { begin patProcDict bstring known { patProcDict bstring get exec } { 8 8 true [1 0 0 -1 0 8] bstring imagemask } ifelse end } bind def end def } ifelse /tintCMYK { 1 tintGray sub FrameCurColors 0 4 getinterval aload pop 4 index mul 5 1 roll 3 index mul 5 1 roll 2 index mul 5 1 roll mul 4 1 roll }bind def /tintRGB { 1 tintGray sub FrameCurColors 4 3 getinterval aload pop 1 exch sub 3 index mul 1 exch sub 4 1 roll 1 exch sub 2 index mul 1 exch sub 4 1 roll 1 exch sub mul 1 exch sub 3 1 roll }bind def /combineColor { /tintGray 1 1 FrameCurGray sub FrameCurColors 7 get mul sub def FrameSepIs FMnone eq { graymode fMLevel1 or not { [/Pattern [/DeviceCMYK]] setcolorspace tintCMYK FrameCurPat setcolor } { FrameCurColors 3 get 1.0 ge { tintGray RealSetgray } { fMAcrobat not FMPColor graymode and and { tintCMYK RealSetcmykcolor } { tintRGB RealSetrgbcolor } ifelse } ifelse } ifelse } { FrameCurColors 0 4 getinterval aload FrameColorInSepListCMYK { FrameSepBlack eq exch FrameSepYellow eq and exch FrameSepMagenta eq and exch FrameSepCyan eq and FrameSepIs FMcustom eq and { tintGray } { 1 } ifelse } { FrameSepIs FMblack eq {tintGray 1.0 exch sub mul 1.0 exch sub 4 1 roll pop pop pop} { FrameSepIs FMyellow eq {pop tintGray 1.0 exch sub mul 1.0 exch sub 3 1 roll pop pop} { FrameSepIs FMmagenta eq {pop pop tintGray 1.0 exch sub mul 1.0 exch sub exch pop } { FrameSepIs FMcyan eq {pop pop pop tintGray 1.0 exch sub mul 1.0 exch sub } {pop pop pop pop 1} ifelse } ifelse } ifelse } ifelse } ifelse graymode fMLevel1 or not { [/Pattern [/DeviceGray]] setcolorspace FrameCurPat setcolor } { graymode not fMLevel1 and { dup 1 lt {pop FrameCurGray} if } if RealSetgray } ifelse } ifelse } bind def /savematrix { orgmatrix currentmatrix pop } bind def /restorematrix { orgmatrix setmatrix } bind def /fMDefaultMatrix matrix def /fMatrix2 matrix def /dpi 72 0 fMDefaultMatrix defaultmatrix dtransform dup mul exch dup mul add sqrt def /freq dpi dup 72 div round dup 0 eq {pop 1} if 8 mul div def /sangle 1 0 fMDefaultMatrix defaultmatrix dtransform exch atan def sangle fMatrix2 rotate fMDefaultMatrix defaultmatrix fMatrix2 concatmatrix dup 0 get /sflipx exch def 3 get /sflipy exch def /screenIndex { 0 1 dpiranges length 1 sub { dup dpiranges exch get 1 sub dpi le {exit} {pop} ifelse } for } bind def /getCyanScreen { FMUseHighFrequencyScreens { CHighAngles CMHighFreqs} {CLowAngles CMLowFreqs} ifelse screenIndex dup 3 1 roll get 3 1 roll get /FMSpotFunction load } bind def /getMagentaScreen { FMUseHighFrequencyScreens { MHighAngles CMHighFreqs } {MLowAngles CMLowFreqs} ifelse screenIndex dup 3 1 roll get 3 1 roll get /FMSpotFunction load } bind def /getYellowScreen { FMUseHighFrequencyScreens { YHighTDot YHighFreqs} { YLowTDot YLowFreqs } ifelse screenIndex dup 3 1 roll get 3 1 roll get { 3 div {2 { 1 add 2 div 3 mul dup floor sub 2 mul 1 sub exch} repeat FMSpotFunction } } {/FMSpotFunction load } ifelse 0.0 exch } bind def /getBlackScreen { FMUseHighFrequencyScreens { KHighFreqs } { KLowFreqs } ifelse screenIndex get 45.0 /FMSpotFunction load } bind def /getSpotScreen { getBlackScreen } bind def /getCompositeScreen { getBlackScreen } bind def /FMSetScreen fMLevel1 { /setscreen load }{ { 8 dict begin /HalftoneType 1 def /SpotFunction exch def /Angle exch def /Frequency exch def /AccurateScreens FMUseAcccurateScreens def currentdict end sethalftone } bind } ifelse def /setDefaultScreen { fMLevel1 { FMPColor { orgrxfer cvx orggxfer cvx orgbxfer cvx orgxfer cvx setcolortransfer } { orgxfer cvx settransfer } ifelse orgfreq organgle orgproc cvx setscreen } { orghalftone sethalftone }ifelse } bind def /setCurrentScreen { FrameSepIs FMnone eq { FMUseDefaultNoSeparationScreen { setDefaultScreen } { getCompositeScreen FMSetScreen } ifelse } { FrameSepIs FMcustom eq { FMUseDefaultSpotSeparationScreen { setDefaultScreen } { getSpotScreen FMSetScreen } ifelse } { FMUseDefaultProcessSeparationScreen { setDefaultScreen } { FrameSepIs FMcyan eq { getCyanScreen FMSetScreen } { FrameSepIs FMmagenta eq { getMagentaScreen FMSetScreen } { FrameSepIs FMyellow eq { getYellowScreen FMSetScreen } { getBlackScreen FMSetScreen } ifelse } ifelse } ifelse } ifelse } ifelse } ifelse } bind def end /FMDOCUMENT { array /FMfonts exch def dup 1 gt {/#copies exch def} {pop} ifelse FrameDict begin 0 ne /manualfeed exch def /paperheight exch def /paperwidth exch def 0 ne /fMNegative exch def 0 ne /edown exch def /yscale exch def /xscale exch def fMLevel1 { manualfeed {setmanualfeed} if /FMdicttop countdictstack 1 add def /FMoptop count def setpapername manualfeed {true} {papersize} ifelse {manualpapersize} {false} ifelse {desperatepapersize} {false} ifelse {papersizefailure} if count -1 FMoptop {pop pop} for countdictstack -1 FMdicttop {pop end} for } {2 dict dup /PageSize [paperwidth paperheight] put manualfeed {dup /ManualFeed manualfeed put} if {setpagedevice} stopped {papersizefailure} if } ifelse fMLevel1 not { /orghalftone currenthalftone def }if FMPColor { currentcolorscreen cvlit /orgproc exch def /organgle exch def /orgfreq exch def cvlit /orgbproc exch def /orgbangle exch def /orgbfreq exch def cvlit /orggproc exch def /orggangle exch def /orggfreq exch def cvlit /orgrproc exch def /orgrangle exch def /orgrfreq exch def currentcolortransfer fMNegative { 1 1 4 { pop { 1 exch sub } fmConcatProcs 4 1 roll } for 4 copy setcolortransfer } if cvlit /orgxfer exch def cvlit /orgbxfer exch def cvlit /orggxfer exch def cvlit /orgrxfer exch def } { currentscreen cvlit /orgproc exch def /organgle exch def /orgfreq exch def currenttransfer fMNegative { { 1 exch sub } fmConcatProcs dup settransfer } if cvlit /orgxfer exch def } ifelse end } def /FMENDDOCUMENT { FMDocSave restore } def /FMBEGINPAGE { FrameDict begin /pagesave save def 3.86 setmiterlimit 0 0 moveto paperwidth 0 lineto paperwidth paperheight lineto 0 paperheight lineto 0 0 lineto 1 setgray fill /landscape exch 0 ne def landscape { 90 rotate 0 exch dup /pwid exch def neg translate pop }{ pop /pwid exch def } ifelse edown { [-1 0 0 1 pwid 0] concat } if xscale yscale scale /orgmatrix matrix def gsave } def /FMENDPAGE { grestore pagesave restore end showpage } def /FMFONTDEFINE { FrameDict begin findfont ReEncode 1 index exch definefont FMfonts 3 1 roll put end } def /FMFILLS { FrameDict begin dup array /fillvals exch def dict /patCache exch def end } def /FMFILL { FrameDict begin fillvals 3 1 roll put end } def /FMNORMALIZEGRAPHICS { newpath 1 setlinewidth 0 setlinecap 0 0 0 sethsbcolor 0 setgray } bind def /FMBEGINEPSF { end /FMEPSF save def /showpage {} def FMNORMALIZEGRAPHICS [/fy /fx /fh /fw /ury /urx /lly /llx] {exch def} forall fx fw 2 div add fy fh 2 div add translate rotate fw 2 div neg fh 2 div neg translate fw urx llx sub div fh ury lly sub div scale llx neg lly neg translate /FMdicttop countdictstack 1 add def /FMoptop count def } bind def /FMENDEPSF { count -1 FMoptop {pop pop} for countdictstack -1 FMdicttop {pop end} for FMEPSF restore FrameDict begin } bind def FrameDict begin /setmanualfeed { %%BeginFeature: *ManualFeed True statusdict /manualfeed true put %%EndFeature } bind def /max {2 copy lt {exch} if pop} bind def /min {2 copy gt {exch} if pop} bind def /inch {72 mul} def /pagedimen { paperheight sub abs 16 lt exch paperwidth sub abs 16 lt and {/papername exch def} {pop} ifelse } bind def /setpapername { /papersizedict 14 dict def papersizedict begin /papername /unknown def /Letter 8.5 inch 11.0 inch pagedimen /LetterSmall 7.68 inch 10.16 inch pagedimen /Tabloid 11.0 inch 17.0 inch pagedimen /Ledger 17.0 inch 11.0 inch pagedimen /Legal 8.5 inch 14.0 inch pagedimen /Statement 5.5 inch 8.5 inch pagedimen /Executive 7.5 inch 10.0 inch pagedimen /A3 11.69 inch 16.5 inch pagedimen /A4 8.26 inch 11.69 inch pagedimen /A4Small 7.47 inch 10.85 inch pagedimen /B4 10.125 inch 14.33 inch pagedimen /B5 7.16 inch 10.125 inch pagedimen end } bind def /papersize { papersizedict begin /Letter {lettertray letter} def /LetterSmall {lettertray lettersmall} def /Tabloid {11x17tray 11x17} def /Ledger {ledgertray ledger} def /Legal {legaltray legal} def /Statement {statementtray statement} def /Executive {executivetray executive} def /A3 {a3tray a3} def /A4 {a4tray a4} def /A4Small {a4tray a4small} def /B4 {b4tray b4} def /B5 {b5tray b5} def /unknown {unknown} def papersizedict dup papername known {papername} {/unknown} ifelse get end statusdict begin stopped end } bind def /manualpapersize { papersizedict begin /Letter {letter} def /LetterSmall {lettersmall} def /Tabloid {11x17} def /Ledger {ledger} def /Legal {legal} def /Statement {statement} def /Executive {executive} def /A3 {a3} def /A4 {a4} def /A4Small {a4small} def /B4 {b4} def /B5 {b5} def /unknown {unknown} def papersizedict dup papername known {papername} {/unknown} ifelse get end stopped } bind def /desperatepapersize { mark statusdict begin /setpageparams where { pop paperwidth paperheight 0 1 {setpageparams} stopped } { true } ifelse { /setpagedevice where { pop 1 dict dup begin /PageSize [ paperwidth paperheight ] def end {setpagedevice} stopped } { true } ifelse } { false } ifelse end {cleartomark true}{cleartomark false}ifelse } bind def /papersizefailure { FMAllowPaperSizeMismatch not { (The requested paper size is not available in any currently-installed tray) (Edit the PS file to "FMAllowPaperSizeMismatch true" to use default tray) FMFAILURE } if } def /DiacriticEncoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /grave /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /Adieresis /Aring /Ccedilla /Eacute /Ntilde /Odieresis /Udieresis /aacute /agrave /acircumflex /adieresis /atilde /aring /ccedilla /eacute /egrave /ecircumflex /edieresis /iacute /igrave /icircumflex /idieresis /ntilde /oacute /ograve /ocircumflex /odieresis /otilde /uacute /ugrave /ucircumflex /udieresis /dagger /.notdef /cent /sterling /section /bullet /paragraph /germandbls /registered /copyright /trademark /acute /dieresis /.notdef /AE /Oslash /.notdef /.notdef /.notdef /.notdef /yen /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /ordfeminine /ordmasculine /.notdef /ae /oslash /questiondown /exclamdown /logicalnot /.notdef /florin /.notdef /.notdef /guillemotleft /guillemotright /ellipsis /.notdef /Agrave /Atilde /Otilde /OE /oe /endash /emdash /quotedblleft /quotedblright /quoteleft /quoteright /.notdef /.notdef /ydieresis /Ydieresis /fraction /currency /guilsinglleft /guilsinglright /fi /fl /daggerdbl /periodcentered /quotesinglbase /quotedblbase /perthousand /Acircumflex /Ecircumflex /Aacute /Edieresis /Egrave /Iacute /Icircumflex /Idieresis /Igrave /Oacute /Ocircumflex /.notdef /Ograve /Uacute /Ucircumflex /Ugrave /dotlessi /circumflex /tilde /macron /breve /dotaccent /ring /cedilla /hungarumlaut /ogonek /caron ] def /ReEncode { dup length dict begin { 1 index /FID ne {def} {pop pop} ifelse } forall 0 eq {/Encoding DiacriticEncoding def} if currentdict end } bind def FMPColor { /BEGINBITMAPCOLOR { BITMAPCOLOR} def /BEGINBITMAPCOLORc { BITMAPCOLORc} def /BEGINBITMAPTRUECOLOR { BITMAPTRUECOLOR } def /BEGINBITMAPTRUECOLORc { BITMAPTRUECOLORc } def /BEGINBITMAPCMYK { BITMAPCMYK } def /BEGINBITMAPCMYKc { BITMAPCMYKc } def } { /BEGINBITMAPCOLOR { BITMAPGRAY} def /BEGINBITMAPCOLORc { BITMAPGRAYc} def /BEGINBITMAPTRUECOLOR { BITMAPTRUEGRAY } def /BEGINBITMAPTRUECOLORc { BITMAPTRUEGRAYc } def /BEGINBITMAPCMYK { BITMAPCMYKGRAY } def /BEGINBITMAPCMYKc { BITMAPCMYKGRAYc } def } ifelse /K { FMPrintAllColorsAsBlack { 8 1 roll dup 1 eq 2 index 1 eq and 3 index 1 eq and not {7 {pop} repeat 0 0 0 1 0 0 0} if 8 -1 roll } if FrameCurColors astore pop combineColor } bind def /graymode true def fMLevel1 { /fmGetFlip { fMatrix2 exch get mul 0 lt { -1 } { 1 } ifelse } FmBD } if /setPatternMode { fMLevel1 { 2 index patScreenDict exch known { pop pop patScreenDict exch get aload pop freq mul 5 2 roll fMatrix2 currentmatrix 1 get 0 ne { 3 -1 roll 90 add 3 1 roll sflipx 1 fmGetFlip sflipy 2 fmGetFlip neg mul } { sflipx 0 fmGetFlip sflipy 3 fmGetFlip mul } ifelse 0 lt {exch pop} {pop} ifelse fMNegative { {neg} fmConcatProcs } if bind systemdict /setscreen get exec /FrameCurGray exch def } { /bwidth exch def /bpside exch def /bstring exch def /onbits 0 def /offbits 0 def freq sangle landscape {90 add} if {/ypoint exch def /xpoint exch def /xindex xpoint 1 add 2 div bpside mul cvi def /yindex ypoint 1 add 2 div bpside mul cvi def bstring yindex bwidth mul xindex 8 idiv add get 1 7 xindex 8 mod sub bitshift and 0 ne fMNegative {not} if {/onbits onbits 1 add def 1} {/offbits offbits 1 add def 0} ifelse } setscreen offbits offbits onbits add dup 0 ne {div} {pop pop .5} ifelse fMNegative {1.0 exch sub} if /FrameCurGray exch def } ifelse } { pop pop dup patCache exch known { patCache exch get } { dup patDict /bstring 3 -1 roll put patDict 9 PatFreq screenIndex get div dup matrix scale makepattern dup patCache 4 -1 roll 3 -1 roll put } ifelse /FrameCurGray 0 def /FrameCurPat exch def } ifelse /graymode false def combineColor } bind def /setGrayScaleMode { graymode not { /graymode true def fMLevel1 { setCurrentScreen } if } if /FrameCurGray exch def combineColor } bind def /normalize { transform round exch round exch itransform } bind def /dnormalize { dtransform round exch round exch idtransform } bind def /lnormalize { 0 dtransform exch cvi 2 idiv 2 mul 1 add exch idtransform pop } bind def /H { lnormalize setlinewidth } bind def /Z { setlinecap } bind def /PFill { graymode fMLevel1 or not { gsave 1 setgray eofill grestore } if } bind def /PStroke { graymode fMLevel1 or not { gsave 1 setgray stroke grestore } if stroke } bind def /X { fillvals exch get dup type /stringtype eq {8 1 setPatternMode} {setGrayScaleMode} ifelse } bind def /V { PFill gsave eofill grestore } bind def /Vclip { clip } bind def /Vstrk { currentlinewidth exch setlinewidth PStroke setlinewidth } bind def /N { PStroke } bind def /Nclip { strokepath clip newpath } bind def /Nstrk { currentlinewidth exch setlinewidth PStroke setlinewidth } bind def /M {newpath moveto} bind def /E {lineto} bind def /D {curveto} bind def /O {closepath} bind def /L { /n exch def newpath normalize moveto 2 1 n {pop normalize lineto} for } bind def /Y { L closepath } bind def /R { /y2 exch def /x2 exch def /y1 exch def /x1 exch def x1 y1 x2 y1 x2 y2 x1 y2 4 Y } bind def /rarc {rad arcto } bind def /RR { /rad exch def normalize /y2 exch def /x2 exch def normalize /y1 exch def /x1 exch def mark newpath { x1 y1 rad add moveto x1 y2 x2 y2 rarc x2 y2 x2 y1 rarc x2 y1 x1 y1 rarc x1 y1 x1 y2 rarc closepath } stopped {x1 y1 x2 y2 R} if cleartomark } bind def /RRR { /rad exch def normalize /y4 exch def /x4 exch def normalize /y3 exch def /x3 exch def normalize /y2 exch def /x2 exch def normalize /y1 exch def /x1 exch def newpath normalize moveto mark { x2 y2 x3 y3 rarc x3 y3 x4 y4 rarc x4 y4 x1 y1 rarc x1 y1 x2 y2 rarc closepath } stopped {x1 y1 x2 y2 x3 y3 x4 y4 newpath moveto lineto lineto lineto closepath} if cleartomark } bind def /C { grestore gsave R clip setCurrentScreen } bind def /CP { grestore gsave Y clip setCurrentScreen } bind def /F { FMfonts exch get [FMsetsize 0 0 FMpointsize 0 0] makefont setfont } bind def /Q { /FMpointsize exch def /FMsetsize FMpointsize def F } bind def /QQ { /FMsetsize exch def /FMpointsize exch def F } bind def /T { moveto show } bind def /RF { rotate 0 ne {-1 1 scale} if } bind def /TF { gsave moveto RF show grestore } bind def /P { moveto 0 32 3 2 roll widthshow } bind def /PF { gsave moveto RF 0 32 3 2 roll widthshow grestore } bind def /S { moveto 0 exch ashow } bind def /SF { gsave moveto RF 0 exch ashow grestore } bind def /B { moveto 0 32 4 2 roll 0 exch awidthshow } bind def /BF { gsave moveto RF 0 32 4 2 roll 0 exch awidthshow grestore } bind def /G { gsave newpath normalize translate 0.0 0.0 moveto dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath PFill fill grestore } bind def /Gstrk { savematrix newpath 2 index 2 div add exch 3 index 2 div sub exch normalize 2 index 2 div sub exch 3 index 2 div add exch translate scale 0.0 0.0 1.0 5 3 roll arc restorematrix currentlinewidth exch setlinewidth PStroke setlinewidth } bind def /Gclip { newpath savematrix normalize translate 0.0 0.0 moveto dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath clip newpath restorematrix } bind def /GG { gsave newpath normalize translate 0.0 0.0 moveto rotate dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath PFill fill grestore } bind def /GGclip { savematrix newpath normalize translate 0.0 0.0 moveto rotate dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath clip newpath restorematrix } bind def /GGstrk { savematrix newpath normalize translate 0.0 0.0 moveto rotate dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath restorematrix currentlinewidth exch setlinewidth PStroke setlinewidth } bind def /A { gsave savematrix newpath 2 index 2 div add exch 3 index 2 div sub exch normalize 2 index 2 div sub exch 3 index 2 div add exch translate scale 2 copy 0.0 0.0 1.0 5 3 roll arc round cvi 360 mod exch round cvi 360 mod eq {closepath} if restorematrix PStroke grestore } bind def /Aclip { newpath savematrix normalize translate 0.0 0.0 moveto dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath strokepath clip newpath restorematrix } bind def /Astrk { Gstrk } bind def /AA { gsave savematrix newpath 3 index 2 div add exch 4 index 2 div sub exch normalize 3 index 2 div sub exch 4 index 2 div add exch translate rotate scale 0.0 0.0 1.0 5 3 roll arc restorematrix PStroke grestore } bind def /AAclip { savematrix newpath normalize translate 0.0 0.0 moveto rotate dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath strokepath clip newpath restorematrix } bind def /AAstrk { GGstrk } bind def /BEGINPRINTCODE { /FMdicttop countdictstack 1 add def /FMoptop count 7 sub def /FMsaveobject save def userdict begin /showpage {} def FMNORMALIZEGRAPHICS 3 index neg 3 index neg translate } bind def /ENDPRINTCODE { count -1 FMoptop {pop pop} for countdictstack -1 FMdicttop {pop end} for FMsaveobject restore } bind def /gn { 0 { 46 mul cf read pop 32 sub dup 46 lt {exit} if 46 sub add } loop add } bind def /cfs { /str sl string def 0 1 sl 1 sub {str exch val put} for str def } bind def /ic [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223 0 {0 hx} {1 hx} {2 hx} {3 hx} {4 hx} {5 hx} {6 hx} {7 hx} {8 hx} {9 hx} {10 hx} {11 hx} {12 hx} {13 hx} {14 hx} {15 hx} {16 hx} {17 hx} {18 hx} {19 hx} {gn hx} {0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10} {11} {12} {13} {14} {15} {16} {17} {18} {19} {gn} {0 wh} {1 wh} {2 wh} {3 wh} {4 wh} {5 wh} {6 wh} {7 wh} {8 wh} {9 wh} {10 wh} {11 wh} {12 wh} {13 wh} {14 wh} {gn wh} {0 bl} {1 bl} {2 bl} {3 bl} {4 bl} {5 bl} {6 bl} {7 bl} {8 bl} {9 bl} {10 bl} {11 bl} {12 bl} {13 bl} {14 bl} {gn bl} {0 fl} {1 fl} {2 fl} {3 fl} {4 fl} {5 fl} {6 fl} {7 fl} {8 fl} {9 fl} {10 fl} {11 fl} {12 fl} {13 fl} {14 fl} {gn fl} ] def /ms { /sl exch def /val 255 def /ws cfs /im cfs /val 0 def /bs cfs /cs cfs } bind def 400 ms /ip { is 0 cf cs readline pop { ic exch get exec add } forall pop } bind def /rip { bis ris copy pop is 0 cf cs readline pop { ic exch get exec add } forall pop pop ris gis copy pop dup is exch cf cs readline pop { ic exch get exec add } forall pop pop gis bis copy pop dup add is exch cf cs readline pop { ic exch get exec add } forall pop } bind def /rip4 { kis cis copy pop is 0 cf cs readline pop { ic exch get exec add } forall pop pop cis mis copy pop dup is exch cf cs readline pop { ic exch get exec add } forall pop pop mis yis copy pop dup dup add is exch cf cs readline pop { ic exch get exec add } forall pop pop yis kis copy pop 3 mul is exch cf cs readline pop { ic exch get exec add } forall pop } bind def /wh { /len exch def /pos exch def ws 0 len getinterval im pos len getinterval copy pop pos len } bind def /bl { /len exch def /pos exch def bs 0 len getinterval im pos len getinterval copy pop pos len } bind def /s1 1 string def /fl { /len exch def /pos exch def /val cf s1 readhexstring pop 0 get def pos 1 pos len add 1 sub {im exch val put} for pos len } bind def /hx { 3 copy getinterval cf exch readhexstring pop pop } bind def /wbytes { dup dup 8 gt { pop 8 idiv mul } { 8 eq {pop} {1 eq {7 add 8 idiv} {3 add 4 idiv} ifelse} ifelse } ifelse } bind def /BEGINBITMAPBWc { 1 {} COMMONBITMAPc } bind def /BEGINBITMAPGRAYc { 8 {} COMMONBITMAPc } bind def /BEGINBITMAP2BITc { 2 {} COMMONBITMAPc } bind def /COMMONBITMAPc { /cvtProc exch def /depth exch def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /lb width depth wbytes def sl lb lt {lb ms} if /bitmapsave save def cvtProc /is im 0 lb getinterval def ws 0 lb getinterval is copy pop /cf currentfile def width height depth [width 0 0 height neg 0 height] {ip} image bitmapsave restore grestore } bind def /BEGINBITMAPBW { 1 {} COMMONBITMAP } bind def /BEGINBITMAPGRAY { 8 {} COMMONBITMAP } bind def /BEGINBITMAP2BIT { 2 {} COMMONBITMAP } bind def /COMMONBITMAP { /cvtProc exch def /depth exch def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /bitmapsave save def cvtProc /is width depth wbytes string def /cf currentfile def width height depth [width 0 0 height neg 0 height] {cf is readhexstring pop} image bitmapsave restore grestore } bind def /ngrayt 256 array def /nredt 256 array def /nbluet 256 array def /ngreent 256 array def fMLevel1 { /colorsetup { currentcolortransfer /gryt exch def /blut exch def /grnt exch def /redt exch def 0 1 255 { /indx exch def /cynu 1 red indx get 255 div sub def /magu 1 green indx get 255 div sub def /yelu 1 blue indx get 255 div sub def /kk cynu magu min yelu min def /u kk currentundercolorremoval exec def % /u 0 def nredt indx 1 0 cynu u sub max sub redt exec put ngreent indx 1 0 magu u sub max sub grnt exec put nbluet indx 1 0 yelu u sub max sub blut exec put ngrayt indx 1 kk currentblackgeneration exec sub gryt exec put } for {255 mul cvi nredt exch get} {255 mul cvi ngreent exch get} {255 mul cvi nbluet exch get} {255 mul cvi ngrayt exch get} setcolortransfer {pop 0} setundercolorremoval {} setblackgeneration } bind def } { /colorSetup2 { [ /Indexed /DeviceRGB 255 {dup red exch get 255 div exch dup green exch get 255 div exch blue exch get 255 div} ] setcolorspace } bind def } ifelse /fakecolorsetup { /tran 256 string def 0 1 255 {/indx exch def tran indx red indx get 77 mul green indx get 151 mul blue indx get 28 mul add add 256 idiv put} for currenttransfer {255 mul cvi tran exch get 255.0 div} exch fmConcatProcs settransfer } bind def /BITMAPCOLOR { /depth 8 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /bitmapsave save def fMLevel1 { colorsetup /is width depth wbytes string def /cf currentfile def width height depth [width 0 0 height neg 0 height] {cf is readhexstring pop} {is} {is} true 3 colorimage } { colorSetup2 /is width depth wbytes string def /cf currentfile def 7 dict dup begin /ImageType 1 def /Width width def /Height height def /ImageMatrix [width 0 0 height neg 0 height] def /DataSource {cf is readhexstring pop} bind def /BitsPerComponent depth def /Decode [0 255] def end image } ifelse bitmapsave restore grestore } bind def /BITMAPCOLORc { /depth 8 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /lb width depth wbytes def sl lb lt {lb ms} if /bitmapsave save def fMLevel1 { colorsetup /is im 0 lb getinterval def ws 0 lb getinterval is copy pop /cf currentfile def width height depth [width 0 0 height neg 0 height] {ip} {is} {is} true 3 colorimage } { colorSetup2 /is im 0 lb getinterval def ws 0 lb getinterval is copy pop /cf currentfile def 7 dict dup begin /ImageType 1 def /Width width def /Height height def /ImageMatrix [width 0 0 height neg 0 height] def /DataSource {ip} bind def /BitsPerComponent depth def /Decode [0 255] def end image } ifelse bitmapsave restore grestore } bind def /BITMAPTRUECOLORc { /depth 24 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /lb width depth wbytes def sl lb lt {lb ms} if /bitmapsave save def /is im 0 lb getinterval def /ris im 0 width getinterval def /gis im width width getinterval def /bis im width 2 mul width getinterval def ws 0 lb getinterval is copy pop /cf currentfile def width height 8 [width 0 0 height neg 0 height] {width rip pop ris} {gis} {bis} true 3 colorimage bitmapsave restore grestore } bind def /BITMAPCMYKc { /depth 32 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /lb width depth wbytes def sl lb lt {lb ms} if /bitmapsave save def /is im 0 lb getinterval def /cis im 0 width getinterval def /mis im width width getinterval def /yis im width 2 mul width getinterval def /kis im width 3 mul width getinterval def ws 0 lb getinterval is copy pop /cf currentfile def width height 8 [width 0 0 height neg 0 height] {width rip4 pop cis} {mis} {yis} {kis} true 4 colorimage bitmapsave restore grestore } bind def /BITMAPTRUECOLOR { gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /bitmapsave save def /is width string def /gis width string def /bis width string def /cf currentfile def width height 8 [width 0 0 height neg 0 height] { cf is readhexstring pop } { cf gis readhexstring pop } { cf bis readhexstring pop } true 3 colorimage bitmapsave restore grestore } bind def /BITMAPCMYK { gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /bitmapsave save def /is width string def /mis width string def /yis width string def /kis width string def /cf currentfile def width height 8 [width 0 0 height neg 0 height] { cf is readhexstring pop } { cf mis readhexstring pop } { cf yis readhexstring pop } { cf kis readhexstring pop } true 4 colorimage bitmapsave restore grestore } bind def /BITMAPTRUEGRAYc { /depth 24 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /lb width depth wbytes def sl lb lt {lb ms} if /bitmapsave save def /is im 0 lb getinterval def /ris im 0 width getinterval def /gis im width width getinterval def /bis im width 2 mul width getinterval def ws 0 lb getinterval is copy pop /cf currentfile def width height 8 [width 0 0 height neg 0 height] {width rip pop ris gis bis width gray} image bitmapsave restore grestore } bind def /BITMAPCMYKGRAYc { /depth 32 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /lb width depth wbytes def sl lb lt {lb ms} if /bitmapsave save def /is im 0 lb getinterval def /cis im 0 width getinterval def /mis im width width getinterval def /yis im width 2 mul width getinterval def /kis im width 3 mul width getinterval def ws 0 lb getinterval is copy pop /cf currentfile def width height 8 [width 0 0 height neg 0 height] {width rip pop cis mis yis kis width cgray} image bitmapsave restore grestore } bind def /cgray { /ww exch def /k exch def /y exch def /m exch def /c exch def 0 1 ww 1 sub { /i exch def c i get m i get y i get k i get CMYKtoRGB .144 mul 3 1 roll .587 mul 3 1 roll .299 mul add add c i 3 -1 roll floor cvi put } for c } bind def /gray { /ww exch def /b exch def /g exch def /r exch def 0 1 ww 1 sub { /i exch def r i get .299 mul g i get .587 mul b i get .114 mul add add r i 3 -1 roll floor cvi put } for r } bind def /BITMAPTRUEGRAY { gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /bitmapsave save def /is width string def /gis width string def /bis width string def /cf currentfile def width height 8 [width 0 0 height neg 0 height] { cf is readhexstring pop cf gis readhexstring pop cf bis readhexstring pop width gray} image bitmapsave restore grestore } bind def /BITMAPCMYKGRAY { gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /bitmapsave save def /is width string def /yis width string def /mis width string def /kis width string def /cf currentfile def width height 8 [width 0 0 height neg 0 height] { cf is readhexstring pop cf mis readhexstring pop cf yis readhexstring pop cf kis readhexstring pop width cgray} image bitmapsave restore grestore } bind def /BITMAPGRAY { 8 {fakecolorsetup} COMMONBITMAP } bind def /BITMAPGRAYc { 8 {fakecolorsetup} COMMONBITMAPc } bind def /ENDBITMAP { } bind def end /ALDmatrix matrix def ALDmatrix currentmatrix pop /StartALD { /ALDsave save def savematrix ALDmatrix setmatrix } bind def /InALD { restorematrix } bind def /DoneALD { ALDsave restore } bind def /I { setdash } bind def /J { [] 0 setdash } bind def %%EndProlog %%BeginSetup (5.5) FMVERSION 1 1 0 0 612 792 0 1 14 FMDOCUMENT %%IncludeFont: Helvetica 0 0 /Helvetica FMFONTDEFINE %%IncludeFont: Helvetica-Oblique 1 0 /Helvetica-Oblique FMFONTDEFINE %%IncludeFont: Helvetica-Bold 2 0 /Helvetica-Bold FMFONTDEFINE %%IncludeFont: Times-Roman 3 0 /Times-Roman FMFONTDEFINE %%IncludeFont: Times-Italic 4 0 /Times-Italic FMFONTDEFINE %%IncludeFont: Courier 5 0 /Courier FMFONTDEFINE %%IncludeFont: Courier-Oblique 6 0 /Courier-Oblique FMFONTDEFINE %%IncludeFont: Times-Bold 7 0 /Times-Bold FMFONTDEFINE 32 FMFILLS 0 0 FMFILL 1 0.1 FMFILL 2 0.3 FMFILL 3 0.5 FMFILL 4 0.7 FMFILL 5 0.9 FMFILL 6 0.97 FMFILL 7 1 FMFILL 8 <0f1e3c78f0e1c387> FMFILL 9 <0f87c3e1f0783c1e> FMFILL 10 FMFILL 11 FMFILL 12 <8142241818244281> FMFILL 13 <03060c183060c081> FMFILL 14 <8040201008040201> FMFILL 16 1 FMFILL 17 0.9 FMFILL 18 0.7 FMFILL 19 0.5 FMFILL 20 0.3 FMFILL 21 0.1 FMFILL 22 0.03 FMFILL 23 0 FMFILL 24 FMFILL 25 FMFILL 26 <3333333333333333> FMFILL 27 <0000ffff0000ffff> FMFILL 28 <7ebddbe7e7dbbd7e> FMFILL 29 FMFILL 30 <7fbfdfeff7fbfdfe> FMFILL %%EndSetup %%Page: "1" 1 %%BeginPaperSize: Letter %%EndPaperSize 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 1 K J 0 8 Q 0 X (2) 487.99 736.84 T (-) 494.11 736.84 T (File) 498.44 736.84 T (Names) 513 736.84 T (1) 535.55 62.56 T 1 30 Q -1.5 (J) 162 664 S -1.5 (a) 174.9 664 S -1.5 (v) 189.48 664 S -1.5 (a Code Con) 202.23 664 S -1.5 (v) 346.71 664 S -1.5 (entions) 359.46 664 S 72 590.98 540 594 C 0 0 0 1 0 0 0 1 K 162 594 540 594 2 L 0.25 H 2 Z 0 X N 0 0 612 792 C 0 0 0 1 0 0 0 1 K 2 14 Q 0 X (1 -) 126 598.67 T (Intr) 162 598.67 T (oduction) 184.27 598.67 T 2 12 Q ( 1.1) 126 556.98 T (Wh) 162 556.98 T (y Ha) 180.42 556.98 T (ve Code Con) 205.58 556.98 T (ventions) 278.45 556.98 T 3 10 Q (Code con) 162 534.31 T (v) 199.65 534.31 T (entions are important to programmers for a number of reasons:) 204.5 534.31 T (\245) 162 516.31 T (80% of the lifetime cost of a piece of softw) 180 516.31 T (are goes to maintenance.) 352.92 516.31 T (\245) 162 501.31 T (Hardly an) 180 501.31 T (y softw) 219.56 501.31 T (are is maintained for its whole life by the original author) 249.18 501.31 T (.) 474.71 501.31 T (\245) 162 486.31 T (Code con) 180 486.31 T (v) 217.65 486.31 T (entions impro) 222.5 486.31 T (v) 277.63 486.31 T (e the readability of the softw) 282.48 486.31 T (are, allo) 397.08 486.31 T (wing engineers to) 429.04 486.31 T (understand ne) 180 474.31 T (w code more quickly and thoroughly) 235.57 474.31 T (.) 382.4 474.31 T (\245) 162 459.31 T (If you ship your source code as a product, you need to mak) 180 459.31 T (e sure it is as well packaged) 416.24 459.31 T (and clean as an) 180 447.31 T (y other product you create.) 240.66 447.31 T (F) 162 423.31 T (or the con) 167.41 423.31 T (v) 207 423.31 T (entions to w) 211.85 423.31 T (ork, e) 260.64 423.31 T (v) 283.16 423.31 T (ery person writing softw) 288.01 423.31 T (are must conform to the code) 385.95 423.31 T (con) 162 411.31 T (v) 176.04 411.31 T (entions. Ev) 180.89 411.31 T (eryone.) 225.74 411.31 T 2 12 Q ( 1.2) 126 373.98 T (Ac) 162 373.98 T (kno) 177.1 373.98 T (wledgments) 198.25 373.98 T 3 10 Q (This document re\337ects the Ja) 162 351.31 T (v) 278.45 351.31 T (a language coding standards presented in the) 283.2 351.31 T 4 F (J) 464.55 351.31 T (ava Langua) 468.64 351.31 T (g) 516.04 351.31 T (e) 520.94 351.31 T (Speci\336cation,) 162 339.31 T 3 F (from Sun Microsystems, Inc. Major contrib) 218.66 339.31 T (utions are from Peter King, P) 392.61 339.31 T (atrick) 509.67 339.31 T (Naughton, Mik) 162 327.31 T (e DeMone) 223.01 327.31 T (y) 264.79 327.31 T (, Jonni Kanerv) 269.14 327.31 T (a, Kath) 327.49 327.31 T (y W) 356.32 327.31 T (alrath, and Scott Hommel.) 372.46 327.31 T (This document is maintained by Scott Hommel. Comments should be sent to) 162 303.31 T (shommel@eng.sun.com) 162 291.31 T 72 228.95 540 231.98 C 0 0 0 1 0 0 0 1 K 162 231.98 540 231.98 2 L 0.25 H 2 Z 0 X N 0 0 612 792 C 0 0 0 1 0 0 0 1 K 2 14 Q 0 X (2 -) 126 236.64 T (File Names) 162 236.64 T 3 10 Q (This section lists commonly used \336le suf) 162 208.29 T (\336x) 325.09 208.29 T (es and names.) 335.5 208.29 T 2 12 Q ( 2.1) 126 170.95 T (File Suf\336x) 162 170.95 T (es) 219.23 170.95 T 3 10 Q (Ja) 162 148.29 T (v) 170.13 148.29 T (a Softw) 174.88 148.29 T (are uses the follo) 205.61 148.29 T (wing \336le suf) 273.4 148.29 T (\336x) 323.15 148.29 T (es:) 333.56 148.29 T 2 11 Q (File T) 168 119.62 T (ype) 196.07 119.62 T (Suf\336x) 263.4 119.62 T 3 10 Q (Ja) 168 103.29 T (v) 176.13 103.29 T (a source) 180.88 103.29 T 5 F -0.5 (.java) 263.4 103.29 S 3 F (Ja) 168 89.29 T (v) 176.13 89.29 T (a bytecode) 180.88 89.29 T 5 F -0.5 (.class) 263.4 89.29 S 257.4 132.95 257.4 85.95 2 L V 0.5 H 0 Z N 162 113.95 311.4 113.95 2 L V N FMENDPAGE %%EndPage: "1" 1 %%Page: "2" 2 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 1 K 0 8 Q 0 X (3 - File Organization) 72 736.84 T (2) 72 62.56 T 2 12 Q ( 2.2) 126 681.98 T (Common File Names) 162 681.98 T 3 10 Q (Frequently used \336le names include:) 162 659.31 T 72 513.95 540 516.98 C 0 0 0 1 0 0 0 1 K 162 516.98 540 516.98 2 L 0.25 H 2 Z 0 X N 0 0 612 792 C 0 0 0 1 0 0 0 1 K 2 14 Q 0 X (3 -) 126 521.64 T (File Or) 162 521.64 T (ganization) 206.14 521.64 T 3 10 Q (A \336le consists of sections that should be separated by blank lines and an optional comment) 162 493.29 T (identifying each section.) 162 481.29 T (Files longer than 2000 lines are cumbersome and should be a) 162 457.29 T (v) 406.21 457.29 T (oided.) 411.01 457.29 T (F) 162 433.29 T (or) 167.41 433.29 T (an) 177.94 433.29 T (e) 189.57 433.29 T (xample) 193.86 433.29 T (of) 225.5 433.29 T (a) 236.02 433.29 T (Ja) 242.66 433.29 T (v) 250.79 433.29 T (a) 255.54 433.29 T (program) 262.17 433.29 T (properly) 298.25 433.29 T (formatted,) 334.33 433.29 T (see) 377.9 433.29 T (\322Ja) 392.87 433.29 T (v) 405.44 433.29 T (a) 410.19 433.29 T (Source) 416.82 433.29 T (File) 446.79 433.29 T (Example\323) 464.54 433.29 T (on) 506.73 433.29 T (page) 518.92 433.29 T (18.) 162 421.29 T 2 12 Q ( 3.1) 126 383.95 T (Ja) 162 383.95 T (v) 175.16 383.95 T (a Sour) 181.6 383.95 T (ce Files) 218.7 383.95 T 3 10 Q (Each Ja) 162 361.29 T (v) 192.62 361.29 T (a source \336le contains a single public class or interf) 197.37 361.29 T (ace. When pri) 399.18 361.29 T (v) 454.74 361.29 T (ate classes and) 459.49 361.29 T (interf) 162 349.29 T (aces are associated with a public class, you can put them in the same source \336le as the) 183.56 349.29 T (public class. The public class should be the \336rst class or interf) 162 337.29 T (ace in the \336le.) 409.65 337.29 T (Ja) 162 313.29 T (v) 170.13 313.29 T (a source \336les ha) 174.88 313.29 T (v) 238.83 313.29 T (e the follo) 243.68 313.29 T (wing ordering:) 283.98 313.29 T (\245) 162 295.29 T (Be) 180 295.29 T (ginning comments \050see \322Be) 190.96 295.29 T (ginning Comments\323 on page 2\051) 301.63 295.29 T (\245) 162 280.29 T (P) 180 280.29 T (ackage and Import statements) 185.41 280.29 T (\245) 162 265.29 T (Class and interf) 180 265.29 T (ace declarations \050see \322Class and Interf) 242.67 265.29 T (ace Declarations\323 on page 3\051) 395.57 265.29 T 1 F (3.1.1) 126 235.29 T (Beginning Comments) 162 235.29 T 3 F (All source \336les should be) 162 213.29 T (gin with a c-style comment that lists the class name, v) 263.51 213.29 T (ersion) 479.18 213.29 T (information, date, and cop) 162 201.29 T (yright notice:) 267.16 201.29 T 5 9 Q (/*) 162 177.95 T ( *) 162 168.95 T 6 F (Classname) 178.2 168.95 T 5 F ( *) 162 159.95 T ( *) 162 150.95 T 6 F (Version information) 178.2 150.95 T 5 F ( *) 162 141.95 T ( *) 162 132.95 T 6 F (Date) 178.2 132.95 T 5 F ( *) 162 123.95 T ( *) 162 114.95 T 6 F (Copyright notice) 178.2 114.95 T 5 F ( */) 162 105.95 T 2 11 Q (File Name) 168 630.64 T (Use) 276 630.64 T 5 10 Q -0.5 (GNUmakefile) 168 614.31 S 3 F (The preferred name for mak) 276 614.31 T (e\336les.) 388.63 614.31 T (W) 276 602.31 T (e use) 284.64 602.31 T 5 F -0.5 (gnumake) 307.41 602.31 S 3 F ( to b) 345.91 602.31 T (uild our softw) 363.49 602.31 T (are.) 419.5 602.31 T 5 F -0.5 (README) 168 588.31 S 3 F (The) 276 588.31 T (preferred) 293.61 588.31 T (name) 332.3 588.31 T (for) 356.02 588.31 T (the) 369.73 588.31 T (\336le) 384.01 588.31 T (that) 398.84 588.31 T (summarizes) 415.9 588.31 T (the) 465.72 588.31 T (contents of a particular directory) 276 576.31 T (.) 405.87 576.31 T 270 643.98 270 572.98 2 L V 0.5 H 0 Z N 162 624.98 486 624.98 2 L V N FMENDPAGE %%EndPage: "2" 2 %%Page: "3" 3 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 1 K 0 8 Q 0 X (3) 467.98 736.84 T (-) 474.09 736.84 T (File) 478.42 736.84 T (Organization) 492.98 736.84 T (3) 535.55 62.56 T 1 10 Q (3.1.2) 126 677.33 T (P) 162 677.33 T (ac) 168.27 677.33 T (kage and Impor) 178.63 677.33 T (t Statements) 248.51 677.33 T 3 F (The \336rst non-comment line of most Ja) 162 655.33 T (v) 314.57 655.33 T (a source \336les is a) 319.32 655.33 T 5 F -0.5 (package) 390.14 655.33 S 3 F ( statement. After that,) 428.64 655.33 T 5 F -0.5 (import) 162 643.33 S 3 F ( statements can follo) 195 643.33 T (w) 277.24 643.33 T (. F) 283.81 643.33 T (or e) 294.22 643.33 T (xample:) 309.34 643.33 T 5 9 Q (package java.awt;) 180 620 T (import java.awt.peer.CanvasPeer;) 180 602 T 1 10 Q (3.1.3) 126 574.33 T (Class and Interf) 162 574.33 T (ace Declar) 231.73 574.33 T (ations) 279.42 574.33 T 3 F (The) 162 552.33 T (follo) 179.9 552.33 T (wing) 198.54 552.33 T (table) 220.89 552.33 T (describes) 242.68 552.33 T (the) 282.25 552.33 T (parts) 296.82 552.33 T (of) 318.61 552.33 T (a) 329.29 552.33 T (class) 336.08 552.33 T (or) 357.88 552.33 T (interf) 368.56 552.33 T (ace) 390.12 552.33 T (declaration,) 405.79 552.33 T (in) 455.07 552.33 T (the) 465.2 552.33 T (order) 479.77 552.33 T (that) 503.23 552.33 T (the) 520.58 552.33 T (y) 532.65 552.33 T (should appear) 162 540.33 T (. See \322Ja) 217.27 540.33 T (v) 251.78 540.33 T (a Source File Example\323 on page 18 for an e) 256.53 540.33 T (xample that includes) 431.06 540.33 T (comments.) 162 528.33 T 2 11 Q (P) 186 497.67 T (ar) 193.01 497.67 T (t of Class/Interface) 203.62 497.67 T (Dec) 186 484.67 T (laration) 205.95 484.67 T (Notes) 336 491.17 T 3 10 Q (1) 168 460.33 T (Class/interf) 186 460.33 T (ace documentation) 232.01 460.33 T (comment \050) 186 448.33 T 5 F -0.5 (/**...*/) 229.05 448.33 S 3 F (\051) 273.05 448.33 T (See \322Documentation Comments\323 on page 8 for) 336 460.33 T (information on what should be in this comment.) 336 448.33 T (2) 168 426.33 T 5 F -0.5 (class) 186 426.33 S 3 F ( or) 213.5 426.33 T 5 F -0.5 (interface) 226.83 426.33 S 3 F ( statement) 276.33 426.33 T (3) 168 394.33 T (Class/interf) 186 394.33 T (ace implementation) 232.01 394.33 T (comment) 186 382.33 T (\050) 225.26 382.33 T 5 F -0.5 (/*...*/) 228.59 382.33 S 3 F (\051,) 267.09 382.33 T (if) 274.95 382.33 T (necessary) 283.1 382.33 T (This comment should contain an) 336 394.33 T (y class-wide or) 466.4 394.33 T (interf) 336 382.33 T (ace-wide information that w) 357.56 382.33 T (asn\325) 470.49 382.33 T (t appropri-) 486.97 382.33 T (ate for the class/interf) 336 370.33 T (ace documentation com-) 422.82 370.33 T (ment.) 336 358.33 T (4) 168 336.33 T (Class \050) 186 336.33 T 5 F -0.5 (static) 213.5 336.33 S 3 F (\051 v) 246.5 336.33 T (ariables) 257.08 336.33 T (First the) 336 336.33 T 5 F -0.5 (public) 371.56 336.33 S 3 F ( class v) 404.56 336.33 T (ariables, then the) 433.75 336.33 T 5 F -0.5 (pro-) 504.29 336.33 S -0.5 (tected) 336 324.33 S 3 F (,) 369 324.33 T (then) 373.63 324.33 T (package) 392.98 324.33 T (le) 427.86 324.33 T (v) 434.83 324.33 T (el) 439.68 324.33 T (\050no) 449.03 324.33 T (access) 464.49 324.33 T (modi\336er\051,) 492.15 324.33 T (and then the) 336 312.33 T 5 F -0.5 (private) 387.38 312.33 S 3 F (.) 425.88 312.33 T (5) 168 290.33 T (Instance v) 186 290.33 T (ariables) 226.57 290.33 T (First) 336 290.33 T 5 F -0.5 (public) 356.84 290.33 S 3 F (, then) 389.84 290.33 T 5 F -0.5 (protected) 414.56 290.33 S 3 F (, then package) 464.06 290.33 T (le) 336 278.33 T (v) 342.97 278.33 T (el \050no access modi\336er\051, and then) 347.82 278.33 T 5 F -0.5 (private) 480.29 278.33 S 3 F (.) 518.79 278.33 T (6) 168 256.33 T (Constructors) 186 256.33 T (7) 168 224.33 T (Methods) 186 224.33 T (These methods should be grouped by functional-) 336 224.33 T (ity rather than by scope or accessibility) 336 212.33 T (. F) 491.99 212.33 T (or) 502.4 212.33 T (e) 336 200.33 T (xample, a pri) 340.29 200.33 T (v) 392.53 200.33 T (ate class method can be in) 397.28 200.33 T (between) 336 188.33 T (tw) 371.34 188.33 T (o) 381.24 188.33 T (public) 388.27 188.33 T (instance) 415.29 188.33 T (methods.) 450.08 188.33 T (The) 488.49 188.33 T (goal) 506.07 188.33 T (is) 525.31 188.33 T (to mak) 336 176.33 T (e reading and understanding the code eas-) 363.4 176.33 T (ier) 336 164.33 T (.) 346 164.33 T 180 513 180 155 2 L V 0.5 H 0 Z N 162 473 540 473 2 L V N FMENDPAGE %%EndPage: "3" 3 %%Page: "4" 4 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 1 K 0 8 Q 0 X (4 - Indentation) 72 736.84 T (4) 72 62.56 T 72 672.95 540 675.98 C 0 0 0 1 0 0 0 1 K 162 675.98 540 675.98 2 L 0.25 H 2 Z 0 X N 0 0 612 792 C 0 0 0 1 0 0 0 1 K 2 14 Q 0 X (4 -) 126 680.64 T (Indentation) 162 680.64 T 3 10 Q (F) 162 652.29 T (our) 167.41 652.29 T (spaces) 182.95 652.29 T (should) 211.25 652.29 T (be) 240.13 652.29 T (used) 251.77 652.29 T (as) 272.31 652.29 T (the) 282.84 652.29 T (unit) 297.27 652.29 T (of) 315.04 652.29 T (indentation.) 325.57 652.29 T (The) 375.28 652.29 T (e) 393.03 652.29 T (xact) 397.32 652.29 T (construction) 416.19 652.29 T (of) 467.83 652.29 T (the) 478.37 652.29 T (indentation) 492.79 652.29 T (\050spaces vs. tabs\051 is unspeci\336ed. T) 162 640.29 T (abs must be set e) 294.79 640.29 T (xactly e) 362.41 640.29 T (v) 393.54 640.29 T (ery 8 spaces \050not 4\051.) 398.39 640.29 T 2 12 Q ( 4.1) 126 602.95 T (Line Length) 162 602.95 T 3 10 Q (A) 162 580.29 T (v) 168.48 580.29 T (oid lines longer than 80 characters, since the) 173.28 580.29 T (y\325) 350.87 580.29 T (re not handled well by man) 358.7 580.29 T (y terminals and) 467.7 580.29 T (tools.) 162 568.29 T 2 F (Note:) 162 544.29 T 3 F (Examples for use in documentation should ha) 190.33 544.29 T (v) 372.89 544.29 T (e a shorter line length\321generally no) 377.74 544.29 T (more than 70 characters.) 162 532.29 T 2 12 Q ( 4.2) 126 494.95 T (Wrapping Lines) 162 494.95 T 3 10 Q (When an e) 162 472.29 T (xpression will not \336t on a single line, break it according to these general principles:) 204.61 472.29 T (\245) 162 454.29 T (Break after a comma.) 180 454.29 T (\245) 162 439.29 T (Break before an operator) 180 439.29 T (.) 279.13 439.29 T (\245) 162 424.29 T (Prefer higher) 180 424.29 T (-le) 232.28 424.29 T (v) 242.58 424.29 T (el breaks to lo) 247.43 424.29 T (wer) 303.56 424.29 T (-le) 318.35 424.29 T (v) 328.65 424.29 T (el breaks.) 333.5 424.29 T (\245) 162 409.29 T (Align the ne) 180 409.29 T (w line with the be) 229.19 409.29 T (ginning of the e) 300.7 409.29 T (xpression at the same le) 363.6 409.29 T (v) 458.89 409.29 T (el on the pre) 463.74 409.29 T (vious) 513.2 409.29 T (line.) 180 397.29 T (\245) 162 382.29 T (If the abo) 180 382.29 T (v) 218.17 382.29 T (e rules lead to confusing code or to code that\325) 223.02 382.29 T (s squished up ag) 404.93 382.29 T (ainst the right) 470.71 382.29 T (mar) 180 370.29 T (gin, just indent 8 spaces instead.) 195.37 370.29 T (Here are some e) 162 346.29 T (xamples of breaking method calls:) 226.54 346.29 T 5 9 Q (someMethod\050longExpression1, longExpression2, longExpression3,) 180 322.95 T ( longExpression4, longExpression5\051;) 180 313.95 T (var = someMethod1\050longExpression1,) 180 292.95 T ( someMethod2\050longExpression2,) 180 283.95 T ( longExpression3\051\051;) 180 274.95 T 3 10 Q (F) 162 253.29 T (ollo) 167.41 253.29 T (wing are tw) 182.72 253.29 T (o e) 229.83 253.29 T (xamples of breaking an arithmetic e) 241.62 253.29 T (xpression. The \336rst is preferred, since) 385.05 253.29 T (the break occurs outside the parenthesized e) 162 241.29 T (xpression, which is at a higher le) 337.91 241.29 T (v) 469.03 241.29 T (el.) 473.88 241.29 T 5 9 Q (longName1 = longName2 * \050longName3 + longName4 - longName5\051) 180 217.95 T ( + 4 * longname6; // PREFER) 180 208.95 T (longName1 = longName2 * \050longName3 + longName4) 180 187.95 T ( - longName5\051 + 4 * longname6; // AVOID) 180 178.95 T 3 10 Q (F) 162 157.29 T (ollo) 167.41 157.29 T (wing are tw) 182.72 157.29 T (o e) 229.83 157.29 T (xamples of indenting method declarations. The \336rst is the con) 241.62 157.29 T (v) 488.42 157.29 T (entional) 493.27 157.29 T (case. The second w) 162 145.29 T (ould shift the second and third lines to the f) 239.65 145.29 T (ar right if it used con) 413.15 145.29 T (v) 496.35 145.29 T (entional) 501.2 145.29 T (indentation, so instead it indents only 8 spaces.) 162 133.29 T FMENDPAGE %%EndPage: "4" 4 %%Page: "5" 5 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 1 K 0 8 Q 0 X (5) 489.77 736.84 T (-) 495.7 736.84 T (Comments) 499.85 736.84 T (5) 535.55 62.56 T 5 9 Q (//CONVENTIONAL INDENTATION) 180 678 T (someMethod\050int anArg, Object anotherArg, String yetAnotherArg,) 180 669 T ( Object andStillAnother\051 {) 180 660 T ( ...) 180 651 T (}) 180 642 T (//INDENT 8 SPACES TO AVOID VERY DEEP INDENTS) 180 621 T (private static synchronized horkingLongMethodName\050int anArg,) 180 612 T ( Object anotherArg, String yetAnotherArg,) 180 603 T ( Object andStillAnother\051 {) 180 594 T ( ...) 180 585 T (}) 180 576 T 3 10 Q (Line wrapping for) 162 554.33 T 5 F -0.5 (if) 237.26 554.33 S 3 F ( statements should generally use the 8-space rule, since con) 248.26 554.33 T (v) 485.59 554.33 T (entional \0504) 490.44 554.33 T (space\051 indentation mak) 162 542.33 T (es seeing the body dif) 254.66 542.33 T (\336cult. F) 341.62 542.33 T (or e) 372.59 542.33 T (xample:) 387.71 542.33 T 5 9 Q (//DON\325T USE THIS INDENTATION) 180 519 T (if \050\050condition1 && condition2\051) 180 510 T ( || \050condition3 && condition4\051) 180 501 T ( ||!\050condition5 && condition6\051\051 { //BAD WRAPS) 180 492 T ( doSomethingAboutIt\050\051; //MAKE THIS LINE EASY TO MISS) 180 483 T (}) 180 474 T (//USE THIS INDENTATION INSTEAD) 180 453 T (if \050\050condition1 && condition2\051) 180 444 T ( || \050condition3 && condition4\051) 180 435 T ( ||!\050condition5 && condition6\051\051 {) 180 426 T ( doSomethingAboutIt\050\051;) 180 417 T (}) 180 408 T (//OR USE THIS) 180 387 T (if \050\050condition1 && condition2\051 || \050condition3 && condition4\051) 180 378 T ( ||!\050condition5 && condition6\051\051 {) 180 369 T ( doSomethingAboutIt\050\051;) 180 360 T (}) 180 351 T 3 10 Q (Here are three acceptable w) 162 329.33 T (ays to format ternary e) 272.95 329.33 T (xpressions:) 363.33 329.33 T 5 9 Q (alpha = \050aLongBooleanExpression\051 ? beta : gamma;) 180 306 T (alpha = \050aLongBooleanExpression\051 ? beta) 180 285 T ( : gamma;) 180 276 T (alpha = \050aLongBooleanExpression\051) 180 255 T ( ? beta) 180 246 T ( : gamma;) 180 237 T 72 176.98 540 180 C 0 0 0 1 0 0 0 1 K 162 180 540 180 2 L 0.25 H 2 Z 0 X N 0 0 612 792 C 0 0 0 1 0 0 0 1 K 2 14 Q 0 X (5 -) 126 184.67 T (Comments) 162 184.67 T 3 10 Q (Ja) 162 156.31 T (v) 170.13 156.31 T (a programs can ha) 174.88 156.31 T (v) 247.71 156.31 T (e tw) 252.56 156.31 T (o kinds of comments: implementation comments and) 269.4 156.31 T (documentation comments. Implementation comments are those found in C++, which are) 162 144.31 T (delimited by) 162 132.31 T 5 9 Q (/*...*/) 214.78 132.31 T 3 10 Q (, and) 252.58 132.31 T 5 9 Q (//) 274.52 132.31 T 3 10 Q (. Documentation comments \050kno) 285.32 132.31 T (wn as \322doc comments\323\051 are) 418.67 132.31 T (Ja) 162 120.31 T (v) 170.13 120.31 T (a-only) 174.88 120.31 T (, and are delimited by) 199.78 120.31 T 5 9 Q (/**...*/) 291.71 120.31 T 3 10 Q (. Doc comments can be e) 334.91 120.31 T (xtracted to HTML \336les) 437.79 120.31 T (using the ja) 162 108.31 T (v) 207.91 108.31 T (adoc tool.) 212.66 108.31 T FMENDPAGE %%EndPage: "5" 5 %%Page: "6" 6 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 1 K 0 8 Q 0 X (5 - Comments) 72 736.84 T (6) 72 62.56 T 3 10 Q (Implementation comments are means for commenting out code or for comments about the) 162 683.31 T (particular) 162 671.31 T (implementation.) 202.76 671.31 T (Doc) 272.92 671.31 T (comments) 292.03 671.31 T (are) 335.58 671.31 T (meant) 350.23 671.31 T (to) 377.11 671.31 T (describe) 387.33 671.31 T (the) 423.09 671.31 T (speci\336cation) 437.75 671.31 T (of) 490.74 671.31 T (the) 501.52 671.31 T (code,) 516.18 671.31 T (from an implementation-free perspecti) 162 659.31 T (v) 315.88 659.31 T (e to be read by de) 320.73 659.31 T (v) 391.29 659.31 T (elopers who might not necessarily) 396.14 659.31 T (ha) 162 647.31 T (v) 171.24 647.31 T (e the source code at hand.) 176.09 647.31 T (Comments) 162 623.31 T (should) 207.62 623.31 T (be) 236.56 623.31 T (used) 248.28 623.31 T (to) 268.88 623.31 T (gi) 278.94 623.31 T (v) 286.47 623.31 T (e) 291.32 623.31 T (o) 298.03 623.31 T (v) 302.88 623.31 T (ervie) 307.73 623.31 T (ws) 327.47 623.31 T (of) 340.86 623.31 T (code) 351.46 623.31 T (and) 372.62 623.31 T (pro) 389.33 623.31 T (vide) 402.51 623.31 T (additional) 422.01 623.31 T (information) 464.28 623.31 T (that) 513.78 623.31 T (is) 531.05 623.31 T (not readily a) 162 611.31 T (v) 211.79 611.31 T (ailable in the code itself. Comments should contain only information that is) 216.54 611.31 T (rele) 162 599.31 T (v) 176.74 599.31 T (ant to reading and understanding the program. F) 181.49 599.31 T (or e) 374.09 599.31 T (xample, information about ho) 389.21 599.31 T (w the) 507.84 599.31 T (corresponding package is b) 162 587.31 T (uilt or in what directory it resides should not be included as a) 270.94 587.31 T (comment.) 162 575.31 T (Discussion of nontri) 162 551.31 T (vial or nonob) 242.86 551.31 T (vious design decisions is appropriate, b) 296.04 551.31 T (ut a) 453.05 551.31 T (v) 467.57 551.31 T (oid duplicating) 472.37 551.31 T (information that is present in \050and clear from\051 the code. It is too easy for redundant comments) 162 539.31 T (to get out of date. In general, a) 162 527.31 T (v) 284.27 527.31 T (oid an) 289.07 527.31 T (y comments that are lik) 313.64 527.31 T (ely to get out of date as the code) 407.42 527.31 T (e) 162 515.31 T (v) 166.19 515.31 T (olv) 170.99 515.31 T (es.) 183.62 515.31 T 2 F (Note:) 162 491.31 T 3 F (The frequenc) 190.33 491.31 T (y of comments sometimes re\337ects poor quality of code. When you feel) 243.21 491.31 T (compelled to add a comment, consider re) 162 479.31 T (writing the code to mak) 326.44 479.31 T (e it clearer) 421.33 479.31 T (.) 462.98 479.31 T (Comments should not be enclosed in lar) 162 455.31 T (ge box) 322.37 455.31 T (es dra) 349.16 455.31 T (wn with asterisks or other characters.) 372.61 455.31 T (Comments should ne) 162 443.31 T (v) 246.2 443.31 T (er include special characters such as form-feed and backspace.) 251.05 443.31 T 2 12 Q ( 5.1) 126 405.98 T (Implementation Comment Formats) 162 405.98 T 3 10 Q (Programs can ha) 162 383.31 T (v) 228.45 383.31 T (e four styles of implementation comments: block, single-line, trailing and) 233.3 383.31 T (end-of-line.) 162 371.31 T 1 F (5.1.1) 126 341.31 T (Bloc) 162 341.31 T (k Comments) 181.25 341.31 T 3 F (Block comments are used to pro) 162 319.31 T (vide descriptions of \336les, methods, data structures and) 291 319.31 T (algorithms. Block comments may be used at the be) 162 307.31 T (ginning of each \336le and before each) 366 307.31 T (method.) 162 295.31 T (The) 196.63 295.31 T (y) 212.03 295.31 T (can) 219.15 295.31 T (also) 235.16 295.31 T (be) 253.4 295.31 T (used) 264.96 295.31 T (in) 285.42 295.31 T (other) 295.32 295.31 T (places,) 318 295.31 T (such) 347.62 295.31 T (as) 368.07 295.31 T (within) 378.53 295.31 T (methods.) 406.21 295.31 T (Block) 444.73 295.31 T (comments) 470.75 295.31 T (inside) 513.98 295.31 T (a function or method should be indented to the same le) 162 283.31 T (v) 381.17 283.31 T (el as the code the) 386.02 283.31 T (y describe.) 454.74 283.31 T (A block comment should be preceded by a blank line to set it apart from the rest of the code.) 162 259.31 T 5 9 Q (/*) 180 235.98 T ( * Here is a block comment.) 180 226.98 T ( */) 180 217.98 T 3 10 Q (Block comments can start with) 162 196.31 T 5 F -0.5 (/*-) 288.38 196.31 S 3 F (, which is recognized by) 304.88 196.31 T 7 F (indent) 404.86 196.31 T 3 F (\0501\051 as the be) 432.09 196.31 T (ginning of a) 481.09 196.31 T (block comment that should not be reformatted. Example:) 162 184.31 T 5 9 Q (/*-) 180 160.98 T ( * Here is a block comment with some very special) 180 151.98 T ( * formatting that I want indent\0501\051 to ignore.) 180 142.98 T ( *) 180 133.98 T ( * one) 180 124.98 T ( * two) 180 115.98 T ( * three) 180 106.98 T ( */) 180 97.98 T FMENDPAGE %%EndPage: "6" 6 %%Page: "7" 7 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 1 K 0 8 Q 0 X (5) 489.77 736.84 T (-) 495.7 736.84 T (Comments) 499.85 736.84 T (7) 535.55 62.56 T 2 10 Q (Note:) 162 677.33 T 3 F (If you don\325) 190.33 677.33 T (t use) 235.14 677.33 T 7 F (indent) 256.25 677.33 T 3 F (\0501\051, you don\325) 283.48 677.33 T (t ha) 335.79 677.33 T (v) 350.31 677.33 T (e to use) 355.16 677.33 T 5 F -0.5 (/*-) 388.21 677.33 S 3 F ( in your code or mak) 404.71 677.33 T (e an) 487.65 677.33 T (y other) 503.88 677.33 T (concessions to the possibility that someone else might run) 162 665.33 T 7 F (indent) 396.72 665.33 T 3 F (\0501\051 on your code.) 423.95 665.33 T (See also \322Documentation Comments\323 on page 8.) 162 641.33 T 1 F (5.1.2) 126 611.33 T (Single-Line Comments) 162 611.33 T 3 F (Short comments can appear on a single line indented to the le) 162 589.33 T (v) 407.55 589.33 T (el of the code that follo) 412.4 589.33 T (ws. If a) 505.19 589.33 T (comment can\325) 162 577.33 T (t be written in a single line, it should follo) 218.75 577.33 T (w the block comment format \050see) 386.28 577.33 T (section 5.1.1\051. A single-line comment should be preceded by a blank line. Here\325) 162 565.33 T (s an e) 481.39 565.33 T (xample) 504.01 565.33 T (of a single-line comment in Ja) 162 553.33 T (v) 282.62 553.33 T (a code:) 287.37 553.33 T 5 9 Q (if \050condition\051 {) 180 530 T ( /* Handle the condition. */) 180 512 T ( ...) 180 503 T (}) 180 494 T 1 10 Q (5.1.3) 126 466.33 T (T) 162 466.33 T (r) 166.91 466.33 T (ailing Comments) 170.14 466.33 T 3 F (V) 162 444.33 T (ery short comments can appear on the same line as the code the) 168.11 444.33 T (y describe, b) 421.79 444.33 T (ut should be) 472.41 444.33 T (shifted f) 162 432.33 T (ar enough to separate them from the statements. If more than one short comment) 194.95 432.33 T (appears in a chunk of code, the) 162 420.33 T (y should all be indented to the same tab setting.) 285.98 420.33 T (Here\325) 162 396.33 T (s an e) 184.21 396.33 T (xample of a trailing comment in Ja) 206.83 396.33 T (v) 346.06 396.33 T (a code:) 350.81 396.33 T 5 9 Q (if \050a == 2\051 {) 180 373 T ( return TRUE; /* special case */) 180 364 T (} else {) 180 355 T ( return isPrime\050a\051; /* works only for odd a */) 180 346 T (}) 180 337 T 1 10 Q (5.1.4) 126 309.33 T (End-Of-Line Comments) 162 309.33 T 3 F (The) 162 287.33 T 5 F -0.5 (//) 179.82 287.33 S 3 F (comment) 193.09 287.33 T (delimiter) 232.57 287.33 T (can) 270.95 287.33 T (comment) 287.1 287.33 T (out) 326.59 287.33 T (a) 341.64 287.33 T (complete) 348.35 287.33 T (line) 387.27 287.33 T (or) 404.54 287.33 T (only) 415.14 287.33 T (a) 435.19 287.33 T (partial) 441.9 287.33 T (line.) 469.72 287.33 T (It) 491.75 287.33 T (shouldn\325) 500.13 287.33 T (t) 534.95 287.33 T (be used on consecuti) 162 275.33 T (v) 244.79 275.33 T (e multiple lines for te) 249.64 275.33 T (xt comments; ho) 335.04 275.33 T (we) 401.46 275.33 T (v) 412.87 275.33 T (er) 417.72 275.33 T (, it can be used in) 425.09 275.33 T (consecuti) 162 263.33 T (v) 199.52 263.33 T (e multiple lines for commenting out sections of code. Examples of all three styles) 204.37 263.33 T (follo) 162 251.33 T (w:) 180.64 251.33 T 5 9 Q (if \050foo > 1\051 {) 180 228 T ( // Do a double-flip.) 180 210 T ( ...) 180 201 T (}) 180 192 T (else{) 180 183 T ( return false; // Explain why here.) 180 174 T (}) 180 165 T FMENDPAGE %%EndPage: "7" 7 %%Page: "8" 8 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 1 K 0 8 Q 0 X (5 - Comments) 72 736.84 T (8) 72 62.56 T 5 9 Q (//if \050bar > 1\051 {) 180 683.98 T (//) 180 674.98 T (// // Do a triple-flip.) 180 665.98 T (// ...) 180 656.98 T (//}) 180 647.98 T (//else{) 180 638.98 T (// return false;) 180 629.98 T (//}) 180 620.98 T 2 12 Q ( 5.2) 126 585.98 T (Documentation Comments) 162 585.98 T 2 10 Q (Note:) 162 563.31 T 3 F (See \322Ja) 190.33 563.31 T (v) 219.84 563.31 T (a Source File Example\323 on page 18 for e) 224.59 563.31 T (xamples of the comment formats) 387.18 563.31 T (described here.) 162 551.31 T (F) 162 527.31 T (or further details, see \322Ho) 167.41 527.31 T (w to Write Doc Comments for Ja) 270.74 527.31 T (v) 403.3 527.31 T (adoc\323 which includes) 408.05 527.31 T (information on the doc comment tags \050) 162 515.31 T 5 9 Q (@return) 317.54 515.31 T 3 10 Q (,) 355.34 515.31 T 5 9 Q (@param) 360.34 515.31 T 3 10 Q (,) 392.74 515.31 T 5 9 Q (@see) 397.74 515.31 T 3 10 Q (\051:) 419.34 515.31 T 5 9 Q (http://java.sun.com/products/jdk/javadoc/writingdoccomments.html) 180 491.98 T 3 10 Q (F) 162 470.31 T (or further details about doc comments and ja) 167.41 470.31 T (v) 345.79 470.31 T (adoc, see the ja) 350.54 470.31 T (v) 411.43 470.31 T (adoc home page at:) 416.18 470.31 T 5 9 Q (http://java.sun.com/products/jdk/javadoc/) 180 446.98 T 3 10 Q (Doc comments describe Ja) 162 425.31 T (v) 268.72 425.31 T (a classes, interf) 273.47 425.31 T (aces, constructors, methods, and \336elds. Each doc) 334.74 425.31 T (comment is set inside the comment delimiters) 162 413.31 T 5 F -0.5 (/**...*/) 347.83 413.31 S 3 F (, with one comment per class,) 391.83 413.31 T (interf) 162 401.31 T (ace, or member) 183.56 401.31 T (. This comment should appear just before the declaration:) 244.93 401.31 T 5 9 Q (/**) 180 377.98 T ( * The Example class provides ...) 180 368.98 T ( */) 180 359.98 T (public class Example { ...) 180 350.98 T 3 10 Q (Notice) 162 329.31 T (that) 190.86 329.31 T (top-le) 208.07 329.31 T (v) 231.15 329.31 T (el) 236 329.31 T (classes) 245.42 329.31 T (and) 275.39 329.31 T (interf) 292.04 329.31 T (aces) 313.6 329.31 T (are) 333.01 329.31 T (not) 347.42 329.31 T (indented,) 362.4 329.31 T (while) 401.55 329.31 T (their) 425.97 329.31 T (members) 446.5 329.31 T (are.) 485.37 329.31 T (The) 504.48 329.31 T (\336rst) 522.24 329.31 T (line) 162 317.31 T (of) 179.32 317.31 T (doc) 189.96 317.31 T (comment) 206.72 317.31 T (\050) 246.25 317.31 T 5 9 Q (/**) 249.58 317.31 T 3 10 Q (\051) 265.78 317.31 T (for) 271.43 317.31 T (classes) 285.41 317.31 T (and) 315.49 317.31 T (interf) 332.25 317.31 T (aces) 353.81 317.31 T (is) 373.33 317.31 T (not) 382.32 317.31 T (indented;) 397.42 317.31 T (subsequent) 436.95 317.31 T (doc) 483.71 317.31 T (comment) 500.46 317.31 T (lines each ha) 162 305.31 T (v) 213.45 305.31 T (e 1 space of indentation \050to v) 218.3 305.31 T (ertically align the asterisks\051. Members, including) 334.24 305.31 T (constructors, ha) 162 293.31 T (v) 225.12 293.31 T (e 4 spaces for the \336rst doc comment line and 5 spaces thereafter) 229.97 293.31 T (.) 484.91 293.31 T (If you need to gi) 162 269.31 T (v) 227.85 269.31 T (e information about a class, interf) 232.7 269.31 T (ace, v) 367.02 269.31 T (ariable, or method that isn\325) 390.09 269.31 T (t) 497.95 269.31 T (appropriate for documentation, use an implementation block comment \050see section 5.1.1\051 or) 162 257.31 T (single-line) 162 245.31 T (\050see) 206.44 245.31 T (section) 224.77 245.31 T (5.1.2\051) 255.32 245.31 T (comment) 280.87 245.31 T (immediately) 320.32 245.31 T 4 F (after) 372.54 245.31 T 3 F (the) 393.65 245.31 T (declaration.) 408.1 245.31 T (F) 457.25 245.31 T (or) 462.66 245.31 T (e) 473.21 245.31 T (xample,) 477.5 245.31 T (details) 511.67 245.31 T (about the implementation of a class should go in in such an implementation block comment) 162 233.31 T 4 F (following) 162 221.31 T 3 F ( the class statement, not in the class doc comment.) 199.79 221.31 T (Doc comments should not be positioned inside a method or constructor de\336nition block,) 162 197.31 T (because) 162 185.31 T (Ja) 195.96 185.31 T (v) 204.09 185.31 T (a) 208.84 185.31 T (associates) 215.58 185.31 T (documentation) 257.88 185.31 T (comments) 319.62 185.31 T (with) 363.04 185.31 T (the) 383.12 185.31 T (\336rst) 397.65 185.31 T (declaration) 415.52 185.31 T 4 F (after) 462.25 185.31 T 3 F (the) 483.45 185.31 T (comment.) 497.97 185.31 T FMENDPAGE %%EndPage: "8" 8 %%Page: "9" 9 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 1 K 0 8 Q 0 X (6) 483.98 736.84 T (-) 489.92 736.84 T (Declarations) 494.06 736.84 T (9) 535.55 62.56 T 72 666.98 540 670 C 0 0 0 1 0 0 0 1 K 162 670 540 670 2 L 0.25 H 2 Z 0 X N 0 0 612 792 C 0 0 0 1 0 0 0 1 K 2 14 Q 0 X (6 -) 126 674.67 T (Dec) 162 674.67 T (larations) 187.4 674.67 T 2 12 Q ( 6.1) 126 632.98 T (Number P) 162 632.98 T (er Line) 218.32 632.98 T 3 10 Q (One declaration per line is recommended since it encourages commenting. In other w) 162 610.31 T (ords,) 503.77 610.31 T 5 9 Q (int level; // indentation level) 180 586.98 T (int size; // size of table) 180 577.98 T 3 10 Q (is preferred o) 162 556.31 T (v) 215.16 556.31 T (er) 220.01 556.31 T 5 9 Q (int level, size;) 180 532.98 T 3 10 Q (Do not put dif) 162 511.31 T (ferent types on the same line. Example:) 218.14 511.31 T 5 9 Q (int foo, fooarray[]; //WRONG!) 177 487.31 T 2 10 Q (Note:) 162 463.31 T 3 F (The e) 190.33 463.31 T (xamples abo) 212.67 463.31 T (v) 262.79 463.31 T (e use one space between the type and the identi\336er) 267.64 463.31 T (. Another) 469.54 463.31 T (acceptable alternati) 162 451.31 T (v) 239.22 451.31 T (e is to use tabs, e.g.:) 244.07 451.31 T 5 9 Q (int) 180 427.98 T (level;) 234 427.98 T ( // indentation level) 266.4 427.98 T (int) 180 418.98 T (size;) 234 418.98 T ( // size of table) 261 418.98 T (Object) 180 409.98 T (currentEntry;) 234 409.98 T ( // currently selected table entry) 304.2 409.98 T 2 12 Q ( 6.2) 126 374.98 T (Initialization) 162 374.98 T 3 10 Q (T) 162 352.31 T (ry to initialize local v) 167.76 352.31 T (ariables where the) 253.06 352.31 T (y\325) 325.66 352.31 T (re declared. The only reason not to initialize a) 333.49 352.31 T (v) 162 340.31 T (ariable where it\325) 166.75 340.31 T (s declared is if the initial v) 231.73 340.31 T (alue depends on some computation occurring \336rst.) 337.58 340.31 T 2 12 Q ( 6.3) 126 302.98 T (Placement) 162 302.98 T 3 10 Q (Put declarations only at the be) 162 280.31 T (ginning of blocks. \050A block is an) 282.67 280.31 T (y code surrounded by curly) 413.9 280.31 T (braces \322{\323 and \322}\323.\051 Don\325) 162 268.31 T (t w) 265.54 268.31 T (ait to declare v) 277.94 268.31 T (ariables until their \336rst use; it can confuse the) 336.84 268.31 T (unw) 162 256.31 T (ary programmer and hamper code portability within the scope.) 179.12 256.31 T 5 9 Q (void myMethod\050\051 {) 180 232.98 T ( int int1 = 0; // beginning of method block) 180 223.98 T ( if \050condition\051 {) 180 205.98 T ( int int2 = 0; // beginning of "if" block) 180 196.98 T ( ...) 180 187.98 T ( }) 180 178.98 T (}) 180 169.98 T 3 10 Q (The) 162 148.31 T (one) 179.78 148.31 T (e) 196.45 148.31 T (xception) 200.74 148.31 T (to) 237.41 148.31 T (the) 247.42 148.31 T (rule) 261.86 148.31 T (is) 279.64 148.31 T (inde) 288.54 148.31 T (x) 305.61 148.31 T (es) 310.46 148.31 T (of) 321.02 148.31 T 5 F -0.5 (for) 331.58 148.31 S 3 F (loops,) 350.31 148.31 T (which) 376.71 148.31 T (in) 403.38 148.31 T (Ja) 413.39 148.31 T (v) 421.52 148.31 T (a) 426.27 148.31 T (can) 432.94 148.31 T (be) 449.05 148.31 T (declared) 460.71 148.31 T (in) 496.81 148.31 T (the) 506.82 148.31 T 5 F -0.5 (for) 521.27 148.31 S 3 F (statement:) 162 136.31 T 5 9 Q (for \050int i = 0; i < maxLoops; i++\051 { ... }) 180 112.98 T FMENDPAGE %%EndPage: "9" 9 %%Page: "10" 10 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 1 K 0 8 Q 0 X (7 - Statements) 72 736.84 T (10) 72 62.56 T 3 10 Q (A) 162 683.31 T (v) 168.48 683.31 T (oid) 173.28 683.31 T (local) 188.3 683.31 T (declarations) 209.98 683.31 T (that) 260.54 683.31 T (hide) 277.78 683.31 T (declarations) 297.24 683.31 T (at) 347.8 683.31 T (higher) 357.26 683.31 T (le) 385.05 683.31 T (v) 392.02 683.31 T (els.) 396.87 683.31 T (F) 412.72 683.31 T (or) 418.13 683.31 T (e) 428.7 683.31 T (xample,) 432.99 683.31 T (do) 467.17 683.31 T (not) 479.41 683.31 T (declare) 494.43 683.31 T (the) 525.54 683.31 T (same v) 162 671.31 T (ariable name in an inner block:) 189.8 671.31 T 5 9 Q (int count;) 180 647.98 T (...) 180 638.98 T (myMethod\050\051 {) 180 629.98 T ( if \050condition\051 {) 180 620.98 T ( int count; // AVOID!) 180 611.98 T ( ...) 180 602.98 T ( }) 180 593.98 T ( ...) 180 584.98 T (}) 180 575.98 T 2 12 Q ( 6.4) 126 540.98 T (Class and Interface Dec) 162 540.98 T (larations) 297.14 540.98 T 3 10 Q (When coding Ja) 162 518.31 T (v) 226.23 518.31 T (a classes and interf) 230.98 518.31 T (aces, the follo) 306.69 518.31 T (wing formatting rules should be follo) 362.26 518.31 T (wed:) 511.17 518.31 T (\245) 162 500.31 T (No space between a method name and the parenthesis \322\050\322 starting its parameter list) 180 500.31 T (\245) 162 485.31 T (Open brace \322{\323 appears at the end of the same line as the declaration statement) 180 485.31 T (\245) 162 470.31 T (Closing brace \322}\323 starts a line by itself indented to match its corresponding opening) 180 470.31 T (statement, e) 180 458.31 T (xcept when it is a null statement the \322}\323 should appear immediately after the) 227.62 458.31 T (\322{\322) 180 446.31 T 5 9 Q (class Sample extends Object {) 180 422.98 T ( int ivar1;) 180 413.98 T ( int ivar2;) 180 404.98 T ( Sample\050int i, int j\051 {) 180 386.98 T ( ivar1 = i;) 180 377.98 T ( ivar2 = j;) 180 368.98 T ( }) 180 359.98 T ( int emptyMethod\050\051 {}) 180 341.98 T ( ...) 180 323.98 T (}) 180 314.98 T 3 10 Q (\245) 162 299.31 T (Methods are separated by a blank line) 180 299.31 T 72 236.95 540 239.98 C 0 0 0 1 0 0 0 1 K 162 239.98 540 239.98 2 L 0.25 H 2 Z 0 X N 0 0 612 792 C 0 0 0 1 0 0 0 1 K 2 14 Q 0 X (7 -) 126 244.64 T (Statements) 162 244.64 T 2 12 Q ( 7.1) 126 202.95 T (Simple Statements) 162 202.95 T 3 10 Q (Each line should contain at most one statement. Example:) 162 180.29 T 5 9 Q (argv++; // Correct) 180 156.95 T (argc++; // Correct) 180 147.95 T (argv++; argc--; // AVOID!) 180 138.95 T FMENDPAGE %%EndPage: "10" 10 %%Page: "11" 11 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 1 K 0 8 Q 0 X (7) 487.98 736.84 T (-) 493.91 736.84 T (Statements) 498.05 736.84 T (11) 531.1 62.56 T 2 12 Q ( 7.2) 126 676 T (Compound Statements) 162 676 T 3 10 Q (Compound statements are statements that contain lists of statements enclosed in braces) 162 653.33 T (\322) 162 641.33 T 5 F -0.5 ({) 166.44 641.33 S -0.5 (statements }) 177.44 641.33 S 3 F (\323. See the follo) 243.44 641.33 T (wing sections for e) 303.18 641.33 T (xamples.) 378.85 641.33 T (\245) 162 623.33 T (The enclosed statements should be indented one more le) 180 623.33 T (v) 405.27 623.33 T (el than the compound statement.) 410.12 623.33 T (\245) 162 608.33 T (The) 180 608.33 T (opening) 197.69 608.33 T (brace) 232.04 608.33 T (should) 255.83 608.33 T (be) 284.63 608.33 T (at) 296.21 608.33 T (the) 305.57 608.33 T (end) 319.92 608.33 T (of) 336.5 608.33 T (the) 346.96 608.33 T (line) 361.32 608.33 T (that) 378.45 608.33 T (be) 395.59 608.33 T (gins) 404.88 608.33 T (the) 423.69 608.33 T (compound) 438.04 608.33 T (statement;) 482.4 608.33 T (the) 525.64 608.33 T (closing brace should be) 180 596.33 T (gin a line and be indented to the be) 274 596.33 T (ginning of the compound) 413.83 596.33 T (statement.) 180 584.33 T (\245) 162 569.33 T (Braces are used around all statements, e) 180 569.33 T (v) 339.43 569.33 T (en single statements, when the) 344.28 569.33 T (y are part of a) 466.06 569.33 T (control structure, such as a) 180 557.33 T 5 F -0.5 (if-else) 289.42 557.33 S 3 F ( or) 327.92 557.33 T 5 F -0.5 (for) 341.25 557.33 S 3 F ( statement. This mak) 357.75 557.33 T (es it easier to add) 440.98 557.33 T (statements without accidentally introducing b) 180 545.33 T (ugs due to for) 362.01 545.33 T (getting to add braces.) 417.1 545.33 T 2 12 Q ( 7.3) 126 508 T (return Statements) 162 508 T 3 10 Q (A) 162 485.33 T 5 F -0.5 (return) 171.42 485.33 S 3 F (statement) 206.63 485.33 T (with) 247.16 485.33 T (a) 267.14 485.33 T (v) 273.79 485.33 T (alue) 278.54 485.33 T (should) 297.4 485.33 T (not) 326.27 485.33 T (use) 341.26 485.33 T (parentheses) 356.79 485.33 T (unless) 405.64 485.33 T (the) 432.84 485.33 T (y) 444.91 485.33 T (mak) 452.12 485.33 T (e) 469.24 485.33 T (the) 475.88 485.33 T (return) 490.3 485.33 T (v) 516.39 485.33 T (alue) 521.14 485.33 T (more ob) 162 473.33 T (vious in some w) 194.9 473.33 T (ay) 260.08 473.33 T (. Example:) 268.87 473.33 T 5 9 Q (return;) 180 450 T (return myDisk.size\050\051;) 180 429 T (return \050size ? size : defaultSize\051;) 180 408 T 2 12 Q ( 7.4) 126 373 T (if) 162 373 T (, if-else) 169.21 373 T (, if else-if else Statements) 210.68 373 T 3 10 Q (The) 162 350.33 T 5 F -0.5 (if-else) 180.05 350.33 S 3 F ( class of statements should ha) 218.55 350.33 T (v) 336.95 350.33 T (e the follo) 341.8 350.33 T (wing form:) 382.1 350.33 T 5 9 Q (if \050) 180 327 T 6 F (condition) 201.6 327 T 5 F (\051 {) 250.2 327 T 6 F (statements) 201.6 318 T 5 F (;) 255.6 318 T (}) 180 309 T (if \050) 180 288 T 6 F (condition) 201.6 288 T 5 F (\051 {) 250.2 288 T 6 F (statements) 201.6 279 T 5 F (;) 255.6 279 T (} else {) 180 270 T 6 F (statements) 201.6 261 T 5 F (;) 255.6 261 T (}) 180 252 T (if \050) 180 231 T 6 F (condition) 201.6 231 T 5 F (\051 {) 250.2 231 T 6 F (statements) 201.6 222 T 5 F (;) 255.6 222 T (} else if \050) 180 213 T 6 F (condition) 239.4 213 T 5 F (\051 {) 288 213 T 6 F (statements) 201.6 204 T 5 F (;) 255.6 204 T (} else {) 180 195 T 6 F (statements) 201.6 186 T 5 F (;) 255.6 186 T (}) 180 177 T 2 10 Q (Note:) 162 155.33 T 5 F -0.5 (if) 190.33 155.33 S 3 F ( statements al) 201.33 155.33 T (w) 255.67 155.33 T (ays use braces {}. A) 262.79 155.33 T (v) 343.57 155.33 T (oid the follo) 348.37 155.33 T (wing error) 397.01 155.33 T (-prone form:) 438.74 155.33 T 5 9 Q (if \050) 180 132 T 6 F (condition) 201.6 132 T 5 F (\051 //AVOID! THIS OMITS THE BRACES {}!) 250.2 132 T 6 F (statement) 201.6 123 T 5 F (;) 250.2 123 T FMENDPAGE %%EndPage: "11" 11 %%Page: "12" 12 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 1 K 0 8 Q 0 X (7 - Statements) 72 736.84 T (12) 72 62.56 T 2 12 Q ( 7.5) 126 681.98 T (f) 162 681.98 T (or Statements) 165.76 681.98 T 3 10 Q (A) 162 659.31 T 5 F -0.5 (for) 171.72 659.31 S 3 F ( statement should ha) 188.22 659.31 T (v) 269.96 659.31 T (e the follo) 274.81 659.31 T (wing form:) 315.11 659.31 T 5 9 Q (for \050) 180 635.98 T 6 F (initialization) 207 635.98 T 5 F (;) 282.6 635.98 T 6 F (condition) 293.4 635.98 T 5 F (;) 342 635.98 T 6 F (update) 352.8 635.98 T 5 F (\051 {) 385.2 635.98 T 6 F (statements) 201.6 626.98 T 5 F (;) 255.6 626.98 T (}) 180 617.98 T 3 10 Q (An) 162 596.31 T (empty) 176.54 596.31 T 5 F -0.5 (for) 203.85 596.31 S 3 F (statement) 222.67 596.31 T (\050one) 263.32 596.31 T (in) 283.41 596.31 T (which) 293.51 596.31 T (all) 320.26 596.31 T (the) 332.58 596.31 T (w) 347.12 596.31 T (ork) 354.24 596.31 T (is) 369.89 596.31 T (done) 378.87 596.31 T (in) 400.63 596.31 T (the) 410.73 596.31 T (initialization,) 425.27 596.31 T (condition,) 480.64 596.31 T (and) 523.24 596.31 T (update clauses\051 should ha) 162 584.31 T (v) 264.28 584.31 T (e the follo) 269.13 584.31 T (wing form:) 309.43 584.31 T 5 9 Q (for \050) 180 560.98 T 6 F (initialization) 207 560.98 T 5 F (;) 282.6 560.98 T 6 F (condition) 293.4 560.98 T 5 F (;) 342 560.98 T 6 F (update) 352.8 560.98 T 5 F (\051;) 385.2 560.98 T 3 10 Q (When) 162 539.31 T (using) 188.07 539.31 T (the) 211.93 539.31 T (comma) 226.33 539.31 T (operator) 257.96 539.31 T (in) 293.47 539.31 T (the) 303.44 539.31 T (initialization) 317.85 539.31 T (or) 370.6 539.31 T (update) 381.11 539.31 T (clause) 409.96 539.31 T (of) 437.14 539.31 T (a) 447.66 539.31 T 5 F -0.5 (for) 454.29 539.31 S 3 F (statement,) 472.97 539.31 T (a) 515.99 539.31 T (v) 520.23 539.31 T (oid) 525.03 539.31 T (the comple) 162 527.31 T (xity of using more than three v) 206.01 527.31 T (ariables. If needed, use separate statements before) 329.08 527.31 T (the) 162 515.31 T 5 F -0.5 (for) 176.72 515.31 S 3 F ( loop \050for the initialization clause\051 or at the end of the loop \050for the update clause\051.) 193.22 515.31 T 2 12 Q ( 7.6) 126 477.98 T (while Statements) 162 477.98 T 3 10 Q (A) 162 455.31 T 5 F -0.5 (while) 171.72 455.31 S 3 F ( statement should ha) 199.22 455.31 T (v) 280.96 455.31 T (e the follo) 285.81 455.31 T (wing form:) 326.11 455.31 T 5 9 Q (while \050) 180 431.98 T 6 F (condition) 217.8 431.98 T 5 F (\051 {) 266.4 431.98 T 6 F (statements) 201.6 422.98 T 5 F (;) 255.6 422.98 T (}) 180 413.98 T 3 10 Q (An empty) 162 392.31 T 5 F -0.5 (while) 204.22 392.31 S 3 F ( statement should ha) 231.72 392.31 T (v) 313.46 392.31 T (e the follo) 318.31 392.31 T (wing form:) 358.61 392.31 T 5 9 Q (while \050) 180 368.98 T 6 F (condition) 217.8 368.98 T 5 F (\051;) 266.4 368.98 T 2 12 Q ( 7.7) 126 333.98 T (do-while Statements) 162 333.98 T 3 10 Q (A) 162 311.31 T 5 F -0.5 (do-while) 171.72 311.31 S 3 F ( statement should ha) 215.72 311.31 T (v) 297.46 311.31 T (e the follo) 302.31 311.31 T (wing form:) 342.61 311.31 T 5 9 Q (do {) 180 287.98 T 6 F (statements) 201.6 278.98 T 5 F (;) 255.6 278.98 T (} while \050) 180 269.98 T 6 F (condition) 228.6 269.98 T 5 F (\051;) 277.2 269.98 T 2 12 Q ( 7.8) 126 234.98 T (s) 162 234.98 T (witc) 168.49 234.98 T (h Statements) 191.71 234.98 T 3 10 Q (A) 162 212.31 T 5 F -0.5 (switch) 171.72 212.31 S 3 F ( statement should ha) 204.72 212.31 T (v) 286.46 212.31 T (e the follo) 291.31 212.31 T (wing form:) 331.61 212.31 T FMENDPAGE %%EndPage: "12" 12 %%Page: "13" 13 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 1 K 0 8 Q 0 X (8) 483.09 736.84 T (-) 489.2 736.84 T (White) 493.54 736.84 T (Space) 515.65 736.84 T (13) 531.1 62.56 T 5 9 Q (switch \050) 180 678 T 6 F (condition) 223.2 678 T 5 F (\051 {) 271.8 678 T (case ABC:) 180 669 T 6 F (statements) 201.6 660 T 5 F (;) 255.6 660 T ( /* falls through */) 180 651 T (case DEF:) 180 642 T 6 F (statements) 201.6 633 T 5 F (;) 255.6 633 T ( break;) 180 624 T (case XYZ:) 180 606 T 6 F (statements) 201.6 597 T 5 F (;) 255.6 597 T ( break;) 180 588 T (default:) 180 570 T 6 F (statements) 201.6 561 T 5 F (;) 255.6 561 T ( break;) 180 552 T (}) 180 543 T 3 10 Q (Ev) 162 521.33 T (ery) 172.96 521.33 T (time) 187.96 521.33 T (a) 207.98 521.33 T (case) 214.65 521.33 T (f) 234.09 521.33 T (alls) 237.32 521.33 T (through) 253.45 521.33 T (\050doesn\325) 286.79 521.33 T (t) 316.6 521.33 T (include) 321.61 521.33 T (a) 353.28 521.33 T 5 F -0.5 (break) 359.96 521.33 S 3 F (statement\051,) 389.69 521.33 T (add) 436.08 521.33 T (a) 452.76 521.33 T (comment) 459.43 521.33 T (where) 498.88 521.33 T (the) 525.55 521.33 T 5 F -0.5 (break) 162 509.33 S 3 F (statement) 191.84 509.33 T (w) 232.5 509.33 T (ould) 239.62 509.33 T (normally) 259.74 509.33 T (be.) 298.18 509.33 T (This) 312.46 509.33 T (is) 332.57 509.33 T (sho) 341.58 509.33 T (wn) 355.22 509.33 T (in) 369.77 509.33 T (the) 379.89 509.33 T (preceding) 394.44 509.33 T (code) 436.21 509.33 T (e) 457.42 509.33 T (xample) 461.71 509.33 T (with) 493.49 509.33 T (the) 513.6 509.33 T (/) 162 497.33 T 5 F -0.5 (*) 164.78 497.33 S -0.5 (falls through */) 175.78 497.33 S 3 F ( comment.) 263.78 497.33 T (Ev) 162 473.33 T (ery) 172.96 473.33 T 5 F -0.5 (switch) 188.23 473.33 S 3 F ( statement should include a def) 221.23 473.33 T (ault case. The) 345.28 473.33 T 5 F -0.5 (break) 403.04 473.33 S 3 F ( in the def) 430.54 473.33 T (ault case is) 470.71 473.33 T (redundant, b) 162 461.33 T (ut it pre) 211.79 461.33 T (v) 242.65 461.33 T (ents a f) 247.5 461.33 T (all-through error if later another) 276.28 461.33 T 5 F -0.5 (case) 406.52 461.33 S 3 F ( is added.) 428.52 461.33 T 2 12 Q ( 7.9) 126 424 T (tr) 162 424 T (y-catc) 170.78 424 T (h Statements) 205.34 424 T 3 10 Q (A) 162 401.33 T 5 F -0.5 (try-catch) 171.72 401.33 S 3 F ( statement should ha) 221.22 401.33 T (v) 302.96 401.33 T (e the follo) 307.81 401.33 T (wing format:) 348.11 401.33 T 5 9 Q (try {) 180 378 T 6 F (statements) 201.6 369 T 5 F (;) 255.6 369 T (} catch \050ExceptionClass e\051 {) 180 360 T 6 F (statements) 201.6 351 T 5 F (;) 255.6 351 T (}) 180 342 T 3 10 Q (A) 162 320.33 T 5 F -0.5 (try-catch) 171.72 320.33 S 3 F ( statement may also be follo) 221.22 320.33 T (wed by) 333.46 320.33 T 5 F -0.5 (finally) 367.62 320.33 S 3 F (,) 405.47 320.33 T (which e) 162 308.33 T (x) 193.23 308.33 T (ecutes re) 198.08 308.33 T (g) 233.19 308.33 T (ardless of whether or not the) 238.14 308.33 T 5 F -0.5 (try) 354.78 308.33 S 3 F ( block has completed successfully) 371.28 308.33 T (.) 506.72 308.33 T 5 9 Q (try {) 180 285 T 6 F (statements) 201.6 276 T 5 F (;) 255.6 276 T (} catch \050ExceptionClass e\051 {) 180 267 T 6 F (statements) 201.6 258 T 5 F (;) 255.6 258 T (} finally {) 180 249 T 6 F (statements;) 201.6 240 T 5 F (}) 180 231 T 72 149.98 540 153 C 0 0 0 1 0 0 0 1 K 162 153 540 153 2 L 0.25 H 2 Z 0 X N 0 0 612 792 C 0 0 0 1 0 0 0 1 K 2 14 Q 0 X (8 -) 126 157.67 T (White Space) 162 157.67 T 2 12 Q ( 8.1) 126 115.98 T (Blank Lines) 162 115.98 T 3 10 Q (Blank lines impro) 162 93.31 T (v) 233.52 93.31 T (e readability by setting of) 238.37 93.31 T (f sections of code that are logically related.) 340.33 93.31 T FMENDPAGE %%EndPage: "13" 13 %%Page: "14" 14 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 1 K 0 8 Q 0 X (8 - White Space) 72 736.84 T (14) 72 62.56 T 3 10 Q (T) 162 683.31 T (w) 167.31 683.31 T (o blank lines should al) 174.43 683.31 T (w) 264.33 683.31 T (ays be used in the follo) 271.45 683.31 T (wing circumstances:) 363.69 683.31 T (\245) 162 665.31 T (Between sections of a source \336le) 180 665.31 T (\245) 162 650.31 T (Between class and interf) 180 650.31 T (ace de\336nitions) 277.93 650.31 T (One blank line should al) 162 626.31 T (w) 259.67 626.31 T (ays be used in the follo) 266.79 626.31 T (wing circumstances:) 359.03 626.31 T (\245) 162 608.31 T (Between methods) 180 608.31 T (\245) 162 593.31 T (Between the local v) 180 593.31 T (ariables in a method and its \336rst statement) 258.9 593.31 T (\245) 162 578.31 T (Before a block \050see section 5.1.1\051 or single-line \050see section 5.1.2\051 comment) 180 578.31 T (\245) 162 563.31 T (Between logical sections inside a method to impro) 180 563.31 T (v) 381.78 563.31 T (e readability) 386.63 563.31 T 2 12 Q ( 8.2) 126 525.98 T (Blank Spaces) 162 525.98 T 3 10 Q (Blank spaces should be used in the follo) 162 503.31 T (wing circumstances:) 322.57 503.31 T (\245) 162 485.31 T (A k) 180 485.31 T (e) 194.62 485.31 T (yw) 198.91 485.31 T (ord follo) 211.03 485.31 T (wed by a parenthesis should be separated by a space. Example:) 245.5 485.31 T 5 9 Q ( while \050true\051 {) 180 461.98 T ( ...) 180 452.98 T ( }) 180 443.98 T 3 10 Q (Note that a blank space should not be used between a method name and its opening) 180 419.31 T (parenthesis. This helps to distinguish k) 180 407.31 T (e) 335.46 407.31 T (yw) 339.75 407.31 T (ords from method calls.) 351.87 407.31 T (\245) 162 392.31 T (A blank space should appear after commas in ar) 180 392.31 T (gument lists.) 371.99 392.31 T (\245) 162 377.31 T (All binary operators e) 180 377.31 T (xcept) 267.33 377.31 T 5 F -0.5 (.) 291.49 377.31 S 3 F ( should be separated from their operands by spaces. Blank) 296.99 377.31 T (spaces should ne) 180 365.31 T (v) 246.96 365.31 T (er separate unary operators such as unary minus, increment \050\322++\323\051, and) 251.81 365.31 T (decrement \050\322--\323\051 from their operands. Example:) 180 353.31 T 5 9 Q ( a += c + d;) 211.5 330.98 T ( a = \050a + b\051 / \050c * d\051;) 201.6 321.98 T ( while \050d++ = s++\051 {) 201.6 303.98 T ( n++;) 201.6 294.98 T ( }) 201.6 285.98 T ( prints\050"size is " + foo + "\134n"\051;) 201.6 276.98 T 3 10 Q (\245) 162 253.31 T (The e) 180 253.31 T (xpressions in a) 202.34 253.31 T 5 F -0.5 (for) 264.28 253.31 S 3 F ( statement should be separated by blank spaces. Example:) 280.78 253.31 T 5 9 Q (for \050expr1; expr2; expr3\051) 211.5 230.98 T 3 10 Q (\245) 162 207.31 T (Casts should be follo) 180 207.31 T (wed by a blank space. Examples:) 263.92 207.31 T 5 9 Q ( myMethod\050\050byte\051 aNum, \050Object\051 x\051;) 175.5 184.98 T ( myMethod\050\050int\051 \050cp + 5\051, \050\050int\051 \050i + 3\051\051) 158.4 175.98 T ( + 1\051;) 158.4 166.98 T FMENDPAGE %%EndPage: "14" 14 %%Page: "15" 15 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 1 K 0 8 Q 0 X (9) 454.19 736.84 T (-) 460.31 736.84 T (Naming) 464.64 736.84 T (Conventions) 493.87 736.84 T (15) 531.1 62.56 T 72 666.98 540 670 C 0 0 0 1 0 0 0 1 K 162 670 540 670 2 L 0.25 H 2 Z 0 X N 0 0 612 792 C 0 0 0 1 0 0 0 1 K 2 14 Q 0 X (9 -) 126 674.67 T (Naming Con) 162 674.67 T (ventions) 243.89 674.67 T 3 10 Q (Naming con) 162 646.31 T (v) 210.76 646.31 T (entions mak) 215.61 646.31 T (e programs more understandable by making them easier to read.) 264.12 646.31 T (The) 162 634.31 T (y) 177.4 634.31 T (can) 184.56 634.31 T (also) 200.6 634.31 T (gi) 218.86 634.31 T (v) 226.39 634.31 T (e) 231.24 634.31 T (information) 237.84 634.31 T (about) 287.22 634.31 T (the) 311.6 634.31 T (function) 325.98 634.31 T (of) 361.46 634.31 T (the) 371.95 634.31 T (identi\336er\321for) 386.33 634.31 T (e) 446.26 634.31 T (xample,) 450.55 634.31 T (whether) 484.65 634.31 T (it\325) 519.01 634.31 T (s) 527.35 634.31 T (a) 533.4 634.31 T (constant, package, or class\321which can be helpful in understanding the code.) 162 622.31 T 2 11 Q (Identi\336er T) 78 567.64 T (ype) 133.57 567.64 T (Rules f) 177.6 567.64 T (or Naming) 214.06 567.64 T (Examples) 376.81 567.64 T 3 10 Q (P) 78 543.31 T (ackages) 83.41 543.31 T (The pre\336x of a unique package name is) 177.6 543.31 T (al) 177.6 531.31 T (w) 184.72 531.31 T (ays written in all-lo) 191.84 531.31 T (wercase ASCII letters) 269.64 531.31 T (and should be one of the top-le) 177.6 519.31 T (v) 301.22 519.31 T (el domain) 306.07 519.31 T (names, currently com, edu, go) 177.6 507.31 T (v) 298.26 507.31 T (, mil, net, or) 302.61 507.31 T (g,) 351.32 507.31 T (or) 177.6 495.31 T (one) 188.41 495.31 T (of) 205.33 495.31 T (the) 216.13 495.31 T (English) 230.83 495.31 T (tw) 263.87 495.31 T (o-letter) 273.77 495.31 T (codes) 305.12 495.31 T (identify-) 330.37 495.31 T (ing countries as speci\336ed in ISO Standard) 177.6 483.31 T (3166, 1981.) 177.6 471.31 T (Subsequent components of the package name) 177.6 453.31 T (v) 177.6 441.31 T (ary according to an or) 182.35 441.31 T (g) 269.92 441.31 T (anization\325) 274.87 441.31 T (s o) 314.31 441.31 T (wn inter-) 325.45 441.31 T (nal naming con) 177.6 429.31 T (v) 238.86 429.31 T (entions. Such con) 243.71 429.31 T (v) 314.14 429.31 T (entions) 318.99 429.31 T (might) 177.6 417.31 T (specify) 203.35 417.31 T (that) 234.65 417.31 T (certain) 252.06 417.31 T (directory) 281.68 417.31 T (name) 320.19 417.31 T (com-) 344.26 417.31 T (ponents be di) 177.6 405.31 T (vision, department, project,) 230.68 405.31 T (machine, or login names.) 177.6 393.31 T 5 F (com.sun.eng) 376.81 543.31 T (com.apple.quicktime.v2) 376.81 519.31 T (edu.cmu.cs.bovik.cheese) 376.81 495.31 T 3 F (Classes) 78 371.31 T (Class names should be nouns, in mix) 177.6 371.31 T (ed case) 325.51 371.31 T (with the \336rst letter of each internal w) 177.6 359.31 T (ord capi-) 325.53 359.31 T (talized. T) 177.6 347.31 T (ry to k) 215.02 347.31 T (eep your class names simple) 241.03 347.31 T (and descripti) 177.6 335.31 T (v) 228.73 335.31 T (e. Use whole w) 233.58 335.31 T (ords\321a) 295.13 335.31 T (v) 326.59 335.31 T (oid) 331.39 335.31 T (acron) 177.6 323.31 T (yms and abbre) 199.66 323.31 T (viations \050unless the abbre-) 257.73 323.31 T (viation is much more widely used than the) 177.6 311.31 T (long form, such as URL or HTML\051.) 177.6 299.31 T 5 F (class Raster;) 376.81 371.31 T (class ImageSprite;) 376.81 359.31 T 3 F (Interf) 78 277.31 T (aces) 100.11 277.31 T (Interf) 177.6 277.31 T (ace names should be capitalized lik) 199.71 277.31 T (e) 340.97 277.31 T (class names.) 177.6 265.31 T 5 F (interface RasterDelegate;) 376.81 277.31 T (interface Storing;) 376.81 265.31 T 3 F (Methods) 78 243.31 T (Methods should be v) 177.6 243.31 T (erbs, in mix) 261.06 243.31 T (ed case with) 308.41 243.31 T (the) 177.6 231.31 T (\336rst) 192.29 231.31 T (letter) 210.32 231.31 T (lo) 233.34 231.31 T (wercase,) 240.87 231.31 T (with) 278.03 231.31 T (the) 298.28 231.31 T (\336rst) 312.97 231.31 T (letter) 330.99 231.31 T (of) 354.01 231.31 T (each internal w) 177.6 219.31 T (ord capitalized.) 238.59 219.31 T 5 F (run\050\051;) 376.81 243.31 T (runFast\050\051;) 376.81 231.31 T (getBackground\050\051;) 376.81 219.31 T 171.6 582.98 171.6 209.98 2 L V 0.5 H 0 Z N 72 555.98 540 555.98 2 L V N FMENDPAGE %%EndPage: "15" 15 %%Page: "16" 16 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 1 K 0 8 Q 0 X (10 - Programming Practices) 72 736.84 T (16) 72 62.56 T 72 351.95 540 354.98 C 0 0 0 1 0 0 0 1 K 162 354.98 540 354.98 2 L 0.25 H 2 Z 0 X N 0 0 612 792 C 0 0 0 1 0 0 0 1 K 2 14 Q 0 X (10 -) 126 359.64 T (Pr) 162 359.64 T (ogramming Practices) 176.5 359.64 T 2 12 Q ( 10.1) 126 317.95 T (Pr) 162 317.95 T (o) 174.43 317.95 T (viding Access to Instance and Class V) 181.52 317.95 T (ariab) 399.55 317.95 T (les) 428.11 317.95 T 3 10 Q (Don\325) 162 295.29 T (t mak) 182.37 295.29 T (e an) 204.77 295.29 T (y instance or class v) 221 295.29 T (ariable public without good reason. Often, instance) 301.29 295.29 T (v) 162 283.29 T (ariables don\325) 166.75 283.29 T (t need to be e) 218.5 283.29 T (xplicitly set or gotten\321often that happens as a side ef) 271.67 283.29 T (fect of) 486.67 283.29 T (method calls.) 162 271.29 T (One) 162 247.29 T (e) 180.82 247.29 T (xample) 185.11 247.29 T (of) 216.71 247.29 T (appropriate) 227.21 247.29 T (public) 274.91 247.29 T (instance) 302.07 247.29 T (v) 337.01 247.29 T (ariables) 341.76 247.29 T (is) 375.02 247.29 T (the) 383.85 247.29 T (case) 398.23 247.29 T (where) 417.61 247.29 T (the) 444.2 247.29 T (class) 458.58 247.29 T (is) 480.18 247.29 T (essentially) 489.02 247.29 T (a) 533.4 247.29 T (data) 162 235.29 T (structure,) 181 235.29 T (with) 220.84 235.29 T (no) 240.96 235.29 T (beha) 253.31 235.29 T (vior) 271.99 235.29 T (.) 287.55 235.29 T (In) 292.39 235.29 T (other) 303.07 235.29 T (w) 325.96 235.29 T (ords,) 333.08 235.29 T (if) 355.14 235.29 T (you) 363.6 235.29 T (w) 380.94 235.29 T (ould) 388.06 235.29 T (ha) 408.19 235.29 T (v) 417.43 235.29 T (e) 422.28 235.29 T (used) 429.06 235.29 T (a) 449.74 235.29 T 5 F -0.5 (struct) 456.52 235.29 S 3 F (instead) 491.87 235.29 T (of) 522.54 235.29 T (a) 533.22 235.29 T (class \050if Ja) 162 223.29 T (v) 204.01 223.29 T (a supported) 208.76 223.29 T 5 F -0.5 (struct\051) 257.64 223.29 S 3 F (, then it\325) 296.14 223.29 T (s appropriate to mak) 329.2 223.29 T (e the class\325) 411.03 223.29 T (s instance v) 454.91 223.29 T (ariables) 501.32 223.29 T (public.) 162 211.29 T 2 12 Q ( 10.2) 126 173.95 T (Ref) 162 173.95 T (erring to Class V) 181.21 173.95 T (ariab) 275.86 173.95 T (les and Methods) 304.42 173.95 T 3 10 Q (A) 162 151.29 T (v) 168.48 151.29 T (oid using an object to access a class \050static\051 v) 173.28 151.29 T (ariable or method. Use a class name instead.) 353.83 151.29 T (F) 162 139.29 T (or e) 167.41 139.29 T (xample:) 182.53 139.29 T 5 9 Q (classMethod\050\051; //OK) 180 115.95 T (AClass.classMethod\050\051; //OK) 180 106.95 T 3 10 Q (V) 78 650.31 T (ariables) 84.11 650.31 T (Except for v) 177.6 650.31 T (ariables, all instance, class, and) 226.78 650.31 T (class constants are in mix) 177.6 638.31 T (ed case with a lo) 279.66 638.31 T (wer-) 346.06 638.31 T (case \336rst letter) 177.6 626.31 T (. Internal w) 235.37 626.31 T (ords start with capi-) 281.09 626.31 T (tal) 177.6 614.31 T (letters.) 189.72 614.31 T (V) 218.78 614.31 T (ariable) 224.89 614.31 T (names) 254.22 614.31 T (should) 281.89 614.31 T (not) 310.67 614.31 T (start) 325.57 614.31 T (with) 344.91 614.31 T (underscore _ or dollar sign $ characters, e) 177.6 602.31 T (v) 344.52 602.31 T (en) 349.37 602.31 T (though both are allo) 177.6 590.31 T (wed.) 257.62 590.31 T (V) 177.6 572.31 T (ariable names should be short yet meaning-) 183.71 572.31 T (ful. The choice of a v) 177.6 560.31 T (ariable name should be) 262.88 560.31 T (mnemonic\321) 177.6 548.31 T (that) 231.8 548.31 T (is,) 248.78 548.31 T (designed) 259.93 548.31 T (to) 297.46 548.31 T (indicate) 307.21 548.31 T (to) 340.85 548.31 T (the) 350.61 548.31 T (casual observ) 177.6 536.31 T (er the intent of its use. One-char-) 231.6 536.31 T (acter) 177.6 524.31 T (v) 199.45 524.31 T (ariable) 204.2 524.31 T (names) 233.84 524.31 T (should) 261.81 524.31 T (be) 290.9 524.31 T (a) 302.76 524.31 T (v) 307 524.31 T (oided) 311.8 524.31 T (e) 336.44 524.31 T (xcept) 340.73 524.31 T (for temporary \322thro) 177.6 512.31 T (w) 255.66 512.31 T (a) 262.78 512.31 T (w) 267.07 512.31 T (ay\323 v) 274.19 512.31 T (ariables. Com-) 295.32 512.31 T (mon) 177.6 500.31 T (names) 197.5 500.31 T (for) 225.17 500.31 T (temporary) 238.95 500.31 T (v) 282.16 500.31 T (ariables) 286.91 500.31 T (are) 320.13 500.31 T 5 F -0.5 (i) 334.46 500.31 S 3 F (,) 339.96 500.31 T 5 F -0.5 (j) 344.58 500.31 S 3 F (,) 350.08 500.31 T 5 F -0.5 (k) 354.69 500.31 S 3 F (,) 360.19 500.31 T 5 F -0.5 (m) 177.6 488.31 S 3 F (,) 183.1 488.31 T (and) 187.87 488.31 T 5 F -0.5 (n) 204.58 488.31 S 3 F (for) 212.35 488.31 T (inte) 226.28 488.31 T (gers;) 241.13 488.31 T 5 F -0.5 (c) 262.84 488.31 S 3 F (,) 268.34 488.31 T 5 F -0.5 (d) 273.11 488.31 S 3 F (,) 278.61 488.31 T (and) 283.37 488.31 T 5 F -0.5 (e) 300.08 488.31 S 3 F (for) 307.85 488.31 T (characters.) 321.78 488.31 T 5 F (int i;) 376.81 650.31 T (char c;) 376.81 638.31 T (float myWidth;) 376.81 626.31 T 3 F (Constants) 78 466.31 T (The names of v) 177.6 466.31 T (ariables declared class con-) 239.28 466.31 T (stants and of ANSI constants should be all) 177.6 454.31 T (uppercase with w) 177.6 442.31 T (ords separated by under-) 247.48 442.31 T (scores \050\322_\323\051. \050ANSI constants should be) 177.6 430.31 T (a) 177.6 418.31 T (v) 181.84 418.31 T (oided, for ease of deb) 186.64 418.31 T (ugging.\051) 272.8 418.31 T 5 7 Q (static final int MIN_WIDTH = 4;) 376.81 466.31 T (static final int MAX_WIDTH = 999;) 376.81 448.31 T (static final int GET_THE_CPU = 1;) 376.81 432.31 T 2 11 Q (Identi\336er T) 78 674.64 T (ype) 133.57 674.64 T (Rules f) 177.6 674.64 T (or Naming) 214.06 674.64 T (Examples) 376.81 674.64 T 171.6 689.98 171.6 408.98 2 L V 0.5 H 0 Z N 72 662.98 540 662.98 2 L V N FMENDPAGE %%EndPage: "16" 16 %%Page: "17" 17 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 1 K 0 8 Q 0 X (10) 440.86 736.84 T (-) 451.43 736.84 T (Programming) 455.76 736.84 T (Practices) 505.44 736.84 T (17) 531.1 62.56 T 5 9 Q (anObject.classMethod\050\051; //AVOID!) 180 678 T 2 12 Q ( 10.3) 126 643 T (Constants) 162 643 T 3 10 Q (Numerical constants \050literals\051 should not be coded directly) 162 620.33 T (, e) 395.48 620.33 T (xcept for -1, 0, and 1, which can) 404.77 620.33 T (appear in a) 162 608.33 T 5 F -0.5 (for) 208.37 608.33 S 3 F ( loop as counter v) 224.87 608.33 T (alues.) 295.72 608.33 T 2 12 Q ( 10.4) 126 571 T (V) 162 571 T (ariab) 169.28 571 T (le Assignments) 197.84 571 T 3 10 Q (A) 162 548.33 T (v) 168.48 548.33 T (oid assigning se) 173.28 548.33 T (v) 236.92 548.33 T (eral v) 241.77 548.33 T (ariables to the same v) 264.01 548.33 T (alue in a single statement. It is hard to read.) 350.41 548.33 T (Example:) 162 536.33 T 5 9 Q (fooBar.fChar = barFoo.lchar = 'c'; // AVOID!) 180 513 T 3 10 Q (Do) 162 491.33 T (not) 176.49 491.33 T (use) 191.54 491.33 T (the) 207.14 491.33 T (assignment) 221.63 491.33 T (operator) 268.9 491.33 T (in) 304.49 491.33 T (a) 314.54 491.33 T (place) 321.24 491.33 T (where) 344.61 491.33 T (it) 371.31 491.33 T (can) 379.14 491.33 T (be) 395.29 491.33 T (easily) 407 491.33 T (confused) 432.6 491.33 T (with) 470.97 491.33 T (the) 491.02 491.33 T (equality) 505.51 491.33 T (operator) 162 479.33 T (. Example:) 194.77 479.33 T 5 9 Q (if \050c++ = d++\051 { // AVOID! \050Java disallows\051) 180 456 T ( ...) 180 447 T (}) 180 438 T 3 10 Q (should be written as) 162 416.33 T 5 9 Q (if \050\050c++ = d++\051 != 0\051 {) 180 393 T ( ...) 180 384 T (}) 180 375 T 3 10 Q (Do not use embedded assignments in an attempt to impro) 162 353.33 T (v) 391.56 353.33 T (e run-time performance. This is the) 396.41 353.33 T (job of the compiler) 162 341.33 T (. Example:) 237.83 341.33 T 5 9 Q (d = \050a = b + c\051 + r; // AVOID!) 180 318 T 3 10 Q (should be written as) 162 296.33 T 5 9 Q (a = b + c;) 180 273 T (d = a + r;) 180 264 T 2 12 Q ( 10.5) 126 229 T (Miscellaneous Practices) 162 229 T 1 10 Q (10.5.1) 126 200.33 T (P) 162 200.33 T (arentheses) 168.27 200.33 T 3 F (It) 162 178.33 T (is) 170.23 178.33 T (generally) 179.01 178.33 T (a) 218.34 178.33 T (good) 224.89 178.33 T (idea) 247.01 178.33 T (to) 265.78 178.33 T (use) 275.68 178.33 T (parentheses) 291.12 178.33 T (liberally) 339.89 178.33 T (in) 375.33 178.33 T (e) 385.23 178.33 T (xpressions) 389.52 178.33 T (in) 433.85 178.33 T (v) 441.23 178.33 T (olving) 446.03 178.33 T (mix) 473.71 178.33 T (ed) 489.12 178.33 T (operators) 500.67 178.33 T (to a) 162 166.33 T (v) 176.52 166.33 T (oid operator precedence problems. Ev) 181.32 166.33 T (en if the operator precedence seems clear to you, it) 333.07 166.33 T (might not be to others\321you shouldn\325) 162 154.33 T (t assume that other programmers kno) 312.1 154.33 T (w precedence as) 460.44 154.33 T (well as you do.) 162 142.33 T 5 9 Q (if \050a == b && c == d\051) 180 119 T ( // AVOID!) 315 119 T (if \050\050a == b\051 && \050c == d\051\051 // USE) 180 98 T FMENDPAGE %%EndPage: "17" 17 %%Page: "18" 18 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 1 K 0 8 Q 0 X (11 - Code Examples) 72 736.84 T (18) 72 62.56 T 1 10 Q (10.5.2) 126 683.31 T (Retur) 162 683.31 T (ning V) 186.7 683.31 T (alues) 214.35 683.31 T 3 F (T) 162 661.31 T (ry to mak) 167.76 661.31 T (e the structure of your program match the intent. Example:) 205.99 661.31 T 5 9 Q (if \050) 180 637.98 T 6 F (booleanExpression) 201.6 637.98 T 5 F (\051 {) 293.4 637.98 T ( return true;) 180 628.98 T (} else {) 180 619.98 T ( return false;) 180 610.98 T (}) 180 601.98 T 3 10 Q (should instead be written as) 162 580.31 T 5 9 Q (return) 180 556.98 T 6 F (booleanExpression) 217.8 556.98 T 5 F (;) 309.6 556.98 T 3 10 Q (Similarly) 162 535.31 T (,) 198.58 535.31 T 5 9 Q (if \050condition\051 {) 180 511.98 T ( return x;) 180 502.98 T (}) 180 493.98 T (return y;) 180 484.98 T 3 10 Q (should be written as) 162 463.31 T 5 9 Q (return \050condition ? x : y\051;) 180 439.98 T 1 10 Q (10.5.3) 126 412.31 T (Expressions bef) 162 412.31 T (ore \324?\325 in the Conditional Oper) 232.84 412.31 T (ator) 365.02 412.31 T 3 F (If) 162 390.31 T (an) 170.84 390.31 T (e) 182.46 390.31 T (xpression) 186.75 390.31 T (containing) 227.26 390.31 T (a) 271.65 390.31 T (binary) 278.27 390.31 T (operator) 306 390.31 T (appears) 341.5 390.31 T (before) 374.22 390.31 T (the) 401.94 390.31 T 5 F -0.5 (?) 416.33 390.31 S 3 F (in) 424.01 390.31 T (the) 433.97 390.31 T (ternary) 448.37 390.31 T 5 F -0.5 (?:) 478.87 390.31 S 3 F (operator) 494.66 390.31 T (,) 527.58 390.31 T (it) 532.26 390.31 T (should be parenthesized. Example:) 162 378.31 T 5 9 Q (\050x >= 0\051 ? x : -x;) 180 354.98 T 1 10 Q (10.5.4) 126 327.31 T (Special Comments) 162 327.31 T 3 F (Use) 162 305.31 T 5 F -0.5 (XXX) 179.75 305.31 S 3 F (in) 198.45 305.31 T (a) 208.43 305.31 T (comment) 215.07 305.31 T (to) 254.48 305.31 T (\337ag) 264.46 305.31 T (something) 281.66 305.31 T (that) 325.53 305.31 T (is) 342.73 305.31 T (bogus) 351.6 305.31 T (b) 377.69 305.31 T (ut) 382.49 305.31 T (w) 392.47 305.31 T (orks.) 399.59 305.31 T (Use) 421.51 305.31 T 5 F -0.5 (FIXME) 439.25 305.31 S 3 F (to) 468.95 305.31 T (\337ag) 478.93 305.31 T (something) 496.13 305.31 T (that is bogus and brok) 162 293.31 T (en.) 250.23 293.31 T 72 230.95 540 233.98 C 0 0 0 1 0 0 0 1 K 162 233.98 540 233.98 2 L 0.25 H 2 Z 0 X N 0 0 612 792 C 0 0 0 1 0 0 0 1 K 2 14 Q 0 X (11 -) 126 238.64 T (Code Examples) 162 238.64 T 2 12 Q ( 11.1) 126 196.95 T (Ja) 162 196.95 T (v) 175.16 196.95 T (a Sour) 181.6 196.95 T (ce File Example) 218.7 196.95 T 3 10 Q (The) 162 174.29 T (follo) 179.79 174.29 T (wing) 198.43 174.29 T (e) 220.66 174.29 T (xample) 224.95 174.29 T (sho) 256.63 174.29 T (ws) 270.27 174.29 T (ho) 283.62 174.29 T (w) 293.37 174.29 T (to) 302.82 174.29 T (format) 312.84 174.29 T (a) 341.74 174.29 T (Ja) 348.42 174.29 T (v) 356.55 174.29 T (a) 361.3 174.29 T (source) 367.97 174.29 T (\336le) 396.31 174.29 T (containing) 411.33 174.29 T (a) 455.78 174.29 T (single) 462.46 174.29 T (public) 488.59 174.29 T (class.) 515.82 174.29 T (Interf) 162 162.29 T (aces are formatted similarly) 184.11 162.29 T (. F) 294.82 162.29 T (or more information, see \322Class and Interf) 305.23 162.29 T (ace) 474.26 162.29 T (Declarations\323 on page 3 and \322Documentation Comments\323 on page 8) 162 150.29 T FMENDPAGE %%EndPage: "18" 18 %%Page: "19" 19 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 1 K 0 8 Q 0 X (11) 467.53 736.84 T (-) 478.09 736.84 T (Code) 482.42 736.84 T (Examples) 503.21 736.84 T (19) 531.1 62.56 T 5 9 Q (/*) 144 678 T ( * @\050#\051Blah.java 1.82 99/03/18) 144 669 T ( *) 144 660 T ( * Copyright \050c\051 1994-1999 Sun Microsystems, Inc.) 144 651 T ( * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.) 144 642 T ( * All Rights Reserved.) 144 633 T ( *) 144 624 T ( * This software is the confidential and proprietary information of Sun) 144 615 T ( * Microsystems, Inc. \050"Confidential Information"\051. You shall not) 144 606 T ( * disclose such Confidential Information and shall use it only in) 144 597 T ( * accordance with the terms of the license agreement you entered into) 144 588 T ( * with Sun.) 144 579 T ( */) 144 570 T (package java.blah;) 144 540 T (import java.blah.blahdy.BlahBlah;) 144 522 T (/**) 144 504 T ( *) 144 495 T 6 F (Class description goes here) 160.2 495 T 5 F (.) 306 495 T ( *) 144 486 T ( * @version) 144 477 T 6 F (1.82 18 Mar 1999) 234 477 T 5 F ( * @author) 144 468 T 6 F (Firstname Lastname) 234 468 T 5 F ( */) 144 459 T (public class Blah extends SomeClass {) 144 450 T 6 F ( /* A class implementation comment can go here. */) 144 441 T 5 F ( /**) 144 423 T 6 F (classVar1 documentation comment) 187.2 423 T 5 F ( */) 354.6 423 T ( public static int classVar1;) 144 414 T ( /**) 144 393 T (*) 171 384 T 6 F (classVar2 documentation comment that happens to be) 181.8 384 T 5 F ( *) 144 375 T 6 F (more than one line long) 181.8 375 T 5 F ( */) 144 366 T ( private static Object classVar2;) 144 357 T ( /**) 144 336 T 6 F (instanceVar1 documentation comment) 187.2 336 T 5 F ( */) 370.8 336 T ( public Object instanceVar1;) 144 327 T ( /**) 144 306 T 6 F (instanceVar2 documentation comment) 187.2 306 T 5 F ( */) 370.8 306 T ( protected int instanceVar2;) 144 297 T ( /**) 144 276 T 6 F (instanceVar3 documentation comment) 187.2 276 T 5 F ( */) 370.8 276 T ( private Object[] instanceVar3;) 144 267 T ( /**) 144 246 T ( * ...) 144 237 T 6 F (constructor Blah documentation comment...) 198 237 T 5 F ( */) 144 228 T ( public Blah\050\051 {) 144 219 T 6 F ( // ...implementation goes here...) 149.4 210 T 5 F ( }) 144 201 T ( /**) 144 180 T ( * ...) 144 171 T 6 F (method doSomething documentation comment...) 198 171 T 5 F ( */) 144 162 T ( public void doSomething\050\051 {) 144 153 T 6 F ( // ...implementation goes here...) 144 144 T 5 F ( }) 144 135 T FMENDPAGE %%EndPage: "19" 19 %%Page: "20" 20 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 1 K 0 8 Q 0 X (11 - Code Examples) 72 736.84 T (20) 72 62.56 T 5 9 Q ( /**) 144 683.98 T ( * ...method doSomethingElse) 144 674.98 T 6 F (documentation comment...) 322.2 674.98 T 5 F ( * @param someParam) 144 665.98 T 6 F (description) 273.6 665.98 T 5 F ( */) 144 656.98 T ( public void doSomethingElse\050Object someParam\051 {) 144 647.98 T 6 F ( // ...implementation goes here...) 144 638.98 T 5 F ( }) 144 629.98 T (}) 144 620.98 T FMENDPAGE %%EndPage: "20" 20 %%Trailer FMENDDOCUMENT %%BoundingBox: 0 0 612 792 %%PageOrder: Ascend %%Pages: 20 %%DocumentFonts: Helvetica %%+ Helvetica-Oblique %%+ Helvetica-Bold %%+ Times-Roman %%+ Times-Italic %%+ Courier %%+ Courier-Oblique %%+ Times-Bold %%DocumentNeedsFonts: Helvetica %%+ Helvetica-Oblique %%+ Helvetica-Bold %%+ Times-Roman %%+ Times-Italic %%+ Courier %%+ Courier-Oblique %%+ Times-Bold %%DocumentSuppliedFonts: %%EOF .