Android Open Source - NexusData Changed Objects Set






From Project

Back to project page NexusData.

License

The source code is released under:

Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCT...

If you think the Android project NexusData 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 com.github.dkharrat.nexusdata.core;
/* w  w w .  ja  v  a2s .  co  m*/
import java.util.HashSet;
import java.util.Set;

/**
 * Represents a set of objects that have changed in an {@link ObjectContext}. It is used by events sent out from
 * {@link ObjectContextNotifier}, persistence store save requests, etc.
 */
public class ChangedObjectsSet {

    private final Set<ManagedObject> insertedObjects;
    private final Set<ManagedObject> updatedObjects;
    private final Set<ManagedObject> deletedObjects;

    ChangedObjectsSet() {
        this(new HashSet<ManagedObject>(), new HashSet<ManagedObject>(), new HashSet<ManagedObject>());
    }

    ChangedObjectsSet(ChangedObjectsSet other) {
        this(new HashSet<ManagedObject>(other.getInsertedObjects()),
                new HashSet<ManagedObject>(other.getUpdatedObjects()),
                new HashSet<ManagedObject>(other.getDeletedObjects()));
    }

    ChangedObjectsSet(Set<ManagedObject> insertedObjects, Set<ManagedObject> updatedObjects, Set<ManagedObject> deletedObjects) {
        this.insertedObjects = insertedObjects;
        this.updatedObjects = updatedObjects;
        this.deletedObjects = deletedObjects;
    }

    void objectInserted(ManagedObject object) {
        if (!object.isDeleted()) {
            insertedObjects.add(object);
        }
        deletedObjects.remove(object);
    }

    void objectUpdated(ManagedObject object) {
        if (!insertedObjects.contains(object) && !deletedObjects.contains(object)) {
            updatedObjects.add(object);
        }
    }

    void objectDeleted(ManagedObject object, boolean trackDeletionEvenIfNew) {
        insertedObjects.remove(object);
        updatedObjects.remove(object);
        if (!object.isInserted() || trackDeletionEvenIfNew) {
            deletedObjects.add(object);
        }
    }

    void clear() {
        insertedObjects.clear();
        deletedObjects.clear();
        updatedObjects.clear();
    }

    /**
     * Returns the set of objects that have been inserted into the ObjectContext.
     *
     * @return the set of objects that have been inserted
     */
    public Set<ManagedObject> getInsertedObjects() {
        return insertedObjects;
    }

    /**
     * Returns the set of objects that have been updated (have property changes).
     *
     * @return the set of objects that have been updated
     */
    public Set<ManagedObject> getUpdatedObjects() {
        return updatedObjects;
    }

    /**
     * Returns the set of objects that have been deleted from the ObjectContext.
     *
     * @return the set of objects that have been deleted
     */
    public Set<ManagedObject> getDeletedObjects() {
        return deletedObjects;
    }

    /**
     * Returns true if the specified object is marked as inserted by this change set
     *
     * @return true if the specified object is marked as inserted by this change set
     */
    public boolean isInserted(ManagedObject object) {
        return insertedObjects.contains(object);
    }

    /**
     * Returns true if the specified object is marked as updated by this change set
     *
     * @return true if the specified object is marked as updated by this change set
     */
    public boolean isUpdated(ManagedObject object) {
        return updatedObjects.contains(object);
    }

    /**
     * Returns true if the specified object is marked as deleted by this change set
     *
     * @return true if the specified object is marked as deleted by this change set
     */
    public boolean isDeleted(ManagedObject object) {
        return deletedObjects.contains(object);
    }

    /**
     * Returns true if this change set is non-empty (i.e. changes exist)
     *
     * @return true if this change set is non-empty
     */
    public boolean hasChanges() {
        return  !insertedObjects.isEmpty() ||
                !updatedObjects.isEmpty() ||
                !deletedObjects.isEmpty();
    }
}




Java Source Code List

