package com.google.checkstyle.test.chapter3filestructure.rule341onetoplevel;
public class InputOneTopLevelClassBasic
{
    
public InputOneTopLevelClassBasic() throws CloneNotSupportedException
    
{
        
super.equals(new String());
        
super.clone();
    
}

    
public Object clone() throws CloneNotSupportedException
    
{
        
return super.clone();
    
}

    
public void method() throws CloneNotSupportedException
    
{
        
super.clone();
    
}

    
{
        
super.clone();
    
}
}

class NoSuperClone //warn
{
    
public Object clone()
    
{
        
return null;
    
}
}

class InnerClone //warn
{
    
public Object clone()
    
{
        
class Inner
        
{
            
public Object clone() throws CloneNotSupportedException
            
{
                
return super.clone();
            
}
        
}
        
return null;
    
}
}

// This could not pass as valid semantically but tests that
// type arguments are ignored when checking super calls
class CloneWithTypeArguments //warn
{
    
//Some code
}

class CloneWithTypeArgumentsAndNoSuper //warn
{
}

//Check that super keyword isn't snagged here
class MyClassWithGenericSuperMethod //warn
{
    
void someMethod(java.util.List<? super java.util.Map> l)
    
{
        
//Some code
    
}

    
/**
     
* Not a valid clone override. Should not get flagged.
     
* @param o some object
     
* @return a cloned Object?
     
*/

    
public static Object clone(Object o) {
    
return null;
    
}
}

class AnotherClass { //warn

    
/**
     
* Not a valid clone override. Should not get flagged.
     
* @param t some type
     
* @param <T> a type
     
* @return a cloned type?
     
*/

    
public <T> T clone(T t) {
    
return null;
    
}
}