// Path: src/main/java/com/ace/cache/constants/CacheScope.java
// public enum CacheScope {
//     user, application
// }
// 
// Path: src/main/java/com/ace/cache/parser/IKeyGenerator.java
// public abstract class IKeyGenerator {
//     public static final String LINK = "_";
// 
//     /**
//      * 获取动态key
//      *
//      * @param key
//      * @param scope
//      * @param parameterTypes
//      * @param arguments
//      * @return
//      */
//     public String getKey(String key, CacheScope scope,
//                          Class<?>[] parameterTypes, Object[] arguments) {
//         StringBuffer sb = new StringBuffer("");
//         key = buildKey(key, scope, parameterTypes, arguments);
//         sb.append(key);
//         if (CacheScope.user.equals(scope)) {
//             if (getUserKeyGenerator() != null)
//                 sb.append(LINK)
//                         .append(getUserKeyGenerator().getCurrentUserAccount());
//         }
//         return sb.toString();
//     }
// 
//     /**
//      * 当前登陆人key
//      *
//      * @param userKeyGenerator
//      */
//     public abstract IUserKeyGenerator getUserKeyGenerator();
// 
//     /**
//      * 生成动态key
//      *
//      * @param key
//      * @param scope
//      * @param parameterTypes
//      * @param arguments
//      * @return
//      */
//     public abstract String buildKey(String key, CacheScope scope,
//                                     Class<?>[] parameterTypes, Object[] arguments);
// }
// 
// Path: src/main/java/com/ace/cache/parser/IUserKeyGenerator.java
// public interface IUserKeyGenerator {
//     public String getCurrentUserAccount();
// }


import com.ace.cache.constants.CacheScope;
import com.ace.cache.parser.IKeyGenerator;
import com.ace.cache.parser.IUserKeyGenerator;

package com.ace.cache.test.cache;


/**
 * ${DESCRIPTION}
 *
 * @author 小郎君
 * @create 2017-05-22 14:05
 */
public class MyKeyGenerator extends IKeyGenerator {
    @Override
    public IUserKeyGenerator getUserKeyGenerator() {

// Path: src/main/java/com/ace/cache/constants/CacheScope.java
// public enum CacheScope {
//     user, application
// }
// 
// Path: src/main/java/com/ace/cache/parser/IKeyGenerator.java
// public abstract class IKeyGenerator {
//     public static final String LINK = "_";
// 
//     /**
//      * 获取动态key
//      *
//      * @param key
//      * @param scope
//      * @param parameterTypes
//      * @param arguments
//      * @return
//      */
//     public String getKey(String key, CacheScope scope,
//                          Class<?>[] parameterTypes, Object[] arguments) {
//         StringBuffer sb = new StringBuffer("");
//         key = buildKey(key, scope, parameterTypes, arguments);
//         sb.append(key);
//         if (CacheScope.user.equals(scope)) {
//             if (getUserKeyGenerator() != null)
//                 sb.append(LINK)
//                         .append(getUserKeyGenerator().getCurrentUserAccount());
//         }
//         return sb.toString();
//     }
// 
//     /**
//      * 当前登陆人key
//      *
//      * @param userKeyGenerator
//      */
//     public abstract IUserKeyGenerator getUserKeyGenerator();
// 
//     /**
//      * 生成动态key
//      *
//      * @param key
//      * @param scope
//      * @param parameterTypes
//      * @param arguments
//      * @return
//      */
//     public abstract String buildKey(String key, CacheScope scope,
//                                     Class<?>[] parameterTypes, Object[] arguments);
// }
// 
// Path: src/main/java/com/ace/cache/parser/IUserKeyGenerator.java
// public interface IUserKeyGenerator {
//     public String getCurrentUserAccount();
// }


// Path: src/test/java/com/ace/cache/test/cache/MyKeyGenerator.java
import com.ace.cache.constants.CacheScope;
import com.ace.cache.parser.IKeyGenerator;
import com.ace.cache.parser.IUserKeyGenerator;

package com.ace.cache.test.cache;


/**
 * ${DESCRIPTION}
 *
 * @author 小郎君
 * @create 2017-05-22 14:05
 */
public class MyKeyGenerator extends IKeyGenerator {
    @Override
    public IUserKeyGenerator getUserKeyGenerator() {

        return null;
