/*
 * @author Ranides Atterwim <ranides@gmail.com>
 * @copyright Ranides Atterwim
 * @license WTFPL
 * @url http://ranides.net/projects/assira
 */
package net.ranides.assira.reflection.mockup;

import java.util.Comparator;
import java.util.List;

/**
 *
 * @author Ranides Atterwim <ranides@gmail.com>
 */
@SuppressWarnings("PMD")
public class ForMethodUtils {
    
    public static class Root {
        
        public void fun1(int a) { }
        
        public String fun2(int a) { return null; }
        
        public void fun3(int x, int y) {}
        
        void fun4(String z) {}
        
        private void fun5(float x) { }
        
    }
    
    public static class NoRoot {
        
        public void fun1(int a) { }
        
        public Float fun2(int a) { return null; }
        
    }

    public static class A extends Root {
        
        @Override
        public void fun1(int a) { }
        
        public void fun1c(int a) { }
        
        @Override
        public String fun2(int a) { return null; }
        
        public void fun3(int x, char y) {}
        
        @Override
        void fun4(String z) { }
        
        private void fun5(float x) { }
        
    }
    
    public void funV1(int... args) { }
    
    public void funV2(Integer... args) { }
    
    public static class MC implements Comparator<Integer> {

        @Override
        public int compare(Integer a, Integer b) {
            throw new UnsupportedOperationException();
        }

    }
    
    public static class MCP<T> implements Comparator<T> {
        
        @Override
        public int compare(T a, T b) {
            throw new UnsupportedOperationException();
        }
        
        public <Q> int fun6(Q a, List<Q> b, int value) {
            throw new UnsupportedOperationException();
        }
        
        public int fun7(List<T> input) {
            throw new UnsupportedOperationException();
        }
    }
    
}
