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 + -
显示快捷键?