All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.alibaba.dubbo.rpc.protocol.thrift.ThriftUtils Maven / Gradle / Ivy

The newest version!
/**
 * File Created at 2011-12-05
 * $Id$
 *
 * Copyright 2008 Alibaba.com Croporation Limited.
 * All rights reserved.
 *
 * This software is the confidential and proprietary information of
 * Alibaba Company. ("Confidential Information").  You shall not
 * disclose such Confidential Information and shall use it only in
 * accordance with the terms of the license agreement you entered into
 * with Alibaba.com.
 */
package com.alibaba.dubbo.rpc.protocol.thrift;

/**
 * @author gang.lvg
 */
public class ThriftUtils {

    /**
     * Generate class name which represents service arguments.
     *
     * @param serviceName service name
     * @param methodName method name
     * @return method args class name or null
     */
    public static String generateMethodArgsClassName( String serviceName, String methodName ) {

        int index = serviceName.lastIndexOf( "." );

        if ( index > 0 ) {

            return new StringBuilder( 32 )
                    .append( serviceName.substring( 0, index + 1 ) )
                    .append( "$__" )
                    .append( serviceName.substring( index + 1 ) )
                    .append( "Stub$" )
                    .append( methodName )
                    .append( "_args" )
                    .toString();

        } else {
            return new StringBuffer( 32 )
                    .append( "$__" )
                    .append( serviceName )
                    .append( "Stub$" )
                    .append( methodName )
                    .append( "_args" )
                    .toString();
        }

    }

    public static String generateMethodResultClassName( String serviceName, String method ) {

        int index = serviceName.lastIndexOf( "." );

        if ( index > 0 ) {

            return new StringBuilder( 32 )
                    .append( serviceName.substring( 0, index + 1 ) )
                    .append( "$__" )
                    .append( serviceName.substring( index + 1 ) )
                    .append( "Stub$" )
                    .append( method )
                    .append( "_result" )
                    .toString();

        } else {
            return new StringBuilder( 32 )
                    .append( "$__" )
                    .append( serviceName )
                    .append( "Stub$" )
                    .append( method )
                    .append( "_result" )
                    .toString();
        }

    }

    public static String generateSetMethodName( String fieldName ) {

        return new StringBuilder( 16 )
                .append( "set" )
                .append( Character.toUpperCase( fieldName.charAt( 0 ) ) )
                .append( fieldName.substring( 1 ) )
                .toString();

    }

    public static String generateGetMethodName( String fieldName ) {
        return new StringBuffer( 16 )
                .append( "get" )
                .append( Character.toUpperCase( fieldName.charAt( 0 ) ) )
                .append( fieldName.substring( 1 ) )
                .toString();
    }

    public static String generateMethodArgsClassNameThrift( String serviceName, String methodName ) {

        int index = serviceName.indexOf( "$" );

        if ( index > 0 ) {
            return new StringBuilder( 32 )
                    .append( serviceName.substring( 0, index + 1 ) )
                    .append( methodName )
                    .append( "_args" )
                    .toString();
        }

        return null;

    }

    public static String generateMethodResultClassNameThrift( String serviceName, String methodName ) {

        int index = serviceName.indexOf( "$" );

        if ( index > 0 ) {
            return new StringBuilder( 32 )
                    .append( serviceName.substring( 0, index + 1 ) )
                    .append( methodName )
                    .append( "_result" )
                    .toString();
        }

        return null;

    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy