/* * Copyright (c) 2015 Ngewi Fet <ngewif@gmail.com> * * 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.gnucash.android.model; import android.net.Uri; import java.sql.Timestamp; /** * Represents a GnuCash book which is made up of accounts and transactions * @author Ngewi Fet <ngewif@gmail.com> */ public class Book extends BaseModel { private Uri mSourceUri; private String mDisplayName; private String mRootAccountUID; private String mRootTemplateUID; private boolean mActive; private Timestamp mLastSync; /** * Default constructor */ public Book(){ init(); } /** * Create a new book instance * @param rootAccountUID GUID of root account */ public Book(String rootAccountUID){ this.mRootAccountUID = rootAccountUID; init(); } /** * Initialize default values for the book */ private void init(){ this.mRootTemplateUID = generateUID(); mLastSync = new Timestamp(System.currentTimeMillis()); } /** * Return the root account GUID of this book * @return GUID of the book root account */ public String getRootAccountUID() { return mRootAccountUID; } /** * Sets the GUID of the root account of this book. * <p>Each book has only one root account</p> * @param rootAccountUID GUID of the book root account */ public void setRootAccountUID(String rootAccountUID) { mRootAccountUID = rootAccountUID; } /** * Return GUID of the template root account * @return GUID of template root acount */ public String getRootTemplateUID() { return mRootTemplateUID; } /** * Set the GUID of the root template account * @param rootTemplateUID GUID of the root template account */ public void setRootTemplateUID(String rootTemplateUID) { mRootTemplateUID = rootTemplateUID; } /** * Check if this book is the currently active book in the app * <p>An active book is one whose data is currently displayed in the UI</p> * @return {@code true} if this is the currently active book, {@code false} otherwise */ public boolean isActive() { return mActive; } /** * Sets this book as the currently active one in the application * @param active Flag for activating/deactivating the book */ public void setActive(boolean active) { mActive = active; } /** * Return the Uri of the XML file from which the book was imported. * <p>In API level 16 and above, this is the Uri from the storage access framework which will * be used for synchronization of the book</p> * @return Uri of the book source XML */ public Uri getSourceUri() { return mSourceUri; } /** * Set the Uri of the XML source for the book * <p>This Uri will be used for sync where applicable</p> * @param uri Uri of the GnuCash XML source file */ public void setSourceUri(Uri uri) { this.mSourceUri = uri; } /** * Returns a name for the book * <p>This is the user readable string which is used in UI unlike the root account GUID which * is used for uniquely identifying each book</p> * @return Name of the book */ public String getDisplayName() { return mDisplayName; } /** * Set a name for the book * @param name Name of the book */ public void setDisplayName(String name) { this.mDisplayName = name; } /** * Get the time of last synchronization of the book * @return Timestamp of last synchronization */ public Timestamp getLastSync() { return mLastSync; } /** * Set the time of last synchronization of the book * @param lastSync Timestamp of last synchronization */ public void setLastSync(Timestamp lastSync) { this.mLastSync = lastSync; } }