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

package net.ranides.assira.reflection.mockup;

import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import net.ranides.assira.annotations.Meta;

/**
 *
 * @author Ranides Atterwim <ranides@gmail.com>
 */
public class ForFields {
    
    public static class A {
        
        transient public int a;
        transient protected int b;
        transient private float c;
        
        @Deprecated
        public int f1;
    }
    
    public static class B extends A {
        
        transient public Integer a;
        transient protected CharSequence b;
        transient private String c;
        
        transient public char a2;
        transient protected byte b2;
        public Byte c2;
        
        @Deprecated
        @Meta.Final
        transient public int f2;
        
        @Meta.Final
        transient public int f3;
        
        @Meta.Final(value = "that")
        public int f4;
    }
    
    public interface IRecord {
        
        int MAX = 1;
        
    }
    
    public static class ARecord {
    
        public static int AMAX = 2;
        
        private static int APRIV = 7;
        
        public int aid = 100;
        
        private int pid = 200;
        
        public String name = "A.";

        @Override
        public String toString() {
            return "{" + aid + ":" + pid + ":" + name + '}';
        }

    }
    
    @SuppressFBWarnings("MF_CLASS_MASKS_FIELD")
    public static class Record extends ARecord {
    
        public int rid = 300;
        
        private int pid = 400;
        
        public String name = "R.";

        @Override
        public String toString() {
            return super.toString()+"#{" + rid + ":" + pid + ":" + name + '}';
        }
        
        
        
    }
    
}
