Package com.impetus.kundera.metadata.model

Examples of com.impetus.kundera.metadata.model.EntityMetadata


  @SuppressWarnings("rawtypes")
  private static void loadDynamicClassIntoKundera(String persistenceUnit, Class<?> clazz, Map config) {
    // Add the metadata by hand to all the right places
    // 0] Create the metadata:
    MetadataBuilder kunderaBuilder = new MetadataBuilder(persistenceUnit, (String) config.get("kundera.nodes"), config);
    EntityMetadata myMeta = kunderaBuilder.buildEntityMetadata(clazz);
    // 1] class -> persitence unit:
    Map<String, List<String>> clazzHack = new HashMap<String, List<String>>();
    clazzHack.put(clazz.getName(), Arrays.asList(persistenceUnit));
    KunderaMetadata.INSTANCE.getApplicationMetadata().setClazzToPuMap(clazzHack);
    // 2] PU -> class:
View Full Code Here


    public void refresh()
    {
        getCurrentNodeState().handleRefresh(this);

        // Fix for handling PostLoad event on refresh.
        EntityMetadata metadata = KunderaMetadataManager.getEntityMetadata(pd.getKunderaMetadata(), this.getDataClass());
        onPostEvent(metadata, EntityEvent.FIND);

    }
View Full Code Here

    public void find()
    {
        getCurrentNodeState().handleFind(this);

        // Fix for handling PostLoad event on find.
        EntityMetadata metadata = KunderaMetadataManager.getEntityMetadata(pd.getKunderaMetadata(), this.getDataClass());
        onPostEvent(metadata, EntityEvent.FIND);
    }
View Full Code Here

        this.entityId = id;
    }

    public void handlePreEvent()
    {
        EntityMetadata metadata = KunderaMetadataManager.getEntityMetadata(pd.getKunderaMetadata(), this.getDataClass());

        if (isUpdate)
        {
            onPreEvent(metadata, EntityEvent.UPDATE);
        }
View Full Code Here

        }
    }

    public void handlePostEvent()
    {
        EntityMetadata metadata = KunderaMetadataManager.getEntityMetadata(pd.getKunderaMetadata(), this.getDataClass());

        if (isUpdate)
        {
            onPostEvent(metadata, EntityEvent.UPDATE);
        }
View Full Code Here

    {
        if (entity == null)
        {
            return null;
        }
        EntityMetadata entityMetadata = KunderaMetadataManager.getEntityMetadata(pd.getKunderaMetadata(),
                entity.getClass());

        // entity metadata could be null.
        if (entityMetadata == null)
        {
            throw new IllegalArgumentException(
                    "Entity object is invalid, operation failed. Please check previous log message for details");
        }

        Object id = PropertyAccessorHelper.getId(entity, entityMetadata);
        // Generate and set Id if @GeneratedValue present.
        if (((Field) entityMetadata.getIdAttribute().getJavaMember()).isAnnotationPresent(GeneratedValue.class))
        {
            if (!isIdSet(id))
            {
                id = idGenerator.generateAndSetId(entity, entityMetadata, pd, pd.getKunderaMetadata());
            }
        }

        if (!validator.isValidEntityObject(entity, entityMetadata))
        {
            throw new IllegalArgumentException(
                    "Entity object is invalid, operation failed. Please check previous log message for details");
        }

        // id = PropertyAccessorHelper.getId(entity, entityMetadata);

        String nodeId = ObjectGraphUtils.getNodeId(id, entity.getClass());
        Node node = graph.getNode(nodeId);

        // If this node is already there in graph (may happen for bidirectional
        // relationship, do nothing and return null)
        if (node != null)
        {
            if (node.isGraphCompleted())
            {
                return node;
            }
            return null;
        }

        // Construct this Node first, if one not already there in Persistence
        // Cache
        Node nodeInPersistenceCache = persistenceCache.getMainCache().getNodeFromCache(nodeId, pd);

        // Make a deep copy of entity data

        if (nodeInPersistenceCache == null)
        {
            node = new Node(nodeId, entity, initialNodeState, persistenceCache, id, pd);
        }
        else
        {
            node = nodeInPersistenceCache;
            node.setPersistenceCache(persistenceCache);

            // Determine whether this node is dirty based on comparison between
            // Node data and entity data
            // If dirty, set the entity data into node and mark it as dirty
            if (!DeepEquals.deepEquals(node.getData(), entity))
            {
                node.setDirty(true);
            }
            else if (node.isProcessed())
            {
                node.setDirty(false);
            }

            node.setData(entity);

            // If node is NOT in managed state, its data needs to be
            // replaced with the one provided in entity object
        }

        // Put this node into object graph
        graph.addNode(nodeId, node);

        // Iterate over relations and construct children nodes
        for (Relation relation : entityMetadata.getRelations())
        {
            if (relation != null)
            {
                // Child Object set in this entity
                Object childObject = PropertyAccessorHelper.getObject(entity, relation.getProperty());

                if (childObject != null && !ProxyHelper.isProxy(childObject))
                {
                    EntityMetadata metadata = KunderaMetadataManager.getEntityMetadata(pd.getKunderaMetadata(),
                            PropertyAccessorHelper.getGenericClass(relation.getProperty()));

                    if (metadata != null && relation.isJoinedByPrimaryKey())
                    {
                        PropertyAccessorHelper.setId(childObject, metadata,
View Full Code Here

                }

                NodeLink nodeLink = new NodeLink(node.getNodeId(), childNode.getNodeId());
                nodeLink.setMultiplicity(relation.getType());

                EntityMetadata metadata = KunderaMetadataManager.getEntityMetadata(pd.getKunderaMetadata(),
                        node.getDataClass());
                nodeLink.setLinkProperties(getLinkProperties(metadata, relation));

                nodeLink.addLinkProperty(LinkProperty.LINK_VALUE, relObject);

                // Add Parent node to this child
                childNode.addParentNode(nodeLink, node);

                // Add child node to this node
                node.addChildNode(nodeLink, childNode);
            }
        }
        else
        {
            // Construct child node for this child object via recursive call
            Node childNode = getNode(childObject, graph, initialNodeState);

            if (childNode != null)
            {
                // Construct Node Link for this relationship
                NodeLink nodeLink = new NodeLink(node.getNodeId(), childNode.getNodeId());
                nodeLink.setMultiplicity(relation.getType());

                EntityMetadata metadata = KunderaMetadataManager.getEntityMetadata(pd.getKunderaMetadata(),
                        node.getDataClass());
                nodeLink.setLinkProperties(getLinkProperties(metadata, relation));

                // Add Parent node to this child
                childNode.addParentNode(nodeLink, node);
View Full Code Here

     * @return head node
     */
    <E> Node generate(E entity, PersistenceDelegator delegator, PersistenceCache pc, NodeState state)
    {

        EntityMetadata entityMetadata = KunderaMetadataManager.getEntityMetadata(delegator.getKunderaMetadata(),
                entity.getClass());

        if (!new NullOrInvalidEntityRule<E>(entityMetadata).validate(entity))
        {
            Object entityId = onPreChecks(entity, delegator);
View Full Code Here

    private <E> Node traverseNode(E entity, PersistenceDelegator delegator, PersistenceCache pc, Object entityId,
            Node node)
    {
        if (node != null && !traversedNodes.contains(node))
        {
            EntityMetadata entityMetadata = KunderaMetadataManager.getEntityMetadata(delegator.getKunderaMetadata(),
                    entity.getClass());

            // parse relations

            for (Relation relation : entityMetadata.getRelations())
            {
                if (relation != null)
                {
                    Object childObject = PropertyAccessorHelper.getObject(entity, relation.getProperty());

                    // if child object is valid and not a proxy
                    if (childObject != null && !ProxyHelper.isProxyOrCollection(childObject))
                    {
                        // check for join by primary key, collection and map
                        EntityMetadata childMetadata = KunderaMetadataManager.getEntityMetadata(
                                delegator.getKunderaMetadata(),
                                PropertyAccessorHelper.getGenericClass(relation.getProperty()));

                        // set id,in case joined by primary key.
                        childObject = onIfSharedByPK(relation, childObject, childMetadata, entityId);
View Full Code Here

    {
        // pre validation.
        // check if entity is Null or with Invalid meta data!
        Object id = null;

        EntityMetadata entityMetadata = KunderaMetadataManager.getEntityMetadata(delegator.getKunderaMetadata(),
                entity.getClass());
        id = PropertyAccessorHelper.getId(entity, entityMetadata);

        // set id, in case of auto generation and still not set.

        if (ObjectGraphUtils.onAutoGenerateId((Field) entityMetadata.getIdAttribute().getJavaMember(), id))
        {
            id = new IdGenerator().generateAndSetId(entity, entityMetadata, delegator, delegator.getKunderaMetadata());
        }

        // check if id is set or not.
View Full Code Here

TOP

Related Classes of com.impetus.kundera.metadata.model.EntityMetadata

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.