class JtFunctionLoaderDebug implements JtFunctionLoader {
    static final Logger log = LoggerFactory.getLogger(JtFunctionLoaderDebug.class);

    private String _baseUri = "/luffy/";
    private File _baseDir;

    public JtFunctionLoaderDebug() {
        String rootdir = ResourceUtil.getResource("/").toString()
                .replace("target/classes/", "")
                .replace("target/test-classes/", "");

        if (rootdir.startsWith("file:")) {
            String dir_str = rootdir + "src/main/resources" + _baseUri;
            _baseDir = new File(URI.create(dir_str));
            if (!_baseDir.exists()) {
                dir_str = rootdir + "src/main/webapp" + _baseUri;
                _baseDir = new File(URI.create(dir_str));
            }
        }
    }

    @Override
    public AFileModel fileGet(String path) throws Exception {
        AFileModel file = new AFileModel();

        file.content = fileContentGet(path);

        if (file.content != null) {
            //如果有找到文件内容，则完善信息
            //
            File file1 = new File(path);
            String fileName = file1.getName();

            file.path = path;
            file.tag = "luffy";

            if (fileName.indexOf('.') > 0) {
                String suffix = fileName.substring(fileName.indexOf('.') + 1);
                file.edit_mode = JtMapping.getActuator(suffix);
            } else {
                file.edit_mode = JtMapping.getActuator("");
            }

            //有些场景需要id
            file.file_id = Math.abs(path.hashCode());
        }

        return file;
    }

    protected String fileContentGet(String path) {<FILL_FUNCTION_BODY>}
}

        if (_baseDir == null) {
            return null;
        } else {
            File file = new File(_baseDir, path);

            if (file.exists() && file.isFile()) {
                try {
                    try (InputStream ins = new FileInputStream(file)) {
                        return IoUtil.transferToString(ins, Solon.encoding());
                    }
                } catch (IOException e) {
                    log.warn(e.getMessage(), e);
                    return null;
                }
            } else {
                return null;
            }
        }
    
<no_super_class>