package net.ranides.demo.debugger.impl;

import com.sun.jdi.Field;
import net.ranides.assira.reflection.*;
import net.ranides.assira.reflection.impl.AField;

import java.lang.invoke.MethodHandle;

public class CDiField extends AField implements IField {

    private final boolean isDeclared;
    private final Field field;

    protected CDiField(boolean isDeclared, Field field) {
        super(IContext.DEFAULT);
        this.isDeclared = isDeclared;
        this.field = field;
    }

    @Override
    public String name() {
        return field.name();
    }

    @Override
    public IAttributes attributes() {
        return null;
    }

    @Override
    public IAnnotations annotations() {
        return null;
    }

    @Override
    public IClass<?> type() {
        // field.type();
        return null;
    }

    @Override
    public IClass<?> parent() {
        // field.declaringType()
        return null;
    }

    @Override
    public Object get(Object that) {

        return null;
    }

    @Override
    public void set(Object that, Object value) {

    }

    @Override
    public java.lang.reflect.Field reflective() {
        return null;
    }

    @Override
    public IField rewritable() {
        return null;
    }

    @Override
    public IField accessible() {
        return null;
    }

    @Override
    public MethodHandle getter() {
        return null;
    }

    @Override
    public MethodHandle setter() {
        return null;
    }

    @Override
    public int hashCode() {
        return field.hashCode();
    }
}
