public List<BusinessObject> getReferencedBusinessObjectsByComposition() { List<BusinessObject> refs = new ArrayList<>(); for (Field field : fields) { if (isACompositionField(field)) { refs.add(((RelationField) field).getReference()); } } return refs; }
private void addReferencedBoToBom(final Field field, final BusinessObjectModelBuilder bom) { if (field instanceof RelationField) { final RelationField f = (RelationField) field; bom.withBO(f.getReference()); } } }
public List<BusinessObject> getReferencedBusinessObjectsByComposition() { List<BusinessObject> refs = new ArrayList<>(); for (Field field : fields) { if (isACompositionField(field)) { refs.add(((RelationField) field).getReference()); } } return refs; }
protected int getReducedUniqueName(JDefinedClass entityClass, JFieldVar jFieldVar, RelationField relationField) { final StringBuilder builder = new StringBuilder(); builder.append(entityClass.name()); builder.append("_"); builder.append(jFieldVar.name()); builder.append("_"); builder.append(relationField.getReference().getSimpleName()); return Math.abs(builder.toString().hashCode()); }
protected int getReducedUniqueName(JDefinedClass entityClass, JFieldVar jFieldVar, RelationField relationField) { final StringBuilder builder = new StringBuilder(); builder.append(entityClass.name()); builder.append("_"); builder.append(jFieldVar.name()); builder.append("_"); builder.append(relationField.getReference().getSimpleName()); return Math.abs(builder.toString().hashCode()); }
private void addReferencedBoToBom(final BusinessObject bo, final BusinessObjectModelBuilder bom) { for (final Field field : bo.getFields()) { if (field instanceof RelationField && !bo.equals(((RelationField) field).getReference())) { bom.withBO(((RelationField) field).getReference()); } } } }
RelationField relationField = (RelationField) field; if (relationField.getType() == AGGREGATION) { aggregatedBusinessObjects.add(relationField.getReference());
RelationField relationField = (RelationField) field; if (relationField.getType() == AGGREGATION) { aggregatedBusinessObjects.add(relationField.getReference());
public static List<Query> createProvidedQueriesForLazyField(final BusinessObjectModel bom, final BusinessObject bo) { final List<Query> queries = new ArrayList<>(); for (QueryGenerator queryGenerator : getQueryGenerators()) { for (final BusinessObject businessObject : bom.getBusinessObjects()) { for (final Field f : businessObject.getFields()) { if (f instanceof RelationField && ((RelationField) f).isLazy()) { if (((RelationField) f).getReference().equals(bo)) { final Query query = queryGenerator.createQueryForLazyField(businessObject, (RelationField) f); if (query != null) { queries.add(query); } } } } } } return queries; }
public static List<Query> createProvidedQueriesForLazyField(final BusinessObjectModel bom, final BusinessObject bo) { final List<Query> queries = new ArrayList<>(); for (QueryGenerator queryGenerator : getQueryGenerators()) { for (final BusinessObject businessObject : bom.getBusinessObjects()) { for (final Field f : businessObject.getFields()) { if (f instanceof RelationField && ((RelationField) f).isLazy()) { if (((RelationField) f).getReference().equals(bo)) { final Query query = queryGenerator.createQueryForLazyField(businessObject, (RelationField) f); if (query != null) { queries.add(query); } } } } } } return queries; }
@Override public Query createQueryForLazyField(BusinessObject businessObject, RelationField relationField) { checkObjectIsNotNull(relationField, "relationField cannot be null"); final String name = createQueryNameForLazyField(businessObject, relationField); final String content = createQueryContentForLazyField(businessObject.getQualifiedName(), relationField); final Query q = new Query(name, content, relationField.getReference().getQualifiedName()); if (relationField.isCollection()) { q.setReturnType(List.class.getName()); } q.addQueryParameter(Field.PERSISTENCE_ID, Long.class.getName()); return q; }
@Override public Query createQueryForLazyField(BusinessObject businessObject, RelationField relationField) { checkObjectIsNotNull(relationField, "relationField cannot be null"); final String name = createQueryNameForLazyField(businessObject, relationField); final String content = createQueryContentForLazyField(businessObject.getQualifiedName(), relationField); final Query q = new Query(name, content, relationField.getReference().getQualifiedName()); if (relationField.isCollection()) { q.setReturnType(List.class.getName()); } q.addQueryParameter(Field.PERSISTENCE_ID, Long.class.getName()); return q; }
@Override protected ValidationStatus validate(BusinessObjectModel bom) { ValidationStatus validationStatus = new ValidationStatus(); for (BusinessObject bo : bom.getBusinessObjects()) { List<Field> boFields = bo.getFields(); for (Field boField : boFields) { if (boField instanceof RelationField) { RelationField relationField = (RelationField) boField; String fieldReferenceQualifiedName = relationField.getReference().getQualifiedName(); String boQualifiedName = bo.getQualifiedName(); if (relationField.getType() == AGGREGATION && fieldReferenceQualifiedName.equals(boQualifiedName) && relationField.isCollection()) { validationStatus.addError(MULTIPLE_AGGREGATION_RELATION_TO_ITSELF, "The object " + boQualifiedName + " is referencing itself in a multiple aggregation relation.", Collections.singletonMap(StatusContext.BUSINESS_OBJECT_NAME_KEY, boQualifiedName)); } } } } return validationStatus; } }
@Override protected ValidationStatus validate(BusinessObjectModel bom) { ValidationStatus validationStatus = new ValidationStatus(); for (BusinessObject bo : bom.getBusinessObjects()) { List<Field> boFields = bo.getFields(); for (Field boField : boFields) { if (boField instanceof RelationField) { RelationField relationField = (RelationField) boField; String fieldReferenceQualifiedName = relationField.getReference().getQualifiedName(); String boQualifiedName = bo.getQualifiedName(); if (relationField.getType() == AGGREGATION && fieldReferenceQualifiedName.equals(boQualifiedName) && relationField.isCollection()) { validationStatus.addError(MULTIPLE_AGGREGATION_RELATION_TO_ITSELF, "The object " + boQualifiedName + " is referencing itself in a multiple aggregation relation.", Collections.singletonMap(StatusContext.BUSINESS_OBJECT_NAME_KEY, boQualifiedName)); } } } } return validationStatus; } }
public JClass toJavaClass(final Field field) { if (field instanceof SimpleField) { final Class<?> fieldClass = ((SimpleField) field).getType().getClazz(); return getModel().ref(fieldClass); } final String qualifiedName = ((RelationField) field).getReference().getQualifiedName(); return getModel().ref(qualifiedName); }
public JClass toJavaClass(final Field field) { if (field instanceof SimpleField) { final Class<?> fieldClass = ((SimpleField) field).getType().getClazz(); return getModel().ref(fieldClass); } final String qualifiedName = ((RelationField) field).getReference().getQualifiedName(); return getModel().ref(qualifiedName); }
protected JMethod createMethodForNewInstance(final BusinessObject bo, final JDefinedClass entity, final JDefinedClass daoInterface) { final JMethod newInstanceMethod = addMethodSignature(daoInterface, NEW_INSTANCE_METHOD_NAME, entity); for (final Field field : bo.getFields()) { if (!field.isNullable()) { String typeClassName = null; if (field instanceof SimpleField) { typeClassName = ((SimpleField) field).getType().getClazz().getName(); } else if (field instanceof RelationField) { typeClassName = ((RelationField) field).getReference().getQualifiedName(); } newInstanceMethod.param(getModel().ref(typeClassName), field.getName()); } } return newInstanceMethod; }
protected JMethod createMethodForNewInstance(final BusinessObject bo, final JDefinedClass entity, final JDefinedClass daoInterface) { final JMethod newInstanceMethod = addMethodSignature(daoInterface, NEW_INSTANCE_METHOD_NAME, entity); for (final Field field : bo.getFields()) { if (!field.isNullable()) { String typeClassName = null; if (field instanceof SimpleField) { typeClassName = ((SimpleField) field).getType().getClazz().getName(); } else if (field instanceof RelationField) { typeClassName = ((RelationField) field).getReference().getQualifiedName(); } newInstanceMethod.param(getModel().ref(typeClassName), field.getName()); } } return newInstanceMethod; }
private void addJoinTable(final JDefinedClass entityClass, final RelationField field, final JFieldVar fieldVar) { final JAnnotationUse joinTable = codeGenerator.addAnnotation(fieldVar, JoinTable.class); joinTable.param("name", getJoinTableName(entityClass.name(), field.getName())); final JAnnotationArrayMember joinColumns = joinTable.paramArray("joinColumns"); final JAnnotationUse nameQueryAnnotation = joinColumns.annotate(JoinColumn.class); nameQueryAnnotation.param("name", getJoinColumnName(entityClass.name())); final JAnnotationArrayMember inverseJoinColumns = joinTable.paramArray("inverseJoinColumns"); final JAnnotationUse a = inverseJoinColumns.annotate(JoinColumn.class); a.param("name", getJoinColumnName(field.getReference().getSimpleName())); }
private void addJoinTable(final JDefinedClass entityClass, final RelationField field, final JFieldVar fieldVar) { final JAnnotationUse joinTable = codeGenerator.addAnnotation(fieldVar, JoinTable.class); joinTable.param("name", getJoinTableName(entityClass.name(), field.getName())); final JAnnotationArrayMember joinColumns = joinTable.paramArray("joinColumns"); final JAnnotationUse nameQueryAnnotation = joinColumns.annotate(JoinColumn.class); nameQueryAnnotation.param("name", getJoinColumnName(entityClass.name())); final JAnnotationArrayMember inverseJoinColumns = joinTable.paramArray("inverseJoinColumns"); final JAnnotationUse a = inverseJoinColumns.annotate(JoinColumn.class); a.param("name", getJoinColumnName(field.getReference().getSimpleName())); }