类org.apache.http.util.TextUtils源码实例Demo

下面列出了怎么用org.apache.http.util.TextUtils的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: htmlunit   文件: HtmlUnitDomainHandler.java
@Override
public void parse(final SetCookie cookie, final String value)
        throws MalformedCookieException {
    Args.notNull(cookie, HttpHeader.COOKIE);
    if (TextUtils.isBlank(value)) {
        throw new MalformedCookieException("Blank or null value for domain attribute");
    }
    // Ignore domain attributes ending with '.' per RFC 6265, 4.1.2.3
    if (value.endsWith(".")) {
        return;
    }
    String domain = value;
    domain = domain.toLowerCase(Locale.ROOT);

    final int dotIndex = domain.indexOf('.');
    if (browserVersion_.hasFeature(HTTP_COOKIE_REMOVE_DOT_FROM_ROOT_DOMAINS)
            && dotIndex == 0 && domain.length() > 1 && domain.indexOf('.', 1) == -1) {
        domain = domain.toLowerCase(Locale.ROOT);
        domain = domain.substring(1);
    }
    if (dotIndex > 0) {
        domain = '.' + domain;
    }

    cookie.setDomain(domain);
}
 
源代码2 项目: GoogleTranslation   文件: GoogleTranslation.java
private void getTranslation(AnActionEvent event) {
    Editor editor = event.getData(PlatformDataKeys.EDITOR);
    if (editor == null) {
        return;
    }
    SelectionModel model = editor.getSelectionModel();
    String selectedText = model.getSelectedText();
    if (TextUtils.isEmpty(selectedText)) {
        selectedText = getCurrentWords(editor);
        if (TextUtils.isEmpty(selectedText)) {
            return;
        }
    }
    String queryText = strip(addBlanks(selectedText));
    new Thread(new RequestRunnable(mTranslator, editor, queryText)).start();
}
 
源代码3 项目: ReciteWords   文件: ReciteWords.java
private void getTranslation(AnActionEvent event) {
    Editor mEditor = event.getData(PlatformDataKeys.EDITOR);
    Project project = event.getData(PlatformDataKeys.PROJECT);
    String basePath = project.getBasePath();

    if (null == mEditor) {
        return;
    }
    SelectionModel model = mEditor.getSelectionModel();
    String selectedText = model.getSelectedText();
    if (TextUtils.isEmpty(selectedText)) {
        selectedText = getCurrentWords(mEditor);
        if (TextUtils.isEmpty(selectedText)) {
            return;
        }
    }
    String queryText = strip(addBlanks(selectedText));
    new Thread(new RequestRunnable(mEditor, queryText,basePath)).start();
}
 
/**
 * valid tag to count
 */
public static boolean isTargetTagToCount(PsiElement tag) {
    if (tag == null || !(tag instanceof XmlTag) || TextUtils.isEmpty(((XmlTag)tag).getName())) {
        return false;
    }
    String name = ((XmlTag)tag).getName();
    return name.equals("array")
            || name.equals("attr")
            || name.equals("bool")
            || name.equals("color")
            || name.equals("declare-styleable")
            || name.equals("dimen")
            || name.equals("drawable")
            || name.equals("eat-comment")
            || name.equals("fraction")
            || name.equals("integer")
            || name.equals("integer-array")
            || name.equals("item")
            || name.equals("plurals")
            || name.equals("string")
            || name.equals("string-array")
            || name.equals("style");
}
 
源代码5 项目: weex-language-support   文件: Settings.java
@Override
public void apply() throws ConfigurationException {
    try {
        PropertiesComponent.getInstance().setValue(KEY_RULES_PATH, rulesPath.getText());
        if (!TextUtils.isEmpty(rulesPath.getText())) {
            load(rulesPath.getText());
            DirectiveLint.prepare();
        } else {
            DirectiveLint.reset();
        }
    } catch (Exception e) {
        ProjectUtil.guessCurrentProject(select).getMessageBus().syncPublisher(Notifications.TOPIC).notify(
                new Notification(Notifications.SYSTEM_MESSAGES_GROUP_ID,
                        "Weex language support - bad rules",
                        e.toString(),
                        NotificationType.ERROR));
    }
    savePaths();
}
 
源代码6 项目: weex-language-support   文件: Attribute.java
public boolean match(String value) {
    if (TextUtils.isEmpty(valuePattern)) {
        return false;
    }
    if (valuePattern.toLowerCase().equals("mustache")) {
        return Pattern.compile("\\{\\{.*\\}\\}").matcher(value).matches();
    }  else if (valuePattern.toLowerCase().equals("number")) {
        return Pattern.compile("[0-9]+([.][0-9]+)?$").matcher(value).matches();
    } else if (valuePattern.toLowerCase().equals("boolean")) {
        return Pattern.compile("(true|false)$").matcher(value).matches();
    }  else {
        try {
            return Pattern.compile(valuePattern).matcher(value).matches();
        } catch (Exception e) {
            return false;
        }
    }
}
 
源代码7 项目: instamojo-java   文件: ApiContext.java
private void loadAccessToken(Map<String, String> params) throws ConnectionException, HTTPException {
    try {
        String response = HttpUtils.post(getAuthEndpoint(), null, params);

        AccessToken accessTokenResponse = new Gson().fromJson(response,
                AccessToken.class);

        if (TextUtils.isEmpty(accessTokenResponse.getToken())) {
            throw new InvalidClientException(
                    "Could not get the access token due to " + accessTokenResponse.getError());
        }

        this.accessToken = accessTokenResponse;
        this.tokenCreationTime = System.nanoTime();

    } catch (IOException e) {
        LOGGER.log(Level.SEVERE, e.toString(), e);
        throw new ConnectionException(e.toString(), e);
    }
}
 
源代码8 项目: WIFIADB   文件: RootWindow.java
private boolean verifyPortText(){
    final String text = mPort.getText();

    if(TextUtils.isBlank(text)){
        return false;
    }

    try {
        int port = Integer.valueOf(text);

        if(port >= 0 && port < 65535){
            return true;
        }
    }catch (Exception e){
        e.printStackTrace();

    }

    return false;
}
 
源代码9 项目: WIFIADB   文件: RootWindow.java
private boolean verifyIpText(){
    for (JTextField field : mIPTextFields){
        final String text = field.getText();

        if(TextUtils.isBlank(text)){
            return false;
        }

        try{
            int ip = Integer.valueOf(text);
            if(ip < 0 || ip > 255){
                return false;
            }
        }catch (Exception e){
            e.printStackTrace();
            return false;
        }
    }

    return true;
}
 
源代码10 项目: MVPManager   文件: EditorMVPDialog.java
/**
 * Get data in JTable
 *
 * @param jTable
 * @return
 */
private ArrayList<String> getData(JTable jTable) {
    ArrayList<String> list = new ArrayList<>();
    for (int i = 0; i < jTable.getModel().getRowCount(); i++) {
        TableModel model = jTable.getModel();
        String returnStr = (String) model.getValueAt(i, 0);
        String methodStr = (String) model.getValueAt(i, 1);
        returnStr = returnStr.trim();
        methodStr = methodStr.trim();
        if (TextUtils.isEmpty(returnStr) || TextUtils.isEmpty(methodStr)) {
            return null;
        }
        list.add(returnStr + "##" + methodStr);
    }

    return list;
}
 
源代码11 项目: WxBot   文件: WxBot.java
public void start() {
	this.getUuid();// 获取uuid
	if (!TextUtils.isBlank(uuid)) {
		this.downQrCode();// 下载二维码图片
		this.showQrCode();// 显示二维码图片
	}
	this.login();// 登录操作
	if (!TextUtils.isBlank(redirectUri)) {// 跳转到登录后页面
		this.wxNewLoginPage();
	}
	if (!TextUtils.isBlank(skey)) {// 初始化微信
		this.wxInit();
	}
	if (syncKeyJsonObject != null) {// 开启微信状态通知
		this.wxStatusNotify();
		this.listenMsg();
	}
}
 
