All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jsimpledb.JListFieldScanner Maven / Gradle / Ivy

There is a newer version: 3.6.1
Show newest version

/*
 * Copyright (C) 2015 Archie L. Cobbs. All rights reserved.
 */

package org.jsimpledb;

import java.lang.reflect.Method;
import java.util.List;

import org.jsimpledb.annotation.JField;
import org.jsimpledb.annotation.JListField;
import org.jsimpledb.annotation.JSimpleClass;

/**
 * Scans for {@link JListField @JListField} annotations.
 */
class JListFieldScanner extends AbstractFieldScanner {

    JListFieldScanner(JClass jclass, JSimpleClass jsimpleClass) {
        super(jclass, JListField.class, jsimpleClass);
    }

    @Override
    protected JListField getDefaultAnnotation() {
        return new JListField() {
            @Override
            public Class annotationType() {
                return JListField.class;
            }
            @Override
            public String name() {
                return "";
            }
            @Override
            public int storageId() {
                return 0;
            }
            @Override
            public JField element() {
                return JFieldScanner.getDefaultJField(JListFieldScanner.this.jsimpleClass);
            }
        };
    }

    @Override
    protected boolean includeMethod(Method method, JListField annotation) {
        this.checkNotStatic(method);
        this.checkReturnType(method, List.class);
        this.checkParameterTypes(method);
        return true;
    }

    @Override
    protected boolean isAutoPropertyCandidate(Method method) {
        return super.isAutoPropertyCandidate(method) && List.class.isAssignableFrom(method.getReturnType());
    }
}





© 2015 - 2025 Weber Informatics LLC | Privacy Policy