Back to project page LitePal.
The source code is released under:
Apache License
If you think the Android project LitePal listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
/* * Copyright (C) Tony Green, Litepal Framework Open Source Project *//w w w .j a v a 2s . c o m * 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.litepal.tablemanager.model; import org.litepal.util.Const; /** * This is a model class for table associations. It stores table name, * associated table name, table name which holds foreign key, and association * type. Relations have three types. One2One, Many2One and Many2Many. If the * association type is One2One or Many2One, the foreign key will be on the side * of tableHoldsForeignKey. If the association is Many2Many, a intermediate join * table will be built and named by the concatenation of the two target table * names in alphabetical order with underline in the middle. * * @author Tony Green * @since 1.0 */ public class AssociationsModel { /** * Table name. */ private String tableName; /** * Associated table name. */ private String associatedTableName; /** * The table which holds foreign key. */ private String tableHoldsForeignKey; /** * The association type, including {@link Const.Model#MANY_TO_ONE}, * {@link Const.Model#MANY_TO_MANY}, {@link Const.Model#ONE_TO_ONE}. */ private int associationType; /** * Get table name. * * @return Return the table name. */ public String getTableName() { return tableName; } /** * Set table name. * * @param tableName * The table name to set. */ public void setTableName(String tableName) { this.tableName = tableName; } /** * Get associated table name. * * @return Return the associated table name. */ public String getAssociatedTableName() { return associatedTableName; } /** * Set associated table name. * * @param associatedTableName * The associated table name. */ public void setAssociatedTableName(String associatedTableName) { this.associatedTableName = associatedTableName; } /** * Get the table which holds foreign key. * * @return The table which holds foreign key. */ public String getTableHoldsForeignKey() { return tableHoldsForeignKey; } /** * Set the table which holds foreign key. * * @param tableHoldsForeignKey * The table which holds foreign key to set. */ public void setTableHoldsForeignKey(String tableHoldsForeignKey) { this.tableHoldsForeignKey = tableHoldsForeignKey; } /** * Get the association type. * * @return The association type. */ public int getAssociationType() { return associationType; } /** * Set the association type. * * @param associationType * Within {@link Const.Model#MANY_TO_ONE}, * {@link Const.Model#MANY_TO_MANY}, * {@link Const.Model#ONE_TO_ONE}. */ public void setAssociationType(int associationType) { this.associationType = associationType; } /** * Override equals method to make sure that if two associated tables in the * association model are same ignoring sides, they are same association * model. */ @Override public boolean equals(Object o) { if (o instanceof AssociationsModel) { AssociationsModel association = (AssociationsModel) o; if (association.getTableName() != null && association.getAssociatedTableName() != null) { if (association.getAssociationType() == associationType && association.getTableHoldsForeignKey().equals(tableHoldsForeignKey)) { if (association.getTableName().equals(tableName) && association.getAssociatedTableName().equals(associatedTableName) && association.getTableHoldsForeignKey().equals(tableHoldsForeignKey)) { return true; } else if (association.getTableName().equals(associatedTableName) && association.getAssociatedTableName().equals(tableName) && association.getTableHoldsForeignKey().equals(tableHoldsForeignKey)) { return true; } } } } return false; } }