44import ktt .lib .httpserver .server .SimpleHttpExchange ;
55import ktt .lib .httpserver .server .SimpleHttpHandler ;
66
7- import java .io .File ;
8- import java .io .IOException ;
7+ import java .io .*;
98import java .util .*;
109
1110public class FileHandler extends SimpleHttpHandler {
@@ -21,103 +20,119 @@ public FileHandler(final FileHandlerAdapter adapter){
2120
2221//
2322
24- public final void addFile (final File file ){ }
23+ public final void addFile (final File file ){
24+ addFile ("" ,file ,adapter .getName (file ),false );
25+ }
2526
26- public final void addFile (final File file , final boolean preload ){ }
27+ public final void addFile (final File file , final boolean preload ){
28+ addFile ("" ,file ,adapter .getName (file ),preload );
29+ }
2730
28- public final void addFile (final File file , final FileHandlerAdapter adapter ){ }
31+ public final void addFile (final String context , final File file ){
32+ addFile (context ,file ,adapter .getName (file ),false );
33+ }
2934
30- public final void addFile (final File file , final FileHandlerAdapter adapter , final boolean preload ){ }
35+ public final void addFile (final String context , final File file , final boolean preload ){
36+ addFile (context ,file ,adapter .getName (file ),preload );
37+ }
3138
32- public final void addFile (final String context , final File file ){ }
39+ public final void addFile (final File file , final String fileName ){
40+ addFile ("" ,file ,fileName ,false );
41+ }
3342
34- public final void addFile (final String context , final File file , final boolean preload ){ }
43+ public final void addFile (final File file , final String fileName , final boolean preload ){
44+ addFile ("" ,file ,fileName ,preload );
45+ }
3546
36- public final void addFile (final String context , final File file , final FileHandlerAdapter adapter ){ }
47+ public final void addFile (final String context , final File file , final String fileName ){
48+ addFile (context ,file ,fileName ,false );
49+ }
3750
38- public final void addFile (final String context , final File file , final FileHandlerAdapter adapter , final boolean preload ){ }
51+ public final void addFile (final String context , final File file , final String fileName , final boolean preload ){
52+ try {
53+ files .put (getContext (context ) + getContext (fileName ),new FileEntry (file ,preload ,adapter ));
54+ }catch (final FileNotFoundException ignored ){ }
55+ }
3956
4057 //
4158
42- public final void addFiles (final File [] file ){ }
43-
44- public final void addFiles (final File [] files , final boolean preload ){ }
45-
46- public final void addFiles (final File [] files , final FileHandlerAdapter adapter ){ }
47-
48- public final void addFiles (final File [] files , final FileHandlerAdapter adapter , final boolean preload ){ }
49-
50- public final void addFiles (final String context , final File [] files ){ }
59+ public final void addFiles (final File [] files ){
60+ for (final File file : files )
61+ addFile (file );
62+ }
5163
52- public final void addFiles (final String context , final File [] files , final boolean preload ){ }
64+ public final void addFiles (final File [] files , final boolean preload ){
65+ for (final File file : files )
66+ addFile (file ,preload );
67+ }
5368
54- public final void addFiles (final String context , final File [] files , final FileHandlerAdapter adapter ){ }
69+ public final void addFiles (final String context , final File [] files ){
70+ for (final File file : files )
71+ addFile (context ,file );
72+ }
5573
56- public final void addFiles (final String context , final File [] files , final FileHandlerAdapter adapter , final boolean preload ){ }
74+ public final void addFiles (final String context , final File [] files , final boolean preload ){
75+ for (final File file : files )
76+ addFile (context ,file );
77+ }
5778
5879 //
5980
60- public final void addDirectory (final File directory ){ }
61-
62- public final void addDirectory (final File directory , final boolean preload ){ }
63-
64- public final void addDirectory (final File directory , final boolean preload , final boolean walk ){ }
65-
66- public final void addDirectory (final File directory , final FileHandlerAdapter adapter ){ }
67-
68- public final void addDirectory (final File directory , final FileHandlerAdapter adapter , final boolean preload ){ }
69-
70- public final void addDirectory (final File directory , final FileHandlerAdapter adapter , final boolean preload , final boolean walk ){ }
71-
72- public final void addDirectory (final String context , final File directory ){ }
73-
74- public final void addDirectory (final String context , final File directory , final boolean preload ){ }
75-
76- public final void addDirectory (final String context , final File directory , final boolean preload , final boolean walk ){ }
77-
78- public final void addDirectory (final String context , final File directory , final FileHandlerAdapter adapter ){ }
79-
80- public final void addDirectory (final String context , final File directory , final FileHandlerAdapter adapter , final boolean preload ){ }
81-
82- public final void addDirectory (final String context , final File directory , final FileHandlerAdapter adapter , final boolean preload , final boolean walk ){ }
83-
84- public final void addDirectory (final File directory , final String directoryName ){ }
85-
86- public final void addDirectory (final File directory , final String directoryName , final boolean preload ){ }
87-
88- public final void addDirectory (final File directory , final String directoryName , final boolean preload , final boolean walk ){ }
89-
90- public final void addDirectory (final File directory , final String directoryName , final FileHandlerAdapter adapter ){ }
91-
92- public final void addDirectory (final File directory , final String directoryName , final FileHandlerAdapter adapter , final boolean preload ){ }
81+ public final void addDirectory (final File directory ){
82+ addDirectory ("" ,directory ,directory .getName (),false ,false );
83+ }
9384
94- public final void addDirectory (final File directory , final String directoryName , final FileHandlerAdapter adapter , final boolean preload , final boolean walk ){ }
85+ public final void addDirectory (final File directory , final boolean preload ){
86+ addDirectory ("" ,directory ,directory .getName (),preload ,false );
87+ }
9588
96- public final void addDirectory (final String context , final File directory , final String directoryName ){ }
89+ public final void addDirectory (final File directory , final boolean preload , final boolean walk ){
90+ addDirectory ("" ,directory ,directory .getName (),preload ,walk );
91+ }
9792
98- public final void addDirectory (final String context , final File directory , final String directoryName , final boolean preload ){ }
93+ public final void addDirectory (final String context , final File directory ){
94+ addDirectory (context ,directory ,directory .getName (),false ,false );
95+ }
9996
100- public final void addDirectory (final String context , final File directory , final String directoryName , final boolean preload , final boolean walk ){ }
97+ public final void addDirectory (final String context , final File directory , final boolean preload ){
98+ addDirectory (context ,directory ,directory .getName (),preload ,false );
99+ }
101100
102- public final void addDirectory (final String context , final File directory , final String directoryName , final FileHandlerAdapter adapter ){ }
101+ public final void addDirectory (final String context , final File directory , final boolean preload , final boolean walk ){
102+ addDirectory (context ,directory ,directory .getName (),preload ,walk );
103+ }
103104
104- public final void addDirectory (final String context , final File directory , final String directoryName , final FileHandlerAdapter adapter , final boolean preload ){ }
105+ public final void addDirectory (final File directory , final String directoryName ){
106+ addDirectory ("" ,directory ,directoryName ,false ,false );
107+ }
105108
106- public final void addDirectory (final String context , final File directory , final String directoryName , final FileHandlerAdapter adapter , final boolean preload , final boolean walk ){ }
109+ public final void addDirectory (final File directory , final String directoryName , final boolean preload ){
110+ addDirectory ("" ,directory ,directoryName ,preload ,false );
111+ }
107112
108- //
113+ public final void addDirectory (final File directory , final String directoryName , final boolean preload , final boolean walk ){
114+ addDirectory ("" ,directory ,directoryName ,preload ,walk );
115+ }
109116
110- public final void removeFile (final File file ){ }
117+ public final void addDirectory (final String context , final File directory , final String directoryName ){
118+ addDirectory (context ,directory ,directoryName ,false ,false );
119+ }
111120
112- public final void removeFiles (final File [] files ){ }
121+ public final void addDirectory (final String context , final File directory , final String directoryName , final boolean preload ){
122+ addDirectory (context ,directory ,directoryName ,preload ,false );
123+ }
113124
114- public final void removeDirectory (final File directory ){ }
125+ public final void addDirectory (final String context , final File directory , final String directoryName , final boolean preload , final boolean walk ){
126+ try {
127+ directories .put (getContext (context ) + getContext (directoryName ), new DirectoryEntry (directory , preload , adapter , walk ));
128+ }catch (final IOException ignored ){ }
129+ }
115130
116131//
117132
118133 @ Override
119134 public final void handle (final SimpleHttpExchange exchange ) throws IOException {
120- final String rel = exchange .getContext ().substring (exchange .getHttpContext ().getPath ().length ());
135+ final String rel = getContext ( exchange .getContext ().substring (exchange .getHttpContext ().getPath ().length () ));
121136
122137 String match = "" ;
123138 for (final String key : files .keySet ())
@@ -153,4 +168,12 @@ public void handle(final SimpleHttpExchange exchange, final File source, final b
153168 exchange .send (bytes , HTTPCode .HTTP_OK );
154169 }
155170
171+ //
172+
173+ private static String getContext (final String path ){
174+ final String linSlash = path .toLowerCase ().replace ("\\ " ,"/" );
175+ final String seSlash = (!linSlash .startsWith ("/" ) ? "/" : "" ) + linSlash + (!linSlash .endsWith ("/" ) ? "/" : "" );
176+ return seSlash .substring (0 ,seSlash .length ()-1 );
177+ }
178+
156179}
0 commit comments