1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.mybatis.generator.internal;
17
18 import static org.mybatis.generator.internal.util.messages.Messages.getString;
19
20 import java.io.File;
21 import java.util.StringTokenizer;
22
23 import org.mybatis.generator.api.ShellCallback;
24 import org.mybatis.generator.exception.ShellException;
25
26 public class DefaultShellCallback implements ShellCallback {
27
28 private final boolean overwrite;
29
30 public DefaultShellCallback(boolean overwrite) {
31 super();
32 this.overwrite = overwrite;
33 }
34
35 @Override
36 public File getDirectory(String targetProject, String targetPackage) throws ShellException {
37
38
39
40
41
42
43 File targetProjectDirectory = new File(targetProject);
44 if (!targetProjectDirectory.isDirectory()) {
45 throw new ShellException(getString("Warning.9",
46 targetProject));
47 }
48
49 StringBuilder sb = new StringBuilder();
50 StringTokenizer st = new StringTokenizer(targetPackage, ".");
51 while (st.hasMoreTokens()) {
52 sb.append(st.nextToken());
53 sb.append(File.separatorChar);
54 }
55
56 File directory = new File(targetProjectDirectory, sb.toString());
57 if (!directory.isDirectory()) {
58 boolean rc = directory.mkdirs();
59 if (!rc) {
60 throw new ShellException(getString("Warning.10",
61 directory.getAbsolutePath()));
62 }
63 }
64
65 return directory;
66 }
67
68 @Override
69 public boolean isOverwriteEnabled() {
70 return overwrite;
71 }
72 }