Project.java :  » UnTagged » android-shuffle » org » dodgybits » shuffle » android » core » model » Android Open Source

Android Open Source » UnTagged » android shuffle 
android shuffle » org » dodgybits » shuffle » android » core » model » Project.java
/*
 * Copyright (C) 2009 Android Shuffle Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.dodgybits.shuffle.android.core.model;

import org.dodgybits.shuffle.android.synchronisation.tracks.model.TracksEntity;

import android.text.TextUtils;

public class Project implements TracksEntity {
  private Id mLocalId = Id.NONE;
  private String mName;
  private Id mDefaultContextId = Id.NONE;
    private long mModifiedDate;
    private boolean mParallel;
    private boolean mArchived;
    private Id mTracksId = Id.NONE;
  private boolean mDeleted;
  private boolean mActive = true;
  

    private Project() {
    };
    

    public final Id getLocalId() {
        return mLocalId;
    }

    public final String getName() {
        return mName;
    }

    public final Id getDefaultContextId() {
        return mDefaultContextId;
    }
    
    public final long getModifiedDate() {
        return mModifiedDate;
    }

    public final boolean isParallel() {
        return mParallel;
    }

    public final boolean isArchived() {
        return mArchived;
    }
    
    public final Id getTracksId() {
        return mTracksId;
    }

    public final String getLocalName() {
        return mName;
    }
    
    @Override
    public final boolean isDeleted() {
        return mDeleted;
    }

    public final boolean isValid() {
        if (TextUtils.isEmpty(mName)) {
            return false;
        }
        return true;
    }
    
    @Override
    public boolean isActive() {
        return mActive;
    }

    @Override
    public final String toString() {
        return String.format(
                "[Project id=%1$s name='%2$s' defaultContextId='%3$s' " +
                "parallel=%4$s archived=%5$s tracksId='%6$s' deleted=%7$s active=%8$s]",
                mLocalId, mName, mDefaultContextId,
                mParallel, mArchived, mTracksId, mDeleted, mActive);
    }
    
    public static Builder newBuilder() {
        return Builder.create();
    }


    public static class Builder implements EntityBuilder<Project> {

        private Builder() {
        }

        private Project result;

        private static Builder create() {
            Builder builder = new Builder();
            builder.result = new Project();
            return builder;
        }

        public Id getLocalId() {
            return result.mLocalId;
        }

        public Builder setLocalId(Id value) {
            assert value != null;
            result.mLocalId = value;
            return this;
        }

        public String getName() {
            return result.mName;
        }

        public Builder setName(String value) {
            result.mName = value;
            return this;
        }
        
        public Id getDefaultContextId() {
            return result.mDefaultContextId;
        }

        public Builder setDefaultContextId(Id value) {
            assert value != null;
            result.mDefaultContextId = value;
            return this;
        }

        public long getModifiedDate() {
            return result.mModifiedDate;
        }

        public Builder setModifiedDate(long value) {
            result.mModifiedDate = value;
            return this;
        }

        public boolean isParallel() {
            return result.mParallel;
        }

        public Builder setParallel(boolean value) {
            result.mParallel = value;
            return this;
        }

        public boolean isArchived() {
            return result.mArchived;
        }

        public Builder setArchived(boolean value) {
            result.mArchived = value;
            return this;
        }
        
        public Id getTracksId() {
            return result.mTracksId;
        }

        public Builder setTracksId(Id value) {
            assert value != null;
            result.mTracksId = value;
            return this;
        }
        
        public boolean isActive() {
            return result.mActive;
        }
        
        @Override
        public Builder setActive(boolean value) {
            result.mActive = value;
            return this;
        }


        public boolean isDeleted() {
            return result.mDeleted;
        }

        @Override
        public Builder setDeleted(boolean value) {
            result.mDeleted = value;
            return this;
        }

        public final boolean isInitialized() {
            return result.isValid();
        }

        public Project build() {
            if (result == null) {
                throw new IllegalStateException(
                        "build() has already been called on this Builder.");
            }
            Project returnMe = result;
            result = null;
            return returnMe;
        }
        
        public Builder mergeFrom(Project project) {
            setLocalId(project.mLocalId);
            setName(project.mName);
            setDefaultContextId(project.mDefaultContextId);
            setModifiedDate(project.mModifiedDate);
            setParallel(project.mParallel);
            setArchived(project.mArchived);
            setTracksId(project.mTracksId);
            setDeleted(project.mDeleted);
            setActive(project.mActive);
            return this;
        }

    }

}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.