Android Open Source - baracus-framework Field List






From Project

Back to project page baracus-framework.

License

The source code is released under:

Apache License

If you think the Android project baracus-framework listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package net.mantucon.baracus.orm;
//from   w w w  . j a v  a  2 s.c  om
import net.mantucon.baracus.util.Logger;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * Created with IntelliJ IDEA.
 * User: marcus
 * Date: 24.09.12
 * Time: 11:20
 * <p/>
 * The field list of an entity.
 */
public class FieldList {

    public static class FieldListLockedException extends RuntimeException {

    }

    private final List<Field> fields = new ArrayList<Field>();

    private String binder;

    boolean locked = false;

    public FieldList(String binder) {
        this.binder = binder;
    }

    /**
     * Locing constructor. Add all fields here. After that, this instance is locked
     * for modifications.
     *
     * @param binder    - the binding entity
     * @param fieldList - the fields to add
     */
    public FieldList(String binder, Field... fieldList) {

        if (locked) {
            throw new FieldListLockedException();
        }

        this.binder = binder;
        for (Field field : fieldList) {
            add(field);
        }
        locked = true;
    }

    private static final Logger logger = new Logger(FieldList.class);

    private boolean dirty = true;

    public void add(Field field) {
        checkField(field);
        fields.add(field);
        dirty = true;
    }

    private void checkField(Field field) {
        if (fields.contains(field)) {
            logger.fatal("Field $1 already present in list", field);
        }
    }

    public void add(List<Field> fields) {
        for (Field f : fields) {
            checkField(f);
        }

        this.fields.addAll(fields);
        dirty = true;
    }

    public void add(FieldList fieldList) {
        add(fieldList.fields);
        dirty = true;
    }

    public String[] getFieldNames() {
        String[] result = new String[getFields().size()];
        int i = 0;
        for (Field f : getFields()) {
            result[i++] = f.fieldName;
        }
        return result;
    }

    public String getFieldNamesAsString() {
        StringBuilder sb = new StringBuilder();
        for (Field f : getFields()) {
            sb.append(f.fieldName).append(",");
        }
        String result = sb.toString();
        return result.substring(0, result.length() - 1);
    }

    public String getFieldNamesAsStringWithoutKeyColumn() {
        StringBuilder sb = new StringBuilder();
        for (Field f : getFields()) {
            if (!f.isKeyAttribute) {
                sb.append(f.fieldName).append(",");
            }
        }
        String result = sb.toString();
        return result.substring(0, result.length() - 1);
    }

    public int size() {
        return fields.size();
    }

    /**
     * @return a string containing all field parameters as JDBC variables
     */
    public String getParamsAsString() {
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < fields.size(); i++) {
            sb.append("?,");
        }

        String result = sb.toString();
        return result.substring(0, result.length() - 1);
    }

    /**
     * @return a string containing all field parameters as JDBC variables except the key column
     */
    public String getParamsAsStringWithoutKeyColumn() {
        StringBuilder sb = new StringBuilder();
        for (Field f : fields) {
            if (!f.isKeyAttribute) {
                sb.append("?,");
            }
        }
        String result = sb.toString();
        return result.substring(0, result.length() - 1);
    }

    public List<Field> getFields() {
        if (dirty) {
            Collections.sort(fields);
//            validate();
            dirty = false;
        }
        return fields;
    }

    public void validate() {
        int i = 0;
        for (Field f : fields) {
            if (i != f.fieldIndex) {
                logger.warn("WARNING! $1's field $2 is placed at $3, but should be on $4", binder, f.fieldName, f.fieldIndex, i);
//                f.fieldIndex = i;
            }
            ++i;
        }
    }
}




Java Source Code List

net.mantucon.baracus.annotations.Bean.java
net.mantucon.baracus.context.AnnotationScanner.java
net.mantucon.baracus.context.BaracusApplicationContext.java
net.mantucon.baracus.context.BeanContainer.java
net.mantucon.baracus.context.Exceptions.java
net.mantucon.baracus.context.ManagedActivity.java
net.mantucon.baracus.context.ManagedFragment.java
net.mantucon.baracus.dao.BaracusOpenHelper.java
net.mantucon.baracus.dao.BaseDao.java
net.mantucon.baracus.dao.ConfigurationDao.java
net.mantucon.baracus.errorhandling.CustomErrorHandler.java
net.mantucon.baracus.errorhandling.ErrorHandler.java
net.mantucon.baracus.errorhandling.ErrorHandlingFactory.java
net.mantucon.baracus.errorhandling.ErrorSeverity.java
net.mantucon.baracus.errorhandling.StandardErrorHandler.java
net.mantucon.baracus.errorhandling.TextEditErrorHandler.java
net.mantucon.baracus.lifecycle.ApplicationContextInitializer.java
net.mantucon.baracus.lifecycle.Destroyable.java
net.mantucon.baracus.lifecycle.Initializeable.java
net.mantucon.baracus.migr8.MigrationStep.java
net.mantucon.baracus.migr8.ModelVersion000.java
net.mantucon.baracus.model.ConfigurationParameter.java
net.mantucon.baracus.orm.AbstractModelBase.java
net.mantucon.baracus.orm.FieldList.java
net.mantucon.baracus.orm.Field.java
net.mantucon.baracus.orm.Identifiable.java
net.mantucon.baracus.orm.LazyCollection.java
net.mantucon.baracus.orm.LazyMorphicCollection.java
net.mantucon.baracus.orm.LazyReference.java
net.mantucon.baracus.orm.LegacyModelBase.java
net.mantucon.baracus.orm.ModelBase.java
net.mantucon.baracus.orm.NullReference.java
net.mantucon.baracus.orm.ObjectReference.java
net.mantucon.baracus.orm.OptimisticLockingModelBase.java
net.mantucon.baracus.orm.OptmisticLocking.java
net.mantucon.baracus.orm.ReferenceLoader.java
net.mantucon.baracus.orm.Reference.java
net.mantucon.baracus.orm.Timestamped.java
net.mantucon.baracus.signalling.ConfigurationChangeListener.java
net.mantucon.baracus.signalling.DataChangeAwareComponent.java
net.mantucon.baracus.signalling.DataSetChangeAwareComponent.java
net.mantucon.baracus.signalling.DeleteAwareComponent.java
net.mantucon.baracus.signalling.GenericEventAwareComponent.java
net.mantucon.baracus.signalling.GenericEvent.java
net.mantucon.baracus.ui.ConstrainedEditText.java
net.mantucon.baracus.ui.ConstrainedSpinner.java
net.mantucon.baracus.ui.ErrorView.java
net.mantucon.baracus.ui.Popup.java
net.mantucon.baracus.util.DBBackup.java
net.mantucon.baracus.util.DataUtil.java
net.mantucon.baracus.util.DateUtil.java
net.mantucon.baracus.util.DayDate.java
net.mantucon.baracus.util.Logger.java
net.mantucon.baracus.util.StringUtil.java
net.mantucon.baracus.validation.AbstractValidator.java
net.mantucon.baracus.validation.ConstrainedView.java
net.mantucon.baracus.validation.ValidatableView.java
net.mantucon.baracus.validation.ValidationFactory.java
net.mantucon.baracus.validation.Validator.java
net.mantucon.baracus.validation.builtins.DateFromNow.java
net.mantucon.baracus.validation.builtins.NumberMustBeGreaterThanZero.java
net.mantucon.baracus.validation.builtins.StringIsNumericDouble.java
net.mantucon.baracus.validation.builtins.StringIsNumericInteger.java
net.mantucon.baracus.validation.builtins.StringNotEmpty.java