源代码12 项目: message_interface   文件: WXUserService.java
public String queryWxUserNick(String openId) throws IOException {
    String nick = userNickMap.get(openId);
    if (TextUtils.isEmpty(nick)) {
        String url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=%s&openid=%s&lang=zh_CN";
        url = String.format(url, wxAuthService.queryAccessToken(), openId);

        String res = HttpClientPool.getInstance().get(url);
        if (TextUtils.isEmpty(res)) {
            return null;
        } else {
            JSONObject json = JSONObject.parseObject(res);
            nick = json.getString("nickname");
            userNickMap.put(openId, nick);
            // 更新到七鱼
            updateWxUserToQiyu(openId, json);
        }
    }
    return nick;
}
 
源代码13 项目: GsonFormat   文件: ClassEntity.java
@Override
public void setValueAt(int column, String text) {
    switch (column) {
        case 2:
            break;
        case 3:
            String result;
            if (!TextUtils.isEmpty(fieldTypeSuffix)) {
                result = fieldTypeSuffix + "." + text;
            } else {
                result = text;
            }
            if (CheckUtil.getInstant().containsDeclareClassName(result)) {
                return;
            }
            CheckUtil.getInstant().removeDeclareClassName(getQualifiedName());
            setClassName(text);
            break;
    }
}
 
源代码14 项目: GsonFormat   文件: ConvertBridge.java
private String createSubClassName(String key, Object o) {
    String name = "";
    if (o instanceof JSONObject) {
        if (TextUtils.isEmpty(key)) {
            return key;
        }
        String[] strings = key.split("_");
        StringBuilder stringBuilder = new StringBuilder();
        for (int i = 0; i < strings.length; i++) {
            stringBuilder.append(StringUtils.captureName(strings[i]));
        }
        name = stringBuilder.toString() + Config.getInstant().getSuffixStr();
    }
    return name;

}
 
源代码15 项目: GsonFormat   文件: LombokProcessor.java
private String generateLombokFieldText(ClassEntity classEntity, FieldEntity fieldEntity, String fixme) {
    fixme = fixme == null ? "" : fixme;

    StringBuilder fieldSb = new StringBuilder();
    String filedName = fieldEntity.getGenerateFieldName();
    if (!TextUtils.isEmpty(classEntity.getExtra())) {
        fieldSb.append(classEntity.getExtra()).append("\n");
        classEntity.setExtra(null);
    }
    if (fieldEntity.getTargetClass() != null) {
        fieldEntity.getTargetClass().setGenerate(true);
    }

    if (Config.getInstant().isFieldPrivateMode()) {
        fieldSb.append("private  ").append(fieldEntity.getFullNameType()).append(" ").append(filedName).append(" ; ");
    } else {
        fieldSb.append("public  ").append(fieldEntity.getFullNameType()).append(" ").append(filedName).append(" ; ");
    }
    return fieldSb.append(fixme).toString();
}
 
源代码16 项目: GsonFormat   文件: AutoValueProcessor.java
private String generateFieldText(ClassEntity classEntity, FieldEntity fieldEntity, String fixme) {
    fixme = fixme == null ? "" : fixme;
    StringBuilder fieldSb = new StringBuilder();
    String fieldName = fieldEntity.getGenerateFieldName();
    if (!TextUtils.isEmpty(classEntity.getExtra())) {
        fieldSb.append(classEntity.getExtra()).append("\n");
        classEntity.setExtra(null);
    }
    if (!fieldName.equals(fieldEntity.getKey()) || Config.getInstant().isUseSerializedName()) {
        fieldSb.append(Constant.gsonFullNameAnnotation.replaceAll("\\{filed\\}", fieldEntity.getKey()));
    }
    if (fieldEntity.getTargetClass() != null) {
        fieldEntity.getTargetClass().setGenerate(true);
    }
    return fieldSb.append(String.format("public abstract %s %s(); " + fixme, fieldEntity.getFullNameType(), fieldName)).toString();
}
 
