All Downloads are FREE. Search and download functionalities are using the official Maven repository.

br.eti.clairton.repository.Join Maven / Gradle / Ivy

package br.eti.clairton.repository;

import java.io.Serializable;

import javax.persistence.criteria.From;
import javax.persistence.criteria.JoinType;
import javax.persistence.metamodel.CollectionAttribute;
import javax.persistence.metamodel.ListAttribute;
import javax.persistence.metamodel.MapAttribute;
import javax.persistence.metamodel.PluralAttribute;
import javax.persistence.metamodel.SetAttribute;

/**
 * Trata um relacionamento no Plural.
 * 
 * @author Clairton Rodrigo Heinzen [email protected]
 */
interface Join extends Serializable {
    public static final Join SET = new Join() {
        private static final long serialVersionUID = 1L;
        
        /**
         * {@inheritDoc}
         */
        @Override
        public  javax.persistence.criteria.Join join(final From from, final JoinType joinType, final PluralAttribute attribute) {
            @SuppressWarnings("unchecked")
            final SetAttribute attributes = ( SetAttribute ) attribute;
            @SuppressWarnings("unchecked")
            final javax.persistence.criteria.Join join = ( javax.persistence.criteria.Join ) from.join(
attributes, joinType);
            return join;
        }
    };
    
    public static final Join LIST = new Join() {
        private static final long serialVersionUID = 1L;
        
        /**
         * {@inheritDoc}
         */
        @Override
        public  javax.persistence.criteria.Join join(final From from, final JoinType joinType, final PluralAttribute attribute) {
            @SuppressWarnings("unchecked")
            final ListAttribute attributes = ( ListAttribute ) attribute;
            @SuppressWarnings("unchecked")
            final javax.persistence.criteria.Join join = ( javax.persistence.criteria.Join ) from.join(attributes, joinType);
            return join;
        }
    };
    
    public static final Join COLLECTION = new Join() {
        private static final long serialVersionUID = 1L;
        
        /**
         * {@inheritDoc}
         */
        @Override
        public  javax.persistence.criteria.Join join(final From from, final JoinType joinType, final PluralAttribute attribute) {
            @SuppressWarnings("unchecked")
            final CollectionAttribute attributes = ( CollectionAttribute ) attribute;
            @SuppressWarnings("unchecked")
            final javax.persistence.criteria.Join join = ( javax.persistence.criteria.Join ) from.join(attributes, joinType);
            return join;
        }
    };
    
    public static final Join MAP = new Join() {
        private static final long serialVersionUID = 1L;
        
        /**
         * {@inheritDoc}
         */
        @Override
        public  javax.persistence.criteria.Join join(final From from, final JoinType joinType, final PluralAttribute attribute) {
            @SuppressWarnings("rawtypes")
            final MapAttribute attributes = ( MapAttribute ) attribute;
            @SuppressWarnings("unchecked")
            final javax.persistence.criteria.Join join = ( javax.persistence.criteria.Join ) from.join(attributes, joinType);
            return join;
        }
    };
    
    /**
     * Cria o join.
     * 
     * @param from
     *            {@link From}
     * @param joinType
     *            {@link JoinType}
     * @param attribute
     *            {@link PluralAttribute}
     * @return {@link Join}
     */
     javax.persistence.criteria.Join join(From from, JoinType joinType, PluralAttribute attribute);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy