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

org.sfm.map.ColumnDefinition Maven / Gradle / Ivy

Go to download

Java library to map flat record - ResultSet, csv - to java object with minimum configuration and low footprint.

There is a newer version: 1.10.3
Show newest version
package org.sfm.map;


import org.sfm.reflect.meta.PropertyMeta;
import org.sfm.utils.Predicate;

import java.lang.reflect.Type;

public abstract class ColumnDefinition, CD extends  ColumnDefinition> {
    public K rename(K key) {
        return key;
    }

    public boolean hasCustomSource() {
        return false;
    }

    public Type getCustomSourceReturnType() {
        throw new UnsupportedOperationException();
    }

    public boolean ignore() {
        return false;
    }

    public boolean isKey() {
        return false;
    }

    public Predicate> keyAppliesTo() {
        return new Predicate>() {
            @Override
            public boolean test(PropertyMeta propertyMeta) {
                return false;
            }
        };
    }

    public abstract CD compose(CD columnDefinition);

    public abstract CD addRename(String name);
    public abstract CD addIgnore();

    public abstract CD addKey();
    public abstract CD addKey(Predicate> appliesTo);

    protected abstract void appendToStringBuilder(StringBuilder sb);

    public String toString() {
        StringBuilder sb  = new StringBuilder();

        sb.append("ColumnDefinition{");
        appendToStringBuilder(sb);
        sb.append("}");

        return sb.toString();
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy