/* * Copyright 2014 MOSPA(Ministry of Security and Public Administration). * * 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 egovframework.rte.fdl.security.userdetails.util; /** * camel case 방식으로 변환하는 util 클래스 * *<p>Desc.: </p> * * @author Vincent Han * @since 2014.03.12 * @version 3.0 * @see <pre> * == 개정이력(Modification Information) == * * 수정일 수정자 수정내용 * --------------------------------------------------------------------------------- * 2014.03.12 한성곤 Spring Security 설정 간소화 기능 추가 * * </pre> */ public final class CamelCaseUtil { private CamelCaseUtil() { // no-op } public static String convert2CamelCase(String underScore) { if (isSkipCase(underScore)) { return underScore; } StringBuilder result = new StringBuilder(); boolean nextUpper = false; int len = underScore.length(); for (int i = 0; i < len; i++) { char currentChar = underScore.charAt(i); if (currentChar == '_') { nextUpper = true; } else { if (nextUpper) { result.append(Character.toUpperCase(currentChar)); nextUpper = false; } else { result.append(Character.toLowerCase(currentChar)); } } } return result.toString(); } protected static boolean isSkipCase(String underScore) { return underScore.indexOf('_') < 0 && Character.isLowerCase(underScore.charAt(0)); } }