源代码17 项目: GsonFormat   文件: Processor.java
private String generateFieldText(ClassEntity classEntity, FieldEntity fieldEntity, String fixme) {
    fixme = fixme == null ? "" : fixme;
    StringBuilder fieldSb = new StringBuilder();
    String filedName = fieldEntity.getGenerateFieldName();
    if (!TextUtils.isEmpty(classEntity.getExtra())) {
        fieldSb.append(classEntity.getExtra()).append("\n");
        classEntity.setExtra(null);
    }
    if (fieldEntity.getTargetClass() != null) {
        fieldEntity.getTargetClass().setGenerate(true);
    }
    if (!filedName.equals(fieldEntity.getKey()) || Config.getInstant().isUseSerializedName()) {
        fieldSb.append(Config.getInstant().geFullNameAnnotation().replaceAll("\\{filed\\}", fieldEntity.getKey()));
    }

    if (Config.getInstant().isFieldPrivateMode()) {
        fieldSb.append("private  ").append(fieldEntity.getFullNameType()).append(" ").append(filedName).append(" ; ");
    } else {
        fieldSb.append("public  ").append(fieldEntity.getFullNameType()).append(" ").append(filedName).append(" ; ");
    }
    return fieldSb.append(fixme).toString();
}
 
源代码18 项目: GsonFormat   文件: JsonDialog.java
private void onOK() {

        this.setAlwaysOnTop(false);
        String jsonSTR = editTP.getText().trim();
        if (TextUtils.isEmpty(jsonSTR)) {
            return;
        }
        String generateClassName = generateClassTF.getText().replaceAll(" ", "").replaceAll(".java$", "");
        if (TextUtils.isEmpty(generateClassName) || generateClassName.endsWith(".")) {
            Toast.make(project, generateClassP, MessageType.ERROR, "the path is not allowed");
            return;
        }
        PsiClass generateClass = null;
        if (!currentClass.equals(generateClassName)) {
            generateClass = PsiClassUtil.exist(file, generateClassTF.getText());
        } else {
            generateClass = cls;
        }

        new ConvertBridge(this, jsonSTR, file, project, generateClass,
                cls, generateClassName).run();
    }
 
源代码19 项目: GsonFormat   文件: StringUtils.java
/**
 * 转成驼峰
 *
 * @param text
 * @return
 */
public static String captureStringLeaveUnderscore(String text) {
    if (TextUtils.isEmpty(text)) {
        return text;
    }
    String temp = text.replaceAll("^_+", "");

    if (!TextUtils.isEmpty(temp)) {
        text = temp;
    }
    String[] strings = text.split("_");
    StringBuilder stringBuilder = new StringBuilder();
    stringBuilder.append(strings[0]);
    for (int i = 1; i < strings.length; i++) {
        stringBuilder.append(captureName(strings[i]));
    }
    return stringBuilder.toString();
}
 
源代码20 项目: restcountries   文件: StripeRest.java
@POST
public Object contribute(Contribution contribution) {
    LOG.debug("Contribution: " + contribution);

    if (contribution == null || TextUtils.isBlank(contribution.getToken())) {
        return getResponse(Response.Status.BAD_REQUEST);
    }

    Stripe.apiKey = "";
    Map<String, Object> params = new HashMap<>();
    params.put("amount", contribution.getAmount());
    params.put("currency", "eur");
    params.put("description", "REST Countries");
    params.put("source", contribution.getToken());

    try {
        Charge.create(params);
    } catch (AuthenticationException | InvalidRequestException | CardException | APIConnectionException | APIException e) {
        LOG.error(e.getMessage(), e);
        return getResponse(Response.Status.BAD_REQUEST);
    }

    return getResponse(Response.Status.ACCEPTED);
}
 
