Android Open Source - storm-gen Entity Model






From Project

Back to project page storm-gen.

License

The source code is released under:

Apache License

If you think the Android project storm-gen 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

/*******************************************************************************
 * Copyright 2012 Google, Inc.//from  w  ww.  ja  va  2 s .  c om
 * 
 * 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 com.turbomanage.storm.apt.entity;

import com.turbomanage.storm.SQLiteDao;
import com.turbomanage.storm.api.Entity;
import com.turbomanage.storm.apt.BaseDaoModel;
import com.turbomanage.storm.apt.ClassModel;
import com.turbomanage.storm.apt.database.DatabaseModel;


public class EntityModel extends ClassModel {

  private static final String TABLE_SUFFIX = "Table";
  static final String DEFAULT_ID_FIELD = "id";
  static final String ID_COL = "_id";
  private BaseDaoModel baseDaoClass;
  private DatabaseModel dbModel;
  private String dbName;
  private String tableName;

  public EntityModel(Entity entity) {
    this.setTableName(entity.name());
    this.setDbName(entity.dbName());
  }
  
  public EntityModel(javax.persistence.Entity entity) {
    this.setTableName(entity.name());
  }

  public String getEntityName() {
    return this.getClassName();
  }
  
  public String getDaoName() {
    return this.getEntityName() + "Dao";
  }
  
  public String getDaoPackage() {
    return this.getPackage() + ".dao";
  }

  public String getDbFactory() {
    return dbModel.getFactoryClass();
  }
  
  /**
   * Provides the simple name of the base DAO class to templates.
   * 
   * @return String Simple name of the base DAO
   */
  public String getBaseDaoName() {
    return this.baseDaoClass.getClassName();
  }

  protected BaseDaoModel getBaseDaoClass() {
    return baseDaoClass;
  }

  protected void setBaseDaoClass(BaseDaoModel daoClass) {
    this.baseDaoClass = daoClass;
    // add corresponding import
    this.addImport(daoClass.getQualifiedClassName());
  }

  void setDatabase(DatabaseModel dbModel) {
    this.dbModel = dbModel;
    dbModel.addEntity(this);
  }
  
  public String getTableHelperClass() {
    return getDaoPackage() + "." + getTableHelperName();
  }
  
  public String getTableHelperName() {
    return capFirst(getTableName().replace("[", "").replace("]", "") + TABLE_SUFFIX);
  }

  public String getTableName() {
    return tableName;
  }

  void setTableName(String tableName) {
    this.tableName = tableName;
  }

  public FieldModel getIdField() {
    for (FieldModel f : this.fields) {
      if (f.isEntityId()) {
        return f;
      }
    }
    return null;
  }

  void setIdField(FieldModel idField) {
    idField.setEntityId(true);
    // TODO use a view instead
    idField.setColName("_id");
  }

  public String getDbName() {
    return dbName;
  }

  public void setDbName(String dbName) {
    this.dbName = dbName;
  }

}




Java Source Code List

com.turbomanage.storm.DatabaseHelper.java
com.turbomanage.storm.ModelBase.java
com.turbomanage.storm.SQLiteDao.java
com.turbomanage.storm.TableHelper.java
com.turbomanage.storm.api.Converter.java
com.turbomanage.storm.api.DatabaseFactory.java
com.turbomanage.storm.api.Database.java
com.turbomanage.storm.api.Entity.java
com.turbomanage.storm.api.Id.java
com.turbomanage.storm.api.Syncable.java
com.turbomanage.storm.api.package-info.java
com.turbomanage.storm.apt.BaseDaoModel.java
com.turbomanage.storm.apt.ClassModel.java
com.turbomanage.storm.apt.ClassProcessor.java
com.turbomanage.storm.apt.ClassTemplate.java
com.turbomanage.storm.apt.MainProcessor.java
com.turbomanage.storm.apt.ProcessorLogger.java
com.turbomanage.storm.apt.SqlUtil.java
com.turbomanage.storm.apt.StormAnnotationException.java
com.turbomanage.storm.apt.StormEnvironment.java
com.turbomanage.storm.apt.converter.ConverterModel.java
com.turbomanage.storm.apt.converter.ConverterProcessor.java
com.turbomanage.storm.apt.converter.ConverterTypeAnnotationValueVisitor.java
com.turbomanage.storm.apt.converter.ConverterTypeAnnotationValuesVisitor.java
com.turbomanage.storm.apt.converter.package-info.java
com.turbomanage.storm.apt.database.DatabaseFactoryTemplate.java
com.turbomanage.storm.apt.database.DatabaseModel.java
com.turbomanage.storm.apt.database.DatabaseProcessor.java
com.turbomanage.storm.apt.database.package-info.java
com.turbomanage.storm.apt.entity.EntityDaoTemplate.java
com.turbomanage.storm.apt.entity.EntityModel.java
com.turbomanage.storm.apt.entity.EntityProcessor.java
com.turbomanage.storm.apt.entity.FieldModel.java
com.turbomanage.storm.apt.entity.TableHelperTemplate.java
com.turbomanage.storm.apt.entity.package-info.java
com.turbomanage.storm.csv.CsvTableReader.java
com.turbomanage.storm.csv.CsvTableWriter.java
com.turbomanage.storm.csv.CsvUtils.java
com.turbomanage.storm.csv.package-info.java
com.turbomanage.storm.exception.TooManyResultsException.java
com.turbomanage.storm.exception.TypeNotSupportedException.java
com.turbomanage.storm.exception.package-info.java
com.turbomanage.storm.query.Query.java
com.turbomanage.storm.query.package-info.java
com.turbomanage.storm.sample.activity.ContactActivity.java
com.turbomanage.storm.sample.activity.NewContactActivity.java
com.turbomanage.storm.sample.adapter.ContactAdapter.java
com.turbomanage.storm.sample.database.SampleDatabaseHelper.java
com.turbomanage.storm.sample.loader.AbstractAsyncTaskLoader.java
com.turbomanage.storm.sample.loader.ContactLoader.java
com.turbomanage.storm.sample.model.Contact.java
com.turbomanage.storm.types.BlobConverter.java
com.turbomanage.storm.types.BooleanConverter.java
com.turbomanage.storm.types.ByteConverter.java
com.turbomanage.storm.types.CharConverter.java
com.turbomanage.storm.types.DateConverter.java
com.turbomanage.storm.types.DoubleConverter.java
com.turbomanage.storm.types.EnumConverter.java
com.turbomanage.storm.types.FloatConverter.java
com.turbomanage.storm.types.IntegerConverter.java
com.turbomanage.storm.types.LongConverter.java
com.turbomanage.storm.types.PrimitiveConverter.java
com.turbomanage.storm.types.ShortConverter.java
com.turbomanage.storm.types.StringConverter.java
com.turbomanage.storm.types.TypeConverter.java
com.turbomanage.storm.types.package-info.java
com.turbomanage.storm.package-info.java