baseconfigintrospector.java

来自「RESIN 3.2 最新源码」· Java 代码 · 共 2,100 行 · 第 1/5 页

JAVA
2,100
字号
    }    return column;  }  public static JoinColumn getJoinColumn(JoinColumns joinColumns,                                          String keyName)  {    if (joinColumns == null)      return null;    return getJoinColumn(joinColumns.value(), keyName);  }  private AmberColumn findColumn(ArrayList<AmberColumn> columns, String ref)  {    if (((ref == null) || ref.equals("")) && columns.size() == 1)      return columns.get(0);    for (AmberColumn column : columns) {      if (column.getName().equals(ref))        return column;    }    return null;  }  public static JoinColumn getJoinColumn(JoinColumn []columnsAnn,                                          String keyName)  {    if (columnsAnn == null || columnsAnn.length == 0)      return null;    for (int i = 0; i < columnsAnn.length; i++) {      String ref = columnsAnn[i].referencedColumnName();      if (ref.equals("") || ref.equals(keyName))        return columnsAnn[i];    }    return null;  }  public static PrimaryKeyJoinColumn getJoinColumn(PrimaryKeyJoinColumn []columnsAnn,						   String keyName)  {    if (columnsAnn == null || columnsAnn.length == 0)      return null;    for (int i = 0; i < columnsAnn.length; i++) {      String ref = columnsAnn[i].referencedColumnName();      if (ref.equals("") || ref.equals(keyName))        return columnsAnn[i];    }    return null;  }  /**   * completes for dependent   */  class EmbeddedCompletion extends CompletionImpl {    private AccessibleObject _field;    private String _fieldName;    private Class _fieldType;    // The same completion is used for both:    // @Embedded or @EmbeddedId    private boolean _embeddedId;    EmbeddedCompletion(EntityType type,                       AccessibleObject field,                       String fieldName,                       Class fieldType,                       boolean embeddedId)    {      super(BaseConfigIntrospector.this, type, fieldName);      _field = field;      _fieldName = fieldName;      _fieldType = fieldType;      _embeddedId = embeddedId;    }    @Override    public void complete()      throws ConfigException    {      getInternalAttributeOverrideConfig(_entityType.getBeanClass(),					 _annotationCfg);      AttributeOverride attributeOverrideAnn = (AttributeOverride) _annotationCfg.getAnnotation();      AttributeOverrideConfig attributeOverrideConfig = _annotationCfg.getAttributeOverrideConfig();      boolean hasAttributeOverride = ! _annotationCfg.isNull();      AttributeOverrides attributeOverridesAnn = _field.getAnnotation(AttributeOverrides.class);      boolean hasAttributeOverrides = (attributeOverridesAnn != null);      if (hasAttributeOverride && hasAttributeOverrides) {        throw error(_field, L.l("{0} may not have both @AttributeOverride and @AttributeOverrides",                                _fieldName));      }      AttributeOverride attOverridesAnn[] = null;      if (attributeOverrideAnn != null) {        attOverridesAnn = new AttributeOverride[] { attributeOverrideAnn };      }      else if (attributeOverridesAnn != null) {        attOverridesAnn = attributeOverridesAnn.value();      }      AmberPersistenceUnit persistenceUnit = _entityType.getPersistenceUnit();      EmbeddableType type = persistenceUnit.createEmbeddable(_fieldType);      EntityEmbeddedField embeddedField;      if (_embeddedId) {        embeddedField = _entityType.getId().getEmbeddedIdField();      } else {        embeddedField = new EntityEmbeddedField(_entityType, type, _fieldName);      }      // embeddedField.setEmbeddedId(_embeddedId);      embeddedField.setLazy(false);      _entityType.addField(embeddedField);      // XXX: todo ...      // validateAttributeOverrides(_field, attributeOverridesAnn, type);      AmberTable sourceTable = _entityType.getTable();      HashMap<String, AmberColumn> embeddedColumns = new HashMap<String, AmberColumn>();      HashMap<String, String> fieldNameByColumn = new HashMap<String, String>();      for (EmbeddedSubField subField : embeddedField.getSubFields()) {        String embeddedFieldName = subField.getName();        String columnName = toSqlName(embeddedFieldName);        boolean notNull = false;        boolean unique = false;        if (attOverridesAnn != null) {          for (int j= 0; j < attOverridesAnn.length; j++) {            if (embeddedFieldName.equals(attOverridesAnn[j].name())) {              Column columnAnn = attOverridesAnn[j].column();              if (columnAnn != null) {                columnName = columnAnn.name();                notNull = ! columnAnn.nullable();                unique = columnAnn.unique();		subField.getColumn().setName(columnName);		subField.getColumn().setNotNull(notNull);		subField.getColumn().setUnique(unique);              }            }          }        }	/*        AmberType amberType = _persistenceUnit.createType(fields.get(i).getJavaType().getName());        AmberColumn column = sourceTable.createColumn(columnName, amberType);        column.setNotNull(notNull);        column.setUnique(unique);        embeddedColumns.put(columnName, column);        fieldNameByColumn.put(columnName, embeddedFieldName);	*/      }      /*      embeddedField.setEmbeddedColumns(embeddedColumns);      embeddedField.setFieldNameByColumn(fieldNameByColumn);      */      embeddedField.init();    }  }  /**   * completes for dependent   */  class SqlResultSetMappingCompletion extends CompletionImpl {    private String _name;    private EntityResult _entities[];    private ColumnResult _columns[];    SqlResultSetMappingCompletion(EntityType type,                                  String name,                                  EntityResult entities[],                                  ColumnResult columns[])    {      super(BaseConfigIntrospector.this, type);      _name = name;      _entities = entities;      _columns = columns;    }    @Override    public void complete()      throws ConfigException    {      addSqlResultSetMapping(_name,                             _entities,                             _columns);    }  }  void getInternalEmbeddableConfig(Class type,				   AnnotationConfig annotationCfg)  {    annotationCfg.reset(type, Embeddable.class);    EmbeddableConfig embeddableConfig = null;    if (_embeddableConfigMap != null)      embeddableConfig = _embeddableConfigMap.get(type.getName());    annotationCfg.setConfig(embeddableConfig);  }  void getInternalEntityConfig(Class type, AnnotationConfig annotationCfg)  {    annotationCfg.reset(type, Entity.class);    EntityConfig entityConfig = getEntityConfig(type.getName());    annotationCfg.setConfig(entityConfig);  }  void getInternalMappedSuperclassConfig(Class type,					 AnnotationConfig annotationCfg)  {    annotationCfg.reset(type, MappedSuperclass.class);    MappedSuperclassConfig mappedSuperConfig      = getMappedSuperclassConfig(type.getName());    annotationCfg.setConfig(mappedSuperConfig);  }  void getInternalEntityListenersConfig(Class type,					AnnotationConfig annotationCfg)  {    annotationCfg.reset(type, EntityListeners.class);    EntityConfig entityConfig = getEntityConfig(type.getName());    if (entityConfig == null)      return;    annotationCfg.setConfig(entityConfig.getEntityListeners());  }  void getInternalExcludeDefaultListenersConfig(Class type,						AnnotationConfig annotationCfg)  {    annotationCfg.reset(type, ExcludeDefaultListeners.class);    MappedSuperclassConfig entityConfig      = getInternalMappedSuperclassOrEntityConfig(type.getName());    if (entityConfig == null)      return;    if (entityConfig.getExcludeDefaultListeners())      annotationCfg.setConfig(entityConfig.getExcludeDefaultListeners());  }  void getInternalExcludeSuperclassListenersConfig(Class type,						   AnnotationConfig annotationCfg)  {    annotationCfg.reset(type, ExcludeSuperclassListeners.class);    MappedSuperclassConfig entityConfig      = getInternalMappedSuperclassOrEntityConfig(type.getName());    if (entityConfig == null)      return;    if (entityConfig.getExcludeSuperclassListeners())      annotationCfg.setConfig(entityConfig.getExcludeSuperclassListeners());  }  void getInternalInheritanceConfig(Class type,				    AnnotationConfig annotationCfg)  {    annotationCfg.reset(type, Inheritance.class);    EntityConfig entityConfig = getEntityConfig(type.getName());    if (entityConfig != null) {      annotationCfg.setConfig(entityConfig.getInheritance());    }  }  void getInternalNamedQueryConfig(Class type, AnnotationConfig annotationCfg)  {    annotationCfg.reset(type, NamedQuery.class);    EntityConfig entityConfig = getEntityConfig(type.getName());    if (entityConfig != null) {      annotationCfg.setConfig(entityConfig.getNamedQuery());    }  }  void getInternalNamedNativeQueryConfig(Class type,					 AnnotationConfig annotationCfg)  {    annotationCfg.reset(type, NamedNativeQuery.class);    EntityConfig entityConfig = getEntityConfig(type.getName());    if (entityConfig != null) {      annotationCfg.setConfig(entityConfig.getNamedNativeQuery());    }  }  void getInternalSqlResultSetMappingConfig(Class type,					    AnnotationConfig annotationCfg)  {    annotationCfg.reset(type, SqlResultSetMapping.class);    EntityConfig entityConfig = getEntityConfig(type.getName());    if (entityConfig != null) {      annotationCfg.setConfig(entityConfig.getSqlResultSetMapping());    }  }  void getInternalTableConfig(Class type,			      AnnotationConfig annotationCfg)  {    annotationCfg.reset(type, javax.persistence.Table.class);    EntityConfig entityConfig = getEntityConfig(type.getName());    if (entityConfig != null) {      annotationCfg.setConfig(entityConfig.getTable());    }  }  void getInternalSecondaryTableConfig(Class type,				       AnnotationConfig annotationCfg)  {    annotationCfg.reset(type, SecondaryTable.class);    EntityConfig entityConfig = getEntityConfig(type.getName());    if (entityConfig != null) {      annotationCfg.setConfig(entityConfig.getSecondaryTable());    }  }  void getInternalIdClassConfig(Class type,				AnnotationConfig annotationCfg)  {    annotationCfg.reset(type, IdClass.class);    MappedSuperclassConfig entityConfig      = getInternalMappedSuperclassOrEntityConfig(type.getName());    if (entityConfig == null)      return;    annotationCfg.setConfig(entityConfig.getIdClass());  }  void getInternalPrimaryKeyJoinColumnConfig(Class type,					     AnnotationConfig annotationCfg)  {    annotationCfg.reset(type, PrimaryKeyJoinColumn.class);    EntityConfig entityConfig = getEntityConfig(type.getName());    if (entityConfig != null) {      annotationCfg.setConfig(entityConfig.getPrimaryKeyJoinColumn());    }  }  void getInternalDiscriminatorColumnConfig(Class type,					    AnnotationConfig annotationCfg)  {    annotationCfg.reset(type, DiscriminatorColumn.class);    EntityConfig entityConfig = getEntityConfig(type.getName());    if (entityConfig != null) {      annotationCfg.setConfig(entityConfig.getDiscriminatorColumn());    }  }  void getInternalOneToOneConfig(Class type,                                 AccessibleObject field,                                 String fieldName,				 AnnotationConfig annotationCfg)  {    annotationCfg.reset(field, OneToOne.class);    MappedSuperclassConfig entityConfig      = getInternalMappedSuperclassOrEntityConfig(type.getName());    if (entityConfig == null)      return;    AttributesConfig attributes = entityConfig.getAttributes();    if (attributes != null) {      OneToOneConfig oneTo

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?