源代码21 项目: swagger-showdoc   文件: OkHttpUtil.java
private static String getHeaderFileName(Response response) {
    String dispositionHeader = response.header("Content-Disposition");
    if (!TextUtils.isEmpty(dispositionHeader)) {
        dispositionHeader.replace("attachment;filename=", "");
        dispositionHeader.replace("filename*=utf-8", "");
        String[] strings = dispositionHeader.split("; ");
        if (strings.length > 1) {
            dispositionHeader = strings[1].replace("filename=", "");
            dispositionHeader = dispositionHeader.replace("\"", "");
            return dispositionHeader;
        }
        return "";
    }
    return "";
}
 
源代码22 项目: TinyPngPlugin   文件: TinyPngExtension.java
@Override
public void actionPerformed(AnActionEvent actionEvent) {
    Project project = actionEvent.getProject();
    String apiKey = PropertiesComponent.getInstance().getValue(TINY_PNG_API_KEY);
    if (TextUtils.isEmpty(apiKey)) {
        apiKey = Messages.showInputDialog(project, "What's your ApiKey?", "ApiKey", Messages.getQuestionIcon());
        PropertiesComponent.getInstance().setValue(TINY_PNG_API_KEY, apiKey);
    }
    VirtualFile[] selectedFiles = PlatformDataKeys.VIRTUAL_FILE_ARRAY.getData(actionEvent.getDataContext());
    Tinify.setKey(apiKey);
    ProgressDialog dialog = new ProgressDialog();
    sExecutorService.submit(() -> {
        //writing to file
        int i = 1;
        successCount = 0;
        failCount = 0;
        List<VirtualFile> failFileList = new ArrayList<>();
        for (VirtualFile file : selectedFiles) {
            failFileList.addAll(processFile(dialog, i + "/" + selectedFiles.length, file));
            i++;
        }
        dialog.setLabelMsg("Success :" + successCount + " Fail :" + failCount);
        dialog.setButtonOKVisible();
    });
    dialog.addWindowListener(new WindowAdapter() {
        public void windowClosing(WindowEvent e) {
            runningFlag.set(false);
        }
    });
    dialog.setLabelMsg("processing");
    JFrame frame = WindowManager.getInstance().getFrame(project);
    dialog.setMinimumSize(new Dimension(frame.getWidth() / 4, frame.getHeight() / 4));
    dialog.setLocationRelativeTo(frame);
    dialog.pack();
    dialog.setVisible(true);
}
 
源代码23 项目: AndroidLocalizePlugin   文件: LanguageHelper.java
/**
 * Get saved language code data.
 *
 * @param project current project.
 * @return null if not saved.
 */
@Nullable
public static List<String> getSelectedLanguageCodes(@NotNull Project project) {
    Objects.requireNonNull(project);

    String codeString = PropertiesComponent.getInstance(project)
            .getValue(Constants.KEY_SELECTED_LANGUAGES);

    if (TextUtils.isEmpty(codeString)) {
        return null;
    }

    return Arrays.asList(codeString.split(","));
}
 
