public static void addCriteria( Map<Class, Map<String, Attribute>> criteriaAttributes, String listId, Attribute attr ) { Class table = attr.getJavaMember().getDeclaringClass(); addCriteria(criteriaAttributes, listId, table, attr); }
Member member = attribute.getJavaMember();
/** * Creates the columns field map. * * @param m * the m * @param superColumn * the super column * @return the map */ public static Map<String, Field> createColumnsFieldMap(EntityMetadata m, EmbeddableType superColumn) { Map<String, Field> columnNameToFieldMap = new HashMap<String, Field>(); Set<Attribute> attributes = superColumn.getAttributes(); for (Attribute column : attributes) { columnNameToFieldMap.put(((AbstractAttribute) column).getJPAColumnName(), (Field) column.getJavaMember()); } return columnNameToFieldMap; }
private static void setFieldValue(Object entity, Object value, Attribute column) { value = PropertyAccessorHelper.fromSourceToTargetClass(column.getJavaType(), value.getClass(), value); PropertyAccessorHelper.set(entity, (Field) column.getJavaMember(), value); }
/** * On enum. * * @param attribute * the attribute * @param fieldValue * the field value * @return the object */ private Object onEnum(Attribute attribute, Object fieldValue) { if (((Field) attribute.getJavaMember()).getType().isEnum()) { EnumAccessor accessor = new EnumAccessor(); fieldValue = accessor.fromString(((AbstractAttribute) attribute).getBindableJavaType(), fieldValue.toString()); } return fieldValue; }
/** * Gets the compound key. * * @param attribute * the attribute * @param entity * the entity * @return the compound key * @throws InstantiationException * the instantiation exception * @throws IllegalAccessException * the illegal access exception */ private Object getCompoundKey(Attribute attribute, Object entity) throws InstantiationException, IllegalAccessException { Object compoundKeyObject = null; if (entity != null) { compoundKeyObject = PropertyAccessorHelper.getObject(entity, (Field) attribute.getJavaMember()); if (compoundKeyObject == null) { compoundKeyObject = ((AbstractAttribute) attribute).getBindableJavaType().newInstance(); } } return compoundKeyObject; }
/** * Iterate and populate entity. * * @param entity * the entity * @param obj * the obj * @param iterator * the iterator */ private void iterateAndPopulateEntity(Object entity, JsonObject obj, Iterator<Attribute> iterator) { while (iterator.hasNext()) { Attribute attribute = iterator.next(); Field field = (Field) attribute.getJavaMember(); String colName = ((AbstractAttribute) attribute).getJPAColumnName(); if (!colName.equalsIgnoreCase(CouchbaseConstants.KUNDERA_ENTITY) && obj.get(colName) != null) { Object value = ConvertUtils.convert(obj.get(colName), field.getType()); PropertyAccessorHelper.set(entity, field, value); } } }
private static void getAttributeOfEmbedddable(Map<String, Field> columnNameToFieldMap, Metamodel metaModel, Attribute attribute) { EmbeddableType embeddable = metaModel.embeddable(((AbstractAttribute) attribute).getBindableJavaType()); Iterator<Attribute> embeddableIter = embeddable.getAttributes().iterator(); while (embeddableIter.hasNext()) { Attribute embedAttrib = embeddableIter.next(); // Reason is to avoid in case embeddable attribute within // embeddable. if (!((MetamodelImpl) metaModel).isEmbeddable(embedAttrib.getJavaType())) { columnNameToFieldMap.put(((AbstractAttribute) embedAttrib).getJPAColumnName(), (Field) embedAttrib.getJavaMember()); } else { getAttributeOfEmbedddable(columnNameToFieldMap, metaModel, embedAttrib); } } }
/** * Iterate and populate json object. * * @param entity * the entity * @param iterator * the iterator * @return the json object */ private JsonObject iterateAndPopulateJsonObject(Object entity, Iterator<Attribute> iterator, String tableName) { JsonObject obj = JsonObject.create(); while (iterator.hasNext()) { Attribute attribute = iterator.next(); Field field = (Field) attribute.getJavaMember(); Object value = PropertyAccessorHelper.getObject(entity, field); obj.put(((AbstractAttribute) attribute).getJPAColumnName(), value); } obj.put(CouchbaseConstants.KUNDERA_ENTITY, tableName); return obj; }
/** * Adds the source. * * @param entity * the entity * @param values * the values * @param entityType * the entity type */ private void addSource(Object entity, Map<String, Object> values, EntityType entityType) { Set<Attribute> attributes = entityType.getAttributes(); for (Attribute attrib : attributes) { if (!attrib.isAssociation()) { Object value = PropertyAccessorHelper.getObject(entity, (Field) attrib.getJavaMember()); values.put(((AbstractAttribute) attrib).getJPAColumnName(), value); } } }
/** * Gets the json object. * * @param columns * the columns * @param object * the object * @return the json object */ private static JsonObject getJsonObject(Set<Attribute> columns, Object object) { JsonObject jsonObject = new JsonObject(); for (Attribute column : columns) { if (!column.isAssociation()) { Object valueObject = PropertyAccessorHelper.getObject(object, (Field) column.getJavaMember()); jsonObject.add(((AbstractAttribute) column).getJPAColumnName(), getJsonPrimitive(valueObject, column.getJavaType())); } } return jsonObject; }
/** * Populate metadata. * * @param entityType * the EntityType * @param <X> * the generic type * @param metadata * the metadata * @throws RuleValidationException */ private <X> void populateRelationMetaData(EntityType entityType, Class<X> clazz, EntityMetadata metadata) { Set<Attribute> attributes = entityType.getAttributes(); for (Attribute attribute : attributes) { if (attribute.isAssociation()) { addRelationIntoMetadata(clazz, (Field) attribute.getJavaMember(), metadata); } } }
/** * On embeddable. * * @param entityType * the entity type * @param column * the column * @param entity * the entity * @param embeddableType * the embeddable type * @param jsonObject * the json object */ private static void onEmbeddable(EntityType entityType, Attribute column, Object entity, EmbeddableType embeddableType, JsonObject jsonObject) { Object embeddedObject = PropertyAccessorHelper.getObject(entity, (Field) column.getJavaMember()); String embeddedColumnName = ((AbstractAttribute) column).getJPAColumnName(); Set<Attribute> embeddableAttributes = embeddableType.getAttributes(); jsonObject.add(embeddedColumnName, getJsonObject(embeddableAttributes, embeddedObject)); }
/** * Gets the composite id embeddables. * * @param embeddable * the embeddable * @param compositeEmbeddables * the composite embeddables * @param metaModel * the meta model * @return the composite id embeddables */ private void getCompositeIdEmbeddables(EmbeddableType embeddable, List compositeEmbeddables, MetamodelImpl metaModel) { compositeEmbeddables.add(embeddable.getJavaType().getSimpleName()); for (Object column : embeddable.getAttributes()) { Attribute columnAttribute = (Attribute) column; Field f = (Field) columnAttribute.getJavaMember(); if (columnAttribute.getJavaType().isAnnotationPresent(Embeddable.class)) { getCompositeIdEmbeddables(metaModel.embeddable(columnAttribute.getJavaType()), compositeEmbeddables, metaModel); } } }
private void prepareEmbeddedIdFields(Set<Attribute> embeddedAttributes, MetamodelImpl metaModel, Map<String, Object> embeddedIdFields, Document doc, EntityMetadata metadata) { for (Attribute attribute : embeddedAttributes) { if (!ReflectUtils.isTransientOrStatic((Field) attribute.getJavaMember())) { if (metaModel.isEmbeddable(attribute.getJavaType())) { EmbeddableType embeddable = metaModel.embeddable(attribute.getJavaType()); prepareEmbeddedIdFields(embeddable.getAttributes(), metaModel, embeddedIdFields, doc, metadata); } else { String columnName = ((AbstractAttribute) attribute).getJPAColumnName(); embeddedIdFields.put(columnName, doc.get(metadata.getEntityClazz().getSimpleName() + "." + columnName)); } } } }
/** * Checks whether an entity with given metadata contains a collection field * * @param m * @return */ public static boolean containsBasicElementCollectionField(final EntityMetadata m, final KunderaMetadata kunderaMetadata) { Metamodel metaModel = kunderaMetadata.getApplicationMetadata().getMetamodel(m.getPersistenceUnit()); EntityType entityType = metaModel.entity(m.getEntityClazz()); Iterator<Attribute> iter = entityType.getAttributes().iterator(); while (iter.hasNext()) { Attribute attr = iter.next(); if (attr.isCollection() && !attr.isAssociation() && isBasicElementCollectionField((Field) attr.getJavaMember())) { return true; } } return false; }
/** * setter field. * * @param row * the row * @param schemaTable * the schema table * @param embeddedObject * the embedded object * @param embeddedAttrib * the embedded attrib */ private void setField(Row row, Table schemaTable, Object embeddedObject, Attribute embeddedAttrib) { Field field = (Field) embeddedAttrib.getJavaMember(); FieldDef fieldDef = schemaTable.getField(((AbstractAttribute) embeddedAttrib).getJPAColumnName()); Object valueObj = PropertyAccessorHelper.getObject(embeddedObject, field); if (valueObj != null) NoSqlDBUtils.add(fieldDef, row, valueObj, ((AbstractAttribute) embeddedAttrib).getJPAColumnName()); }
private static void populateEmbeddedIdFieldsUtil(Set<Attribute> embeddedAttributes, MetamodelImpl metaModel, Set<String> embeddedIdFields) { for (Attribute attribute : embeddedAttributes) { if (!ReflectUtils.isTransientOrStatic((Field) attribute.getJavaMember())) { if (metaModel.isEmbeddable(attribute.getJavaType())) { EmbeddableType embeddable = metaModel.embeddable(attribute.getJavaType()); populateEmbeddedIdFieldsUtil(embeddable.getAttributes(), metaModel, embeddedIdFields); } else { String columnName = ((AbstractAttribute) attribute).getJPAColumnName(); embeddedIdFields.add(columnName); } } } }
/** * * @param metadata * @param clazz * @param metaModelBuilder */ private <X, T> void validateAndSetId(EntityMetadata metadata, Class<X> clazz, MetaModelBuilder<X, T> metaModelBuilder) { if (metadata.getIdAttribute() == null) { EntityType entityType = (EntityType) metaModelBuilder.getManagedTypes().get(clazz); if (entityType.getSupertype() != null) { Attribute idAttribute = ((AbstractIdentifiableType) entityType.getSupertype()).getIdAttribute(); metadata.setIdAttribute((SingularAttribute) idAttribute); populateIdAccessorMethods(metadata, clazz, (Field) idAttribute.getJavaMember()); } } validateIdAttribute(metadata.getIdAttribute(), clazz); }
/** * recursively populate all the fields present in partition key * * @param embeddedAttributes * @param metaModel * @param embeddedIdFields */ private static void populateEmbeddedIdFields(Set<Attribute> embeddedAttributes, MetamodelImpl metaModel, Set<String> embeddedIdFields) { for (Attribute attribute : embeddedAttributes) { if (!ReflectUtils.isTransientOrStatic((Field) attribute.getJavaMember())) { if (metaModel.isEmbeddable(attribute.getJavaType())) { EmbeddableType embeddable = metaModel.embeddable(attribute.getJavaType()); populateEmbeddedIdFieldsUtil(embeddable.getAttributes(), metaModel, embeddedIdFields); } } } }