1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.fileupload2.core;
18
19 import org.apache.commons.io.FileCleaningTracker;
20 import org.apache.commons.io.build.AbstractStreamBuilder;
21 import org.apache.commons.io.file.PathUtils;
22
23
24
25
26
27
28
29
30
31 public interface FileItemFactory<I extends FileItem<I>> {
32
33
34
35
36
37
38
39 abstract class AbstractFileItemBuilder<I extends FileItem<I>, B extends AbstractFileItemBuilder<I, B>> extends AbstractStreamBuilder<I, B> {
40
41 public static FileItemHeaders newFileItemHeaders() {
42 return new FileItemHeadersImpl();
43 }
44
45
46
47
48 private String fieldName;
49
50
51
52
53 private String contentType;
54
55
56
57
58 private boolean isFormField;
59
60
61
62
63 private String fileName;
64
65
66
67
68 private FileItemHeaders fileItemHeaders = newFileItemHeaders();
69
70
71
72
73
74
75
76 private FileCleaningTracker fileCleaningTracker;
77
78 public AbstractFileItemBuilder() {
79 setBufferSize(DiskFileItemFactory.DEFAULT_THRESHOLD);
80 setPath(PathUtils.getTempDirectory());
81 }
82
83 public String getContentType() {
84 return contentType;
85 }
86
87 public String getFieldName() {
88 return fieldName;
89 }
90
91 public FileCleaningTracker getFileCleaningTracker() {
92 return fileCleaningTracker;
93 }
94
95 public FileItemHeaders getFileItemHeaders() {
96 return fileItemHeaders;
97 }
98
99 public String getFileName() {
100 return fileName;
101 }
102
103 public boolean isFormField() {
104 return isFormField;
105 }
106
107 public B setContentType(final String contentType) {
108 this.contentType = contentType;
109 return asThis();
110 }
111
112 public B setFieldName(final String fieldName) {
113 this.fieldName = fieldName;
114 return asThis();
115 }
116
117 public B setFileCleaningTracker(final FileCleaningTracker fileCleaningTracker) {
118 this.fileCleaningTracker = fileCleaningTracker;
119 return asThis();
120 }
121
122 public B setFileItemHeaders(final FileItemHeaders fileItemHeaders) {
123 this.fileItemHeaders = fileItemHeaders != null ? fileItemHeaders : newFileItemHeaders();
124 return asThis();
125 }
126
127 public B setFileName(final String fileName) {
128 this.fileName = fileName;
129 return asThis();
130 }
131
132 public B setFormField(final boolean isFormField) {
133 this.isFormField = isFormField;
134 return asThis();
135 }
136
137 }
138
139
140
141
142
143
144
145 <B extends AbstractFileItemBuilder<I, B>> AbstractFileItemBuilder<I, B> fileItemBuilder();
146
147 }