for (String relName : relationPath) { curInfo = null; if (curEntity.getRelationInfos() != null) { curInfo = curEntity.getRelationInfos().get(relName); curEntity.getRelationInfos(), "ERROR: In %s controller, @RooDetail: Invalid value '%s': Can't get relation information about '%s' on %s entity", controller, relationField, relName, curEntity.getDestination());
/** * Searches the related entities of provided entity and returns a * {@link List} with all the related entities plus the provided entity. * * @param entity * the entity JavaType to search for its related entities. * @return a List with all the related entities. */ private List<JavaType> getEntityAndRelatedEntitiesList(JavaType entity) { ClassOrInterfaceTypeDetails entityDetails = getEntityDetails(entity); JpaEntityMetadata entityMetadata = metadataService.get(JpaEntityMetadata.createIdentifier(entityDetails)); List<JavaType> entitiesToCreateFactories = new ArrayList<JavaType>(); entitiesToCreateFactories.add(entity); // Get related child entities for (RelationInfo info : entityMetadata.getRelationInfos().values()) { // Add to list if (!entitiesToCreateFactories.contains(info.childType)) { entitiesToCreateFactories.add(info.childType); } } return entitiesToCreateFactories; }
public List<RelationInfoExtended> getRelationInfoFor(final JpaEntityMetadata entityMetadata, final String path) { Validate.notNull(entityMetadata, "entity metadata is required"); Validate.notBlank(path, "path is required"); List<RelationInfoExtended> infos = new ArrayList<RelationInfoExtended>(); String[] split = StringUtils.split(path, '.'); RelationInfo info = entityMetadata.getRelationInfos().get(split[0]); Validate.notNull(info, "%s.%s not found or not a relation field", entityMetadata.getDestination(), split[0]); ClassOrInterfaceTypeDetails childCid = getTypeLocationService().getTypeDetails(info.childType); JpaEntityMetadata childMetadata = getMetadataService().get(JpaEntityMetadata.createIdentifier(childCid)); infos.add(new RelationInfoExtended(info, entityMetadata, childMetadata)); if (split.length > 1) { infos .addAll(getRelationInfoFor(childMetadata, StringUtils.join(split, '.', 1, split.length))); } return infos; }
/** * Checks if entity has child one-to-one composition relations and gets * referenced fields info for adding it to the view context. * * @param entityMetadata the JpaEntityMetadata from parent entity * @param entityDetails the MemeberDetails from parent entity * @param ctx the ViewContext of view to create * @return a Map<String, List<FieldItem>> where the keys are the referenced * field names on parent entity and the values are the referenced * entity fields info to add to ViewContext */ private Map<String, List<FieldItem>> manageChildcompositionFields( JpaEntityMetadata entityMetadata, MemberDetails entityDetails, ViewContext<T> ctx) { // Manage referenced fields from one-to-one composite relations Map<String, RelationInfo> relationInfos = entityMetadata.getRelationInfos(); List<String> compositeReferencedFields = new ArrayList<String>(); for (Entry<String, RelationInfo> entry : relationInfos.entrySet()) { if (entry.getValue().type.name().equals(JpaRelationType.COMPOSITION.name()) && entry.getValue().cardinality.name().equals(Cardinality.ONE_TO_ONE.name())) { compositeReferencedFields.add(entry.getKey()); } } Map<String, List<FieldItem>> compositeRelationFields = getRelationFieldItems(getEditableFields(entityDetails.getFields()), false, ctx, FIELD_SUFFIX, compositeReferencedFields, entityMetadata); return compositeRelationFields; }
RelationInfo info = entityMetadata.getRelationInfos().get(relationField[level]); if (info == null) { return null;
for (RelationInfo info : entityMetadata.getRelationInfos().values()) {
for (RelationInfo info : entityMetadata.getRelationInfos().values()) { if (info.cardinality == Cardinality.ONE_TO_ONE) { this.propertyIdGenerator = entityMetadata.getCurrentIndentifierField().getFieldName(); for (RelationInfo info : entityMetadata.getRelationInfos().values()) { if (info.cardinality == Cardinality.ONE_TO_MANY || info.cardinality == Cardinality.MANY_TO_MANY) {
for (RelationInfo info : entityMetadata.getRelationInfos().values()) { if (info.cardinality == Cardinality.ONE_TO_MANY || info.cardinality == Cardinality.MANY_TO_MANY) {
for (RelationInfo relationInfo : entityMetadata.getRelationInfos().values()) { if (relationInfo.type == JpaRelationType.COMPOSITION && relationInfo.cardinality == Cardinality.ONE_TO_ONE) {
Map<String, RelationInfo> relationInfos = entityMetadata.getRelationInfos(); for (RelationInfo relation : relationInfos.values()) {
Map<String, RelationInfo> relationInfos = entityMetadata.getRelationInfos(); for (Entry<String, RelationInfo> entry : relationInfos.entrySet()) { RelationInfo info = entry.getValue();
Collection<RelationInfo> relatioInfos = entityMetadata.getRelationInfos().values(); Set<JavaType> relatedEntities = new TreeSet<JavaType>();
JpaEntityMetadata childEntityMetadata; List<RelationInfo> relatedInfosWithServiceLayer = new ArrayList<RelationInfo>(); for (RelationInfo info : entityMetadata.getRelationInfos().values()) { childEntity = info.fieldMetadata.getFieldType().getBaseType(); if (relatedEntities.containsKey(childEntity)) {
ClassOrInterfaceTypeDetails childEntityDetails; JpaEntityMetadata childEntityMetadata; for (RelationInfo info : entityMetadata.getRelationInfos().values()) { if (info.cardinality == Cardinality.ONE_TO_ONE && info.type == JpaRelationType.COMPOSITION) { childEntityDetails = getTypeLocationService().getTypeDetails(info.childType);
new HashMap<JavaType, ServiceMetadata>(); ClassOrInterfaceTypeDetails relatedService; for (RelationInfo info : entityMetadata.getRelationInfos().values()) { if (info.cardinality != Cardinality.ONE_TO_ONE && !requiredServicesByEntity.containsKey(info.childType)) {
for (String fieldName : entityMetadata.getRelationInfos().keySet()) { RelationInfoExtended info = getControllerOperations().getRelationInfoFor(entityMetadata, fieldName).get(0);
ClassOrInterfaceTypeDetails childEntityDetails; JpaEntityMetadata childEntityMetadata; for (RelationInfo info : entityMetadata.getRelationInfos().values()) { if (info.cardinality == Cardinality.ONE_TO_ONE) { childEntityDetails = getTypeLocationService().getTypeDetails(info.childType);
for (RelationInfo info : entityMetadata.getRelationInfos().values()) { if (info.cardinality == Cardinality.ONE_TO_ONE) {
/** * Searches the related entities of provided entity and returns a * {@link List} with all the related entities plus the provided entity. * * @param entity * the entity JavaType to search for its related entities. * @return a List with all the related entities. */ private List<JavaType> getEntityAndRelatedEntitiesList(JavaType entity) { ClassOrInterfaceTypeDetails entityDetails = getEntityDetails(entity); JpaEntityMetadata entityMetadata = metadataService.get(JpaEntityMetadata.createIdentifier(entityDetails)); List<JavaType> entitiesToCreateFactories = new ArrayList<JavaType>(); entitiesToCreateFactories.add(entity); // Get related child entities for (RelationInfo info : entityMetadata.getRelationInfos().values()) { // Add to list if (!entitiesToCreateFactories.contains(info.childType)) { entitiesToCreateFactories.add(info.childType); } } return entitiesToCreateFactories; }
Collection<RelationInfo> relatioInfos = entityMetadata.getRelationInfos().values(); Set<JavaType> relatedEntities = new TreeSet<JavaType>();