@Override public Object getIdentifier(Object entity) { Class<?> entityClass = entity.getClass(); // EntityMetadata entityMetadata = KunderaMetadataManager.getEntityMetadata(kunderaMetadata, entityClass); // // if (entityMetadata == null) // { // throw new IllegalArgumentException(entityClass + " is not an entity"); // } return PropertyAccessorHelper.getId(entity, /*entityMetadata*/null); }
@Override public Object getIdentifier(Object entity) { Class<?> entityClass = entity.getClass(); EntityMetadata entityMetadata = KunderaMetadataManager.getEntityMetadata(kunderaMetadata, entityClass); if (entityMetadata == null) { throw new IllegalArgumentException(entityClass + " is not an entity"); } return PropertyAccessorHelper.getId(entity, entityMetadata); }
/** * Validates an entity object for CRUD operations * * @param entity * Instance of entity object * @return True if entity object is valid, false otherwise */ public boolean isValidEntityObject(Object entity, EntityMetadata metadata) { if (entity == null) { log.error("Entity to be persisted must not be null, operation failed"); return false; } Object id = PropertyAccessorHelper.getId(entity, metadata); if (id == null) { log.error("Entity to be persisted can't have Primary key set to null."); throw new IllegalArgumentException("Entity to be persisted can't have Primary key set to null."); // return false; } return true; }
/** * @param relationStack * @param entity * @param m */ private void addToRelationStack(Map<Object, Object> relationStack, Object entity, EntityMetadata m) { Object obj = entity; if (entity instanceof EnhanceEntity) { obj = ((EnhanceEntity) entity).getEntity(); } relationStack.put(obj.getClass().getCanonicalName() + "#" + PropertyAccessorHelper.getId(obj, m), obj); }
/** * @param relationStack * @param entity * @param m * @return */ private Object fetchFromRelationStack(Map<Object, Object> relationStack, Object entity, EntityMetadata m) { Object obj = entity; if (entity instanceof EnhanceEntity) { obj = ((EnhanceEntity) entity).getEntity(); } return relationStack.get(obj.getClass().getCanonicalName() + "#" + PropertyAccessorHelper.getId(obj, m)); }
/** * Compares original with relational entity. * * @param relationalEntity * @param originalEntity * @return */ private boolean compareTo(Object relationalEntity, Object originalEntity) { if (relationalEntity != null && originalEntity != null && relationalEntity.getClass().isAssignableFrom(originalEntity.getClass())) { EntityMetadata metadata = KunderaMetadataManager.getEntityMetadata(kunderaMetadata, originalEntity.getClass()); Object relationalEntityId = PropertyAccessorHelper.getId(relationalEntity, metadata); Object originalEntityId = PropertyAccessorHelper.getId(originalEntity, metadata); return relationalEntityId.equals(originalEntityId); } return false; }
/** * @param relationStack * @param entity * @param m * @return */ private Boolean existsInRelationStack(Map<Object, Object> relationStack, Object entity, EntityMetadata m) { Object obj = entity; if (entity instanceof EnhanceEntity) { obj = ((EnhanceEntity) entity).getEntity(); } return relationStack .containsKey(obj.getClass().getCanonicalName() + "#" + PropertyAccessorHelper.getId(obj, m)); }
/** * Adds the to relation stack. * * @param relationStack * the relation stack * @param entity * the entity * @param m * the m */ protected void addToRelationStack(Map<Object, Object> relationStack, Object entity, EntityMetadata m) { Object obj = entity; if (entity instanceof EnhanceEntity) { obj = ((EnhanceEntity) entity).getEntity(); } relationStack.put(obj.getClass().getCanonicalName() + "#" + PropertyAccessorHelper.getId(obj, m), obj); }
public Node getNodeFromCache(Object entity, EntityMetadata entityMetadata, PersistenceDelegator pd) { if (entity == null) { throw new IllegalArgumentException("Entity is null, can't check whether it's in persistence context"); } Object primaryKey = PropertyAccessorHelper.getId(entity, entityMetadata); if (primaryKey == null) { throw new IllegalArgumentException("Primary key not set into entity"); } String nodeId = ObjectGraphUtils.getNodeId(primaryKey, entity.getClass()); return getNodeFromCache(nodeId, pd); }
/** * Gets the id. * * @param entity * the entity * @param metadata * the metadata * @return the id */ protected Object getId(Object entity, EntityMetadata metadata) { try { return PropertyAccessorHelper.getId(entity, metadata); } catch (PropertyAccessException e) { log.error("Error while Getting ID for entity {}, Caused by: {}.", entity, e); throw new EntityReaderException("Error while Getting ID for entity " + entity, e); } }
@Override public void unIndex(Class entityClazz, Object entity, EntityMetadata metadata, MetamodelImpl metamodelImpl) { Object id = PropertyAccessorHelper.getId(entity, metadata); DeleteResponse response = client .prepareDelete(metadata.getSchema().toLowerCase(), entityClazz.getSimpleName(), id.toString()).execute() .actionGet(); }
void populateObjectFromRow(EntityMetadata metadata, MetamodelImpl metaModel, EntityType entityType, List results, Map<String, Object> relationalValues, Object entity, Row row) { ColumnDefinitions columnDefs = row.getColumnDefinitions(); Iterator<Definition> columnDefIter = columnDefs.iterator(); entity = iteratorColumns(metadata, metaModel, entityType, relationalValues, entity, row, columnDefIter); if (entity != null && entity.getClass().isAssignableFrom(metadata.getEntityClazz())) { Object rowKey = PropertyAccessorHelper.getId(entity, metadata); // populate secondary tables data if there is any. populateSecondaryTableData(rowKey, entity, metaModel, metadata); if (!relationalValues.isEmpty()) { results.add(new EnhanceEntity(entity, rowKey, relationalValues)); } else { results.add(entity); } } else if (entity != null) { results.add(entity); } }
private NodeState getChildNodeState(EntityMetadata metadata, Object childObj) { Object childId = PropertyAccessorHelper.getId(childObj, metadata); String childNodeId = ObjectGraphUtils.getNodeId(childId, childObj.getClass()); Node childNodeInCache = persistenceCache.getMainCache().getNodeFromCache(childNodeId, pd); return childNodeInCache != null ? childNodeInCache.getCurrentNodeState() : new TransientState(); }
@Override public <E> void setProxyOwners(EntityMetadata entityMetadata, E e) { if (e != null && e.getClass().getAnnotation(Entity.class) != null && entityMetadata != null) { for (Relation r : entityMetadata.getRelations()) { if (r != null) { Object entityId = PropertyAccessorHelper.getId(e, entityMetadata); if (r.isUnary()) { String entityName = entityMetadata.getEntityClazz().getName() + "_" + entityId + "#" + r.getProperty().getName(); KunderaProxy kunderaProxy = getProxy(entityName); if (kunderaProxy != null) { kunderaProxy.getKunderaLazyInitializer().setOwner(e); } } } } } } }
private E setRelationEntities(Object enhanceEntity, Client client, EntityMetadata m) { // Enhance entities can contain or may not contain relation. // if it contain a relation means it is a child // if it does not then it means it is a parent. E result = null; if (enhanceEntity != null) { if (!(enhanceEntity instanceof EnhanceEntity)) { enhanceEntity = new EnhanceEntity(enhanceEntity, PropertyAccessorHelper.getId(enhanceEntity, m), null); } EnhanceEntity ee = (EnhanceEntity) enhanceEntity; result = (E) client.getReader().recursivelyFindEntities(ee.getEntity(), ee.getRelations(), m, persistenceDelegator, false, new HashMap<Object, Object>()); } return result; }
/** * * @param enhanceEntity * @param client * @param m * @return */ private E setRelationEntities(Object enhanceEntity, Client client, EntityMetadata m) { // Enhance entities can contain or may not contain relation. // if it contain a relation means it is a child // if it does not then it means it is a parent. E result = null; if (enhanceEntity != null) { if (!(enhanceEntity instanceof EnhanceEntity)) { enhanceEntity = new EnhanceEntity(enhanceEntity, PropertyAccessorHelper.getId(enhanceEntity, m), null); } EnhanceEntity ee = (EnhanceEntity) enhanceEntity; result = (E) client.getReader().recursivelyFindEntities(ee.getEntity(), ee.getRelations(), m, persistenceDelegator, false, new HashMap<Object, Object>()); } return result; }
/** * * @param enhanceEntity * @param client * @param m * @return */ private E setRelationEntities(Object enhanceEntity, Client client, EntityMetadata m) { // Enhance entities can contain or may not contain relation. // if it contain a relation means it is a child // if it does not then it means it is a parent. E result = null; if (enhanceEntity != null) { if (!(enhanceEntity instanceof EnhanceEntity)) { enhanceEntity = new EnhanceEntity(enhanceEntity, PropertyAccessorHelper.getId(enhanceEntity, m), null); } EnhanceEntity ee = (EnhanceEntity) enhanceEntity; result = (E) client.getReader().recursivelyFindEntities(ee.getEntity(), ee.getRelations(), m, persistenceDelegator, false, new HashMap<Object, Object>()); } return result; } }
/** * Sets the relation entities. * * @param enhanceEntity * the enhance entity * @param client * the client * @param m * the m * @return the e */ private E setRelationEntities(Object enhanceEntity, Client client, EntityMetadata m) { E result = null; if (enhanceEntity != null) { if (!(enhanceEntity instanceof EnhanceEntity)) { enhanceEntity = new EnhanceEntity(enhanceEntity, PropertyAccessorHelper.getId(enhanceEntity, m), null); } EnhanceEntity ee = (EnhanceEntity) enhanceEntity; result = (E) client.getReader().recursivelyFindEntities(ee.getEntity(), ee.getRelations(), m, persistenceDelegator, false, new HashMap<Object, Object>()); } return result; }
@Override public JsonDocument getDocumentFromEntity(EntityMetadata entityMetadata, Object entity, KunderaMetadata kunderaMetadata) { MetamodelImpl metaModel = (MetamodelImpl) kunderaMetadata.getApplicationMetadata() .getMetamodel(entityMetadata.getPersistenceUnit()); Class entityClazz = entityMetadata.getEntityClazz(); EntityType entityType = metaModel.entity(entityClazz); Set<Attribute> attributes = entityType.getAttributes(); Iterator<Attribute> iterator = attributes.iterator(); JsonObject obj = iterateAndPopulateJsonObject(entity, iterator, entityMetadata.getTableName()); Object id = PropertyAccessorHelper.getId(entity, entityMetadata); return JsonDocument.create(entityMetadata.getTableName() + CouchbaseConstants.ID_SEPARATOR + id.toString(), obj); }
/** * Method to handle * * @param node */ public void persist(Node node) { Object entity = node.getData(); Object id = node.getEntityId(); EntityMetadata metadata = KunderaMetadataManager.getEntityMetadata(kunderaMetadata, node.getDataClass()); isUpdate = node.isUpdate(); List<RelationHolder> relationHolders = getRelationHolders(node); onPersist(metadata, entity, id, relationHolders); id = PropertyAccessorHelper.getId(entity, metadata); node.setEntityId(id); indexNode(node, metadata); }