Java自动生成Mvp框架目录结构

在朋友的帮助下,写了一个自动生成Mvp框架目录结构的工具类,分享出来。(。・`ω´・)

package com.example;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;

/*import cn.lebaodai.common.util.FormData.FieldData;
import cn.lebaodai.lbd.dao.impl.ActivityDao;
import cn.lebaodai.lbd.vo.Activity;*/

/**
 * Created by Aloha <br>
 * -explain Mvp目录结构自动生成
 * @Date 2017/2/13 9:48
 */
public class AutoGenerationMvp {

    static String className = "Sample";

    static String modelName = className+"Model";
    static String viewName = "I"+className+"View";
    static String viewActivityName = className+"Activity";
    static String viewFragmentName = className+"Fragment";
    static String presenterName = className+"Presenter";

    static String modelPackage = "model/sample";
    static String viewPackage = "ui/activity/sampleactivity/view";
    static String presenterPackage = "ui/activity/sampleactivity/presenter";

    static String iMoudel = createIMoudel();
    static String moudel = createMoudel();
    static String iView = createIView();
    static String view = createActivityView();
    static String iPresenter = createIPresenter();
    static String presenter = createPresenter();

    /**
     * @param args
     */
    public static void main(String[] args){

        saveFile("I"+modelName, iMoudel,modelPackage);
        saveFile(modelName, moudel,modelPackage);
        saveFile(viewName, iView,viewPackage);
        saveFile(viewActivityName, view,viewPackage);
        saveFile("I"+presenterName, iPresenter,presenterPackage);
        saveFile(presenterName, presenter,presenterPackage);
    }

    public static  String createIMoudel(){
        String text="";
        text+="package aloha.shiningstar.lockerstudy."+modelPackage.replaceAll("/",".")+";\r";
        text+="\r";
        text+="import aloha.shiningstarbase.base.IBaseModel"+";\r";
        text+="\r";
        text+="/**\r";
        text+=" * Created by Aloha <br>\r";
        text+=" * -explain\r";
        text+=" * @version 1.0\r";
        text+=" */\r";
        text+="public interface I"+modelName+" extends IBaseModel"+" {\r";
        text+="\r";
        text+="    void sampleFuntion();\r";
        text+="\r";
        text+="}\r";
        return text;
    }

    public static  String createMoudel(){
        String text="";
        text+="package aloha.shiningstar.lockerstudy."+modelPackage.replaceAll("/",".")+";\r";
        text+="\r";
        text+="/**\r";
        text+=" * Created by Aloha <br>\r";
        text+=" * -explain\r";
        text+=" * @version 1.0\r";
        text+=" */\r";
        text+="public class "+modelName+" implements I"+modelName+" {\r";
        text+="\r";
        text+="    @Override\r";
        text+="    public void sampleFuntion() {\r";
        text+="\r";
        text+="    } \r";
        text+="\r";
        text+="}\r";
        return text;
    }

    public static  String createIView(){
        String text="";
        text+="package aloha.shiningstar.lockerstudy."+viewPackage.replaceAll("/",".")+";\r";
        text+="\r";
        text+="import aloha.shiningstarbase.base.IBaseView;\r";
        text+="\r";
        text+="/**\r";
        text+=" * Created by Aloha <br>\r";
        text+=" * -explain\r";
        text+=" * @version 1.0\r";
        text+=" */\r";
        text+="public interface "+viewName+" extends IBaseView"+" {\r";
        text+="\r";
        text+="    void showDataSampleFuntion();\r";
        text+="\r";
        text+="}\r";
        return text;
    }

    public static  String createActivityView(){
        String text="";
        text+="package aloha.shiningstar.lockerstudy."+viewPackage.replaceAll("/",".")+";\r";
        text+="\r";
        text+="import aloha.shiningstarbase.base.BaseActivity;\r";
        text+="import aloha.shiningstar.lockerstudy.R;\r";
        text+="import aloha.shiningstar.lockerstudy.ui.activity.sampleactivity.presenter."+presenterName+";\r";
        text+="\r";
        text+="/**\r";
        text+=" * Created by Aloha <br>\r";
        text+=" * -explain\r";
        text+=" * @version 1.0\r";
        text+=" */\r";
        text+="public class "+viewActivityName+" extends BaseActivity <"+ viewName +","+presenterName+"> " +
                "implements "+viewName+" {\r";
        text+="\r";
        text+="    @Override\r";
        text+="    protected void init() {\r";
        text+="\r";
        text+="    }\r";
        text+="\r";
        text+="    @Override\r";
        text+="    protected "+presenterName+" CreatePresenter(){\r";
        text+="        return new "+presenterName+"();\r";
        text+="    }\r";
        text+="\r";
        text+="    @Override\r";
        text+="    protected int getLayoutID() {\r";
        text+="         return R.layout.activity_main;\r";
        text+="    }\r";
        text+="\r";
        text+="    @Override\r";
        text+="    public void showDataSampleFuntion() {\r";
        text+="\r";
        text+="    }\r";
        text+="\r";
        text+="}\r";
        return text;
    }

    public static  String createIPresenter(){
        String text="";
        text+="package aloha.shiningstar.lockerstudy."+presenterPackage.replaceAll("/",".")+";\r";
        text+="\r";
        text+="/**\r";
        text+=" * Created by Aloha <br>\r";
        text+=" * -explain\r";
        text+=" * @version 1.0\r";
        text+=" */\r";
        text+="public interface I"+presenterName+" {\r";
        text+="\r";
        text+="    //定义presenter 接口回调\r";
        text+="    void getDataSampleFuntion(String request);\r";
        text+="\r";
        text+="}\r";
        return text;
    }

    public static  String createPresenter(){
        String text="";
        text+="package aloha.shiningstar.lockerstudy."+presenterPackage.replaceAll("/",".")+";\r";
        text+="\r";
        text+="import aloha.shiningstarbase.base.BasePresenter;\r";
        text+="import aloha.shiningstar.lockerstudy.ui.activity.sampleactivity.view."+viewName+";\r";
        text+="\r";
        text+="/**\r";
        text+=" * Created by Aloha <br>\r";
        text+=" * -explain\r";
        text+=" * @version 1.0\r";
        text+=" */\r";
        text+="public class "+presenterName+" extends BasePresenter<"+viewName+"> implements "+"I"+presenterName+ " {\r";
        text+="\r";
        text+="    public "+presenterName+"() {\r";
        text+="        //获取model\r";
        text+="\r";
        text+="    }\r";
        text+="\r";
        text+="  /**\r";
        text+="    * 实现presenter接口方法\r";
        text+="    */\r";
        text+="    @Override\r";
        text+="    public void getDataSampleFuntion(String request){\r";
        text+="\r";
        text+="    }\r";
        text+="\r";
        text+="  /**\r";
        text+="    * Created by Aloha <br>\r";
        text+="    * -explain Model层请求数据,BasePresent层统一做网络请求,回调到子类presenter监听\r";
        text+="    * @Date 2017/01/01 12:00\r";
        text+="    */\r";
        text+="    @Override\r";
        text+="    protected void onResponseAsyncDeal(int status, String message, String result, String requestID) {\r";
        text+="\r";
        text+="    }\r";
        text+="\r";
        text+="}\r";
        return text;
    }

    public static void saveFile(String classname, String text,String pageName) {
        System.out.print("text:"+text);
        System.out.print("创建java类:" + classname);
        String filepath = Thread.currentThread().getContextClassLoader()
                .getResource(".").getPath();

        System.out.print("filepath:"+filepath);

        String[] fileP = filepath.split("target");
        System.out.print(fileP[0]);

        /*File file = new File(fileP[0] + "C:/Android/QwQ/LockerStudy/app/src/main/java/aloha/shiningstar/lockerstudy/"+pageName+"/"
                + firstUpper(classname) + ".java");*/
        /* File file = new
         File("F\:\lebaodai\myelicpseWs\trunk\src\main\java\cn\lebaodai\lbd\vo\Msg_push.java");*/
         //你的工程目录
        File file = new File("C:/Android/QwQ/LockerStudy/app/src/main/java/aloha/shiningstar/lockerstudy/"+pageName+"/"
                + firstUpper(classname) + ".java");
        if (file.exists()) {
            file.delete();
        }

        //创建文件夹,2层
        if (!file.getParentFile().getParentFile().exists())
            file.getParentFile().getParentFile().mkdir();
        if (!file.getParentFile().exists())
            file.getParentFile().mkdir();

        try {
            file.createNewFile();
        } catch (IOException e) {
            e.printStackTrace();
        }
        PrintWriter out;
        BufferedWriter writer;
        try {
            out =  new PrintWriter(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file.getPath()),"GBK")));
            /*writer = new BufferedWriter(
                    new FileWriter(new File(file.getPath())),"asd");*/
            out.write(text);
            out.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static String firstUpper(String text){
        String a1 = text.substring(0,1);
        String a2=text.substring(1);
        return a1.toUpperCase()+a2;
    }
}
使用方法如下:

1、New 一个 Java Moudle
Java Libraay
2、我的build.gradle 如下
build.gradle
3、将上面的代码copy 到新建的moudle 下,因为是java main方法,所以在AS 下运行的话,需要添加java 运行环境。
4、修改你想生成的类名,文件目录结构
这里写图片描述
5、修改你的工程目录结构
这里写图片描述
6、最后完成了,直接run 就得了。你也可以根据自己的需求,再做修改。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值