com.boundary.plugin.sdk.PluginUtil.java Source code

Java tutorial

Introduction

Here is the source code for com.boundary.plugin.sdk.PluginUtil.java

Source

// Copyright 2014-2015 Boundary, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package com.boundary.plugin.sdk;

import java.net.InetAddress;

import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * Various utility functions that can be leveraged by plugins
 */
public class PluginUtil {

    private static Logger LOG = LoggerFactory.getLogger(PluginUtil.class);

    /**
     * Returns the localhost name the JVM is running on
     * 
     * @return {@link String} local host name
     */
    public static String getHostname() {
        String hostname = null;
        try {
            InetAddress addr;
            addr = InetAddress.getLocalHost();
            hostname = addr.getHostName();
        } catch (Exception e) {
            LOG.info(e.toString());
        }
        return hostname;
    }

    /**
     * Transform a camel case string into a upper case string with underscores
     * 
     * @param s {@link String} to transform
     * @param d replacement character for white space
     * @return {@link String}
     */
    public static String toUpperUnderscore(String s, Character d) {
        StringBuilder builder = new StringBuilder();
        s = s.trim();

        boolean first = true;
        for (int i = 0; i < s.length(); i++) {
            if (Character.isWhitespace(s.charAt(i))) {
                builder.append(d);
            } else {
                if (Character.isUpperCase(s.charAt(i))) {
                    if (first == false) {
                        if (i + 1 < s.length() && Character.isLowerCase(s.charAt(i + 1))) {
                            builder.append(d);
                        }
                    }
                }
                builder.append(Character.toUpperCase(s.charAt(i)));
            }
            first = false;
        }
        StringBuilder r = new StringBuilder();
        r.append('\\').append(d).append('\\').append(d);

        return builder.toString().replaceAll(r.toString(), d.toString());
    }

    /**
     * Transforms a camel case string into a string with words separated by a space
     * @param s {@link String} camel case string to transform
     * @return {@link String} transformed to words and spaces
     */
    public static String camelCaseToSpaceSeparated(String s) {
        return StringUtils.join(StringUtils.splitByCharacterTypeCamelCase(s), ' ').replaceAll("\\s+", " ");
    }
}