package Ġxyz . p avel kor ole v . bl ader un ner . services Ċ Ċ import Ġcom . d rew . im aging . Image Metadata Reader Ċ import Ġcom . d rew . im aging . Image Processing Exception Ċ import Ġcom . d rew . metadata . ex if . Ex if Sub IF DD irectory Ċ import Ġjava . io . File Ċ import Ġjava . io . IOException Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠService Ġto Ġwork Ġwith Ġphoto Ġfiles . ĠPhoto Ġfiles Ġget Ġdate Ġfrom ĠEX IF Ġat Ġfirst . Ċ Ġ* ĠIt Ġuses Ġmodified Ġdate Ġif Ġnot Ġfound Ġin ĠEX IF . Ċ Ġ*/ Ċ interface ĠPhoto Service Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġfile Ġdate . ĠUses ĠEX IF Ġdate Ġfor Ġphotos , Ġlast Ġmodified Ġdate Ġotherwise ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Date ( file : ĠFile ): ĠDate ? Ċ Ċ } Ċ Ċ class ĠPhoto ServiceImpl Ġ: ĠPhoto Service Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġget Date ( file : ĠFile ): ĠDate ? Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmetadata Ġ= ĠImage Metadata Reader . read Metadata ( file ) ĊĠĠĠĠĠĠĠ Ġval Ġdir Ġ= Ġmetadata . getFirst Directory OfType ( Ex if Sub IF DD irectory :: class . java ) ĊĠĠĠĠĠĠĠ Ġdir ?. getDate ( Ex if Sub IF DD irectory . TAG _ DATETIME _ ORIGIN AL ) ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠImage Processing Exception ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnull ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnull ĊĠĠĠ Ġ} Ċ Ċ }