public PluginSettingsConfigurable() {
    // Set 'chooseFolders' depend on OS, because macOS application represents a directory.
    terminalChooserDescriptor = new FileChooserDescriptor(true, OS.isMacOSX(), false, false, false, false);

    Project[] openProjects = ProjectManager.getInstance().getOpenProjects();
    if (openProjects.length > 0) {
        project = openProjects[0];
    } else {
        project = ProjectManager.getInstance().getDefaultProject();
    }
    pluginSettingsForm = new PluginSettingsForm();
    pluginSettings = PluginSettings.getInstance();

    // FileChooserDialog support  -longforus
    String favoriteTerminal = "";
    if (pluginSettings.getState() != null) {
        favoriteTerminal = pluginSettings.getState().getFavoriteTerminal();
    }
    if (!TextUtils.isEmpty(favoriteTerminal)) {
        selectedTerminal = VirtualFileManager.getInstance().findFileByUrl(getFileUrl(favoriteTerminal));
    }

    pluginSettingsForm.getTerminalFileChooserButton().addActionListener(e -> {
        VirtualFile[] chosenTerminals = new FileChooserDialogImpl(terminalChooserDescriptor, project)
                .choose(project, selectedTerminal);

        if (chosenTerminals.length > 0) {
            VirtualFile file = chosenTerminals[0];
            if (file != null) {
                String canonicalPath = file.getCanonicalPath();
                Terminal terminal = Terminal.fromString(canonicalPath);
                if (terminal == Terminal.GENERIC) {
                    Messages.showWarningDialog(warningMessage, "Warning");
                }
                selectedTerminal = file;
                pluginSettingsForm.getFavoriteTerminalField().setText(canonicalPath);
            }
        }
    });
}
 
源代码25 项目: JtSQL   文件: App.java
private static void doExec(String code) {
    if (TextUtils.isEmpty(code)) {
        LogUtil.write("error", "no code!!!");
        return;
    }

    try {
        engine.exec(code);
    } catch (Exception ex) {
        LogUtil.write("error", engine.last_sql());
        ex.printStackTrace();
    }
}
 
源代码26 项目: AndroidGodEye   文件: OpenAction.java
@Override
public void actionPerformed(AnActionEvent anActionEvent) {
    try {
        Project project = anActionEvent.getProject();
        String path = parseAndroidSDKPath(Objects.requireNonNull(project));
        if (TextUtils.isEmpty(path)) {
            Notifications.Bus.notify(new Notification("AndroidGodEye", "Open AndroidGodEye Failed", "Can not parse sdk.dir, Please add 'sdk.dir' to 'local.properties'.", NotificationType.ERROR));
            return;
        }
        mLogger.info("Current os name is " + SystemUtils.OS_NAME);
        String adbPath = String.format("%s/platform-tools/adb", path);
        mLogger.info("ADB path is " + adbPath);
        String parsedPort = parsePortByLogcatWithTimeout(project, adbPath);
        mLogger.info("Parse AndroidGodEye port is running at " + parsedPort);
        String inputPort = askForPort(project, parsedPort, getSavedPort(project));
        if (inputPort == null) {
            mLogger.warn("inputPort == null");
            return;
        }
        saveDefaultPort(project, inputPort);
        final String commandTcpProxy = String.format("%s forward tcp:%s tcp:%s", adbPath, inputPort, inputPort);
        mLogger.info("Exec [" + commandTcpProxy + "].");
        Runtime.getRuntime().exec(commandTcpProxy);
        String commandOpenUrl;
        if (SystemUtils.IS_OS_WINDOWS) {
            commandOpenUrl = String.format("cmd /c start http://localhost:%s/index.html", inputPort);
        } else {
            commandOpenUrl = String.format("open http://localhost:%s/index.html", inputPort);
        }
        mLogger.info("Exec [" + commandOpenUrl + "].");
        Runtime.getRuntime().exec(commandOpenUrl);
        Notifications.Bus.notify(new Notification("AndroidGodEye", "Open AndroidGodEye Success", String.format("http://localhost:%s/index.html", inputPort), NotificationType.INFORMATION));
    } catch (Throwable e) {
        mLogger.warn(e);
        Notifications.Bus.notify(new Notification("AndroidGodEye", "Open AndroidGodEye Failed", String.valueOf(e), NotificationType.ERROR));
    }
}
 
源代码27 项目: weex-language-support   文件: Settings.java
public static WeexTag[] getRules() {
    String path = PropertiesComponent.getInstance().getValue(KEY_RULES_PATH, "");
    if (!TextUtils.isEmpty(path)) {
        try {
            return load(path);
        } catch (Exception e) {
            return null;
        }
    }
    return null;
}
 
源代码28 项目: MVPManager   文件: EditorMVPDialog.java
private void fillSinglePackageTree(DefaultMutableTreeNode root)
{
    String name = contractName.getText();
    DefaultMutableTreeNode createdFolder = new DefaultMutableTreeNode(TextUtils.isEmpty(name) ? "(Please input contract name!)" : name.toLowerCase());
    createdFolder.add(new DefaultMutableTreeNode(TextUtils.isEmpty(viewImpName.getText()) ? "(Please input Activity/Fragment!)" : viewImpName.getText() + ".java"));
    createdFolder.add(new DefaultMutableTreeNode(name + ClassHelper.CONTRACT  + ".java"));
    createdFolder.add(new DefaultMutableTreeNode(name + ClassHelper.PRESENTER + ".java"));
    createdFolder.add(new DefaultMutableTreeNode(name + ClassHelper.MODEL     + ".java"));
    root.add(createdFolder);
}
 
源代码29 项目: MVPManager   文件: EditorMVPDialog.java
private void fillMultiPackageTree(DefaultMutableTreeNode root)
{
    String name = contractName.getText();

    DefaultMutableTreeNode contract  = new DefaultMutableTreeNode(ClassHelper.PACKAGE_CONTRACT);
    DefaultMutableTreeNode presenter = new DefaultMutableTreeNode(ClassHelper.PACKAGE_PRESENTER);
    DefaultMutableTreeNode model     = new DefaultMutableTreeNode(ClassHelper.PACKAGE_MODEL);

    if (viewPackageName.getSelectedItem() != null)
    {
        String viewPackage = viewPackageName.getSelectedItem().toString();
        DefaultMutableTreeNode view  = new DefaultMutableTreeNode(viewPackage);
        view     .add(new DefaultMutableTreeNode(TextUtils.isEmpty(viewImpName.getText()) ? "(Please input Activity/Fragment!)" : viewImpName.getText() + ".java"));
        root.add(view);
    } else
    {
        root     .add(new DefaultMutableTreeNode(TextUtils.isEmpty(viewImpName.getText()) ? "(Please input Activity/Fragment!)" : viewImpName.getText() + ".java"));
    }

    contract .add(new DefaultMutableTreeNode(name + ClassHelper.CONTRACT  + ".java"));
    presenter.add(new DefaultMutableTreeNode(name + ClassHelper.PRESENTER + ".java"));
    model    .add(new DefaultMutableTreeNode(name + ClassHelper.MODEL     + ".java"));

    root.add(contract);
    root.add(presenter);
    root.add(model);

}
 
/**
 * 处理来自微信的HTTP请求。
 * @param signature
 * @param timestamp
 * @param nonce
 * @param echoStr
 * @param request
 * @param is
 * @return
 */
@RequestMapping(value = "/recv_wx")
@ResponseBody
public String onWxMessage(
        @RequestParam(value = "signature", required = false) String signature,
        @RequestParam(value = "timestamp", required = false) String timestamp,
        @RequestParam(value = "nonce", required = false) String nonce,
        @RequestParam(value = "echostr", required = false) String echoStr,
        HttpServletRequest request,
        InputStream is) {
    try {
        if (TextUtils.isEmpty(echoStr)) {
            // 收到消息
            String msg = StringUtil.isToString(is);
            logger.debug("msg content" + msg);

            // 解析XML, 分离消息来源,内容
            return parseWxMessage(msg);
        } else {
            // 验证url
            String sha1 = SHA1.getSHA1(Constants.WX_TOKEN, timestamp, nonce);
            logger.debug("verify url: " + sha1 + " - " + signature + " - " + echoStr);
            if (signature.equals(sha1)) {
                return echoStr;
            } else {
                return "";
            }
        }
    } catch (Throwable e) {
        logger.warn("onWxMessage error, " + e);
    }
    return Constants.WX_RET_SUCCESS;
}
 
 类所在包
 类方法
 同包方法