public boolean isImmutable() {
    Properties properties;

    if (tableConfiguration.getProperties().containsKey(PropertyRegistry.ANY_IMMUTABLE)) {
      properties = tableConfiguration.getProperties();
    } else {
      properties = context.getJavaModelGeneratorConfiguration().getProperties();
    }

    return isTrue(properties.getProperty(PropertyRegistry.ANY_IMMUTABLE));
  }
  public boolean isConstructorBased() {
    if (isImmutable()) {
      return true;
    }

    Properties properties;

    if (tableConfiguration.getProperties().containsKey(PropertyRegistry.ANY_CONSTRUCTOR_BASED)) {
      properties = tableConfiguration.getProperties();
    } else {
      properties = context.getJavaModelGeneratorConfiguration().getProperties();
    }

    return isTrue(properties.getProperty(PropertyRegistry.ANY_CONSTRUCTOR_BASED));
  }
  public void initialize() {
    calculateJavaClientAttributes();
    calculateModelAttributes();
    calculateXmlAttributes();

    if (tableConfiguration.getModelType() == ModelType.HIERARCHICAL) {
      rules = new HierarchicalModelRules(this);
    } else if (tableConfiguration.getModelType() == ModelType.FLAT) {
      rules = new FlatModelRules(this);
    } else {
      rules = new ConditionalModelRules(this);
    }

    context.getPlugins().initialized(this);
  }
 public String getTableConfigurationProperty(String property) {
   return tableConfiguration.getProperty(property);
 }
 public GeneratedKey getGeneratedKey() {
   return tableConfiguration.getGeneratedKey();
 }
 public String getSelectByPrimaryKeyQueryId() {
   return tableConfiguration.getSelectByPrimaryKeyQueryId();
 }
 public String getSelectByExampleQueryId() {
   return tableConfiguration.getSelectByExampleQueryId();
 }