Class CField

  • All Implemented Interfaces:
    Serializable, xyz.cofe.collection.ImTree<ByteCode>, xyz.cofe.collection.ImTreeWalk<ByteCode>, AccFlagsProperty, ByteCode, ClazzWriter, ClsByteCode, FieldFlags

    public class CField
    extends Object
    implements ClsByteCode, ClazzWriter, AccFlagsProperty, FieldFlags
    Описывает поле класса

    Пример

     public @interface Desc {
         String value();
     }
    
     @Desc("sample User2")
     public class User2 {
         public User2(){}
         public User2(String name1){
         this.name = name1;
         }
    
         @Desc("name of user")
         private String name;
    
         @Desc("name of user")
         public String getName(){ return name; }
         public void setName( @Required @MaxLength(100) @MinLength(1) String name ){ this.name = name; }
    
         private List emails;
         @Desc("emails of user")
         public List getEmails(){ return emails; }
         public void setEmails( List emails ){ this.emails = emails; }
     }
     
    Будет описываться как:
     <CBegin version="55" ...
     <CField
       name="name"
       access="2"
       accessDecode="[Private]"
       descriptor="Ljava/lang/String;"
       />
     
    See Also:
    Serialized Form
    • Field Detail

      • access

        protected int access
        флаги доступа к полю AccFlags
      • name

        protected String name
        имя поля
      • descriptor

        protected String descriptor
        Дескриптор типа данных
      • signature

        protected String signature
        сигнатура, в случае Generic
      • value

        protected Object value
        значение поля
      • fieldByteCodes

        protected List<FieldByteCode> fieldByteCodes
        Байт-код связанный с полем - аннотации
    • Constructor Detail

      • CField

        public CField()
        Конструктор по умолчанию
      • CField

        public CField​(int access,
                      String name,
                      String descriptor,
                      String signature,
                      Object value)
        Конструктор
        Parameters:
        access - флаги доступа к полю
        name - имя поля
        descriptor - дескриптор типа
        signature - сигнатура, в случае Generic
        value - значение
      • CField

        public CField​(CField sample)
        Конструктор копирования
        Parameters:
        sample - образец
    • Method Detail

      • configure

        public CField configure​(Consumer<CField> conf)
        Конфигурация экземпляра
        Parameters:
        conf - конфигурация
        Returns:
        SELF ссылка
      • getAccess

        public int getAccess()
        Возвращает флаги доступа к полю AccFlags
        Specified by:
        getAccess in interface AccFlagsProperty
        Returns:
        флаги доступа
      • setAccess

        public void setAccess​(int access)
        Указывает флаги доступа к полю AccFlags
        Specified by:
        setAccess in interface AccFlagsProperty
        Parameters:
        access - флаги доступа
      • getName

        public String getName()
        Возвращает имя поля
        Returns:
        имя поля
      • setName

        public void setName​(String name)
        Указывает имя поля
        Parameters:
        name - имя поля
      • getDescriptor

        public String getDescriptor()
        Возвращает дескриптор типа данных
        Returns:
        дескриптор
      • setDescriptor

        public void setDescriptor​(String descriptor)
        Указывает дескриптор типа данных
        Parameters:
        descriptor - дескриптор
      • getSignature

        public String getSignature()
        Возвращает сигнатуру в случае Generic типа
        Returns:
        сигнатура или null
      • setSignature

        public void setSignature​(String signature)
        Указывает сигнатуру в случае Generic типа
        Parameters:
        signature - сигнатура или null
      • getValue

        public Object getValue()
        Возвращает значение поля
        Returns:
        значение
      • setValue

        public void setValue​(Object value)
        Указывает значение поля
        Parameters:
        value - значение
      • getFieldByteCodes

        public List<FieldByteCode> getFieldByteCodes()
        Возвращает байт-код связанный с полем - аннотации
        Returns:
        байт-код связанный с полем
      • setFieldByteCodes

        public void setFieldByteCodes​(List<FieldByteCode> fld)
        Указывает байт-код связанный с полем - аннотации
        Parameters:
        fld - байт-код связанный с полем
      • write

        public void write​(org.objectweb.asm.ClassWriter v)
        Specified by:
        write in interface ClazzWriter