com.github.dkharrat.nexusdata.core.AtomicStore.java
com.github.dkharrat.nexusdata.core.ChangedObjectsSet.java
com.github.dkharrat.nexusdata.core.FaultingSet.java
com.github.dkharrat.nexusdata.core.FetchRequest.java
com.github.dkharrat.nexusdata.core.IncrementalStore.java
com.github.dkharrat.nexusdata.core.ManagedObject.java
com.github.dkharrat.nexusdata.core.NoSuchPropertyException.java
com.github.dkharrat.nexusdata.core.ObjectContextNotifier.java
com.github.dkharrat.nexusdata.core.ObjectContext.java
com.github.dkharrat.nexusdata.core.ObjectID.java
com.github.dkharrat.nexusdata.core.ObjectsChangedNotification.java
com.github.dkharrat.nexusdata.core.PersistentStoreCoordinator.java
com.github.dkharrat.nexusdata.core.PersistentStoreRequest.java
com.github.dkharrat.nexusdata.core.PersistentStore.java
com.github.dkharrat.nexusdata.core.SaveChangesRequest.java
com.github.dkharrat.nexusdata.core.SortDescriptor.java
com.github.dkharrat.nexusdata.core.StoreCacheNode.java
com.github.dkharrat.nexusdata.metamodel.Attribute.java
com.github.dkharrat.nexusdata.metamodel.Entity.java
com.github.dkharrat.nexusdata.metamodel.ObjectModelJsonParser.java
com.github.dkharrat.nexusdata.metamodel.ObjectModel.java
com.github.dkharrat.nexusdata.metamodel.Property.java
com.github.dkharrat.nexusdata.metamodel.Relationship.java
com.github.dkharrat.nexusdata.modelgen.ModelGenerator.java
com.github.dkharrat.nexusdata.modelgen.Startup.java
com.github.dkharrat.nexusdata.modelgen.metamodel.Attribute.java
com.github.dkharrat.nexusdata.modelgen.metamodel.Entity.java
com.github.dkharrat.nexusdata.modelgen.metamodel.EnumProperty.java
com.github.dkharrat.nexusdata.modelgen.metamodel.ModelWrapper.java
com.github.dkharrat.nexusdata.modelgen.metamodel.Model.java
com.github.dkharrat.nexusdata.modelgen.metamodel.Property.java
com.github.dkharrat.nexusdata.modelgen.metamodel.Relationship.java
com.github.dkharrat.nexusdata.predicate.ComparisonPredicate.java
com.github.dkharrat.nexusdata.predicate.CompoundPredicate.java
com.github.dkharrat.nexusdata.predicate.ConstantExpression.java
com.github.dkharrat.nexusdata.predicate.ExpressionBuilder.java
com.github.dkharrat.nexusdata.predicate.ExpressionVisitor.java
com.github.dkharrat.nexusdata.predicate.Expression.java
com.github.dkharrat.nexusdata.predicate.FieldPathExpression.java
com.github.dkharrat.nexusdata.predicate.NotPredicate.java
com.github.dkharrat.nexusdata.predicate.PredicateBuilder.java
com.github.dkharrat.nexusdata.predicate.Predicate.java
com.github.dkharrat.nexusdata.predicate.ThisExpression.java
com.github.dkharrat.nexusdata.predicate.parser.ComparisonParselet.java
com.github.dkharrat.nexusdata.predicate.parser.ConstantParselet.java
com.github.dkharrat.nexusdata.predicate.parser.ExpressionNode.java
com.github.dkharrat.nexusdata.predicate.parser.GroupParselet.java
com.github.dkharrat.nexusdata.predicate.parser.InfixParselet.java
com.github.dkharrat.nexusdata.predicate.parser.LexerGrammar.java
com.github.dkharrat.nexusdata.predicate.parser.Lexer.java
com.github.dkharrat.nexusdata.predicate.parser.LogicalParselet.java
com.github.dkharrat.nexusdata.predicate.parser.NameParselet.java
com.github.dkharrat.nexusdata.predicate.parser.ParseException.java
com.github.dkharrat.nexusdata.predicate.parser.Parser.java
com.github.dkharrat.nexusdata.predicate.parser.PredicateParser.java
com.github.dkharrat.nexusdata.predicate.parser.PrefixParselet.java
com.github.dkharrat.nexusdata.predicate.parser.Token.java
com.github.dkharrat.nexusdata.store.AndroidSqlPersistentStore.java
com.github.dkharrat.nexusdata.store.DatabaseHelper.java
com.github.dkharrat.nexusdata.store.InMemoryPersistentStore.java
com.github.dkharrat.nexusdata.store.PredicateToSQL.java
com.github.dkharrat.nexusdata.utils.DateUtil.java
com.github.dkharrat.nexusdata.utils.ObjectUtil.java
com.github.dkharrat.nexusdata.utils.SqlTableBuilder.java
com.github.dkharrat.nexusdata.utils.StreamUtil.java
com.github.dkharrat.nexusdata.utils.StringUtil.java
com.github.dkharrat.nexusdata.utils.android.CursorUtil.java
com.github.dkharrat.nexusdata.utils.android.SQLiteDatabaseHelper.java
org.example.todo.MainActivity.java
org.example.todo.NewTaskActivity.java
org.example.todo.Task.java
org.example.todo.TodoApp.java
org.example.todo.User.java
org.example.todo._Task.java
org.example.todo._User.java