Java 类javax.persistence.metamodel.Type 实例源码

项目:jpasecurity    文件:TypeDefinition.java   
public Attribute<?, ?> filter() {
    Type<?> type = forModel(metamodel).filter(rootType);
    Attribute<?, ?> result = null;
    for (int i = 1; i < pathElements.length; i++) {
        if (!(type instanceof ManagedType)) {
            throw new PersistenceException("Cannot navigate through simple property "
                    + pathElements[i] + " of type " + type.getJavaType());
        }
        result = ((ManagedType<?>)type).getAttribute(pathElements[i]);
        if (result.isCollection()) {
            type = ((PluralAttribute<?, ?, ?>)result).getElementType();
        } else {
            type = ((SingularAttribute<?, ?>)result).getType();
        }
    }
    return result;
}
项目:hibernate-semantic-query    文件:Helper.java   
public static Type toType(Bindable bindable) {
    switch ( bindable.getBindableType() ) {
        case ENTITY_TYPE: {
            return (EntityType) bindable;
        }
        case SINGULAR_ATTRIBUTE: {
            return ( (SingularAttribute) bindable ).getType();
        }
        case PLURAL_ATTRIBUTE: {
            return ( (PluralAttribute) bindable ).getElementType();
        }
        default: {
            throw new ParsingException( "Unexpected Bindable type : " + bindable );
        }
    }
}
项目:hibernate-semantic-query    文件:AbstractIdentifiableType.java   
@Override
public Type<?> getIdType() {
    if ( getHierarchy().getIdentifierDescriptor() instanceof IdentifierDescriptorSingleAttribute ) {
        final SingularAttribute idAttribute = ( (IdentifierDescriptorSingleAttribute) getHierarchy().getIdentifierDescriptor() )
                .getIdAttribute();
        if ( idAttribute instanceof SingularAttributeBasic ) {
            return ( (SingularAttributeBasic) idAttribute ).getOrmType();
        }
        else if ( idAttribute instanceof SingularAttributeEmbedded ) {
            return ( (SingularAttributeEmbedded) idAttribute ).getEmbeddablePersister();
        }
        else {
            throw new IllegalStateException( "Expected BASIC or EMBEDDED attribute type for identifier" );
        }
    }
    return null;
}
项目:olingo-odata2    文件:JPAEdmPropertyTest.java   
@Override
public Type<java.lang.String> getElementType() {
  return new Type<java.lang.String>() {

    @Override
    public Class<java.lang.String> getJavaType() {
      return java.lang.String.class;
    }

    @Override
    public javax.persistence.metamodel.Type.PersistenceType getPersistenceType() {
      return null;
    }

  };
}
项目:jpasecurity    文件:CriteriaEntityFilter.java   
private Path getSelectedPath(int index, javax.persistence.criteria.Path<?> path) {
    if (path.getParentPath() != null) {
        Type<?> type = getType(path.getModel());
        if (type.getPersistenceType() == PersistenceType.BASIC
            || type.getPersistenceType() == PersistenceType.EMBEDDABLE) {
            return getSelectedPath(index, path.getParentPath());
        }
        return getSelectedPath(index, path.getParentPath()).append(getName(path.getModel()));
    }
    if (path.getAlias() == null) {
        path.alias("alias" + index);
    }
    return new Path(path.getAlias());
}
项目:jpasecurity    文件:CriteriaEntityFilter.java   
private Class<?> getSelectedType(javax.persistence.criteria.Path<?> path) {
    Type<?> type = getType(path.getModel());
    if (type.getPersistenceType() == PersistenceType.BASIC
        || type.getPersistenceType() == PersistenceType.EMBEDDABLE) {
        return getSelectedType(path.getParentPath());
    } else {
        return type.getJavaType();
    }
}
项目:query-utils    文件:QueryUtils.java   
@SuppressWarnings("unchecked")
public static <R> Type<R> getElementType(Attribute<?, ?> attr) {
    if (attr instanceof SingularAttribute) {
        return ((SingularAttribute<?,R>) attr).getType();
    } else {
        return ((PluralAttribute<?,?,R>)attr).getElementType();
    }
}
项目:Joiner    文件:ReflectionUtils.java   
public static Set<Class> getSubclasses(Class<?> parent, EntityManager entityManager) {
    return entityManager.getMetamodel().getEntities().stream()
            .filter(entityType -> parent != entityType.getJavaType() && parent.isAssignableFrom(entityType.getJavaType()))
            .map(Type::getJavaType)
            .collect(Collectors.toCollection(HashSet::new));
}
项目:jpasecurity    文件:EntityFilterTest.java   
@Before
public void initialize() throws ParseException, NoSuchMethodException {
    Metamodel metamodel = mock(Metamodel.class);
    SecurePersistenceUnitUtil persistenceUnitUtil = mock(SecurePersistenceUnitUtil.class);
    accessManager = mock(DefaultAccessManager.class);
    SecurityContext securityContext = mock(SecurityContext.class);
    EntityType entityType = mock(EntityType.class);
    SingularAttribute idAttribute = mock(SingularAttribute.class);
    SingularAttribute nameAttribute = mock(SingularAttribute.class);
    SingularAttribute parentAttribute = mock(SingularAttribute.class);
    PluralAttribute childrenAttribute = mock(PluralAttribute.class);
    MapAttribute relatedAttribute = mock(MapAttribute.class);
    Type integerType = mock(Type.class);
    when(metamodel.getEntities()).thenReturn(Collections.<EntityType<?>>singleton(entityType));
    when(metamodel.managedType(MethodAccessTestBean.class)).thenReturn(entityType);
    when(metamodel.entity(MethodAccessTestBean.class)).thenReturn(entityType);
    when(accessManager.getContext()).thenReturn(securityContext);
    when(securityContext.getAliases()).thenReturn(Collections.singleton(CURRENT_PRINCIPAL));
    when(securityContext.getAliasValue(CURRENT_PRINCIPAL)).thenReturn(NAME);
    when(entityType.getName()).thenReturn(MethodAccessTestBean.class.getSimpleName());
    when(entityType.getJavaType()).thenReturn((Class)MethodAccessTestBean.class);
    when(entityType.getAttributes()).thenReturn(new HashSet(Arrays.asList(
            idAttribute, nameAttribute, parentAttribute, childrenAttribute, relatedAttribute)));
    when(entityType.getAttribute("id")).thenReturn(idAttribute);
    when(entityType.getAttribute("name")).thenReturn(nameAttribute);
    when(entityType.getAttribute("parent")).thenReturn(parentAttribute);
    when(entityType.getAttribute("children")).thenReturn(childrenAttribute);
    when(entityType.getAttribute("related")).thenReturn(relatedAttribute);
    when(idAttribute.getName()).thenReturn("id");
    when(idAttribute.isCollection()).thenReturn(false);
    when(idAttribute.getType()).thenReturn(integerType);
    when(idAttribute.getPersistentAttributeType()).thenReturn(PersistentAttributeType.BASIC);
    when(idAttribute.getJavaType()).thenReturn(Integer.TYPE);
    when(idAttribute.getJavaMember()).thenReturn(MethodAccessTestBean.class.getDeclaredMethod("getId"));
    when(nameAttribute.getName()).thenReturn("name");
    when(nameAttribute.isCollection()).thenReturn(false);
    when(nameAttribute.getType()).thenReturn(integerType);
    when(nameAttribute.getPersistentAttributeType()).thenReturn(PersistentAttributeType.BASIC);
    when(nameAttribute.getJavaType()).thenReturn(String.class);
    when(nameAttribute.getJavaMember()).thenReturn(MethodAccessTestBean.class.getDeclaredMethod("getName"));
    when(parentAttribute.getName()).thenReturn("parent");
    when(parentAttribute.isCollection()).thenReturn(false);
    when(parentAttribute.getType()).thenReturn(entityType);
    when(parentAttribute.getPersistentAttributeType()).thenReturn(PersistentAttributeType.MANY_TO_ONE);
    when(parentAttribute.getJavaType()).thenReturn(MethodAccessTestBean.class);
    when(parentAttribute.getJavaMember()).thenReturn(MethodAccessTestBean.class.getDeclaredMethod("getParent"));
    when(childrenAttribute.getName()).thenReturn("children");
    when(childrenAttribute.isCollection()).thenReturn(true);
    when(childrenAttribute.getElementType()).thenReturn(entityType);
    when(childrenAttribute.getJavaMember())
        .thenReturn(MethodAccessTestBean.class.getDeclaredMethod("getChildren"));
    when(relatedAttribute.getName()).thenReturn("related");
    when(relatedAttribute.isCollection()).thenReturn(true);
    when(relatedAttribute.getKeyJavaType()).thenReturn(MethodAccessTestBean.class);
    when(relatedAttribute.getBindableJavaType()).thenReturn(MethodAccessTestBean.class);
    when(relatedAttribute.getElementType()).thenReturn(entityType);
    when(relatedAttribute.getJavaMember())
        .thenReturn(MethodAccessTestBean.class.getDeclaredMethod("getRelated"));

    entityFilter = new EntityFilter(metamodel, persistenceUnitUtil, initializeAccessRules(metamodel));
    DefaultAccessManager.Instance.register(accessManager);
}
项目:hibernate-semantic-query    文件:CollectionPersisterImpl.java   
@Override
@SuppressWarnings("unchecked")
public Type<E> getElementType() {
    return getElementDescriptor();
}
项目:hibernate-semantic-query    文件:SingularAttributeEmbedded.java   
@Override
public Type getType() {
    return getEmbeddablePersister();
}
项目:hibernate-semantic-query    文件:SingularAttributeBasic.java   
@Override
public Type getType() {
    return getOrmType();
}
项目:olingo-odata2    文件:JPAEntityTypeMock.java   
@Override
public Type<?> getIdType() {
  return null;
}
项目:olingo-odata2    文件:JPAEntityTypeMock.java   
@Override
public javax.persistence.metamodel.Type.PersistenceType getPersistenceType() {
  return null;
}
项目:olingo-odata2    文件:JPASingularAttributeMock.java   
@Override
public Type<T> getType() {
  return null;
}
项目:olingo-odata2    文件:JPAPluralAttributeMock.java   
@Override
public Type<String> getElementType() {
  // TODO Auto-generated method stub
  return null;
}
项目:olingo-odata2    文件:JPAEdmNavigationPropertyTest.java   
@Override
public Type<java.lang.String> getElementType() {
  return new ElementType();
}
项目:olingo-odata2    文件:JPAEdmNavigationPropertyTest.java   
@Override
public javax.persistence.metamodel.Type.PersistenceType getPersistenceType() {
  return PersistenceType.BASIC;
}
项目:stdlib    文件:QEntity.java   
/**
 * Parse an @Entity
 *
 * @param entityFactory
 * @param metadata
 * @param sessionFactory
 */
void parse(QEntityFactory entityFactory, EntityType<?> metadata, SessionFactoryImplementor sessionFactory)
{
    this.metamodelEntity = metadata;
    this.name = metadata.getName();

    for (Attribute<?, ?> attribute : metadata.getAttributes())
    {
        parseFields(entityFactory, sessionFactory, null, attribute);
    }

    // Parse top-level properties

    // Add identifier property
    {
        if (!metadata.hasSingleIdAttribute())
            throw new IllegalArgumentException("@IdClass Entity not supported! " + metadata.getJavaType());

        Type idType = metadata.getIdType();

        switch (idType.getPersistenceType())
        {
            case BASIC:
                break; // No action necessary, will be processed like a normal field
            case EMBEDDABLE:
            {
                EmbeddableType<?> emb = (EmbeddableType<?>) idType;

                parseEmbeddable(entityFactory, sessionFactory, "id", emb);
                break;
            }
            default:
                throw new IllegalArgumentException("Cannot handle id type: " + idType.getPersistenceType() + ": " + idType);
        }
    }

    // Add links to descendants
    {
        final List<QEntity> descendants = entityFactory.getSubclasses(clazz);

        if (!descendants.isEmpty())
            this.descendants = descendants;
    }


    // Figure out the id method/field
    final String idPropertyName = getIdPropertyName();

    if (idPropertyName != null)
        this.idProperty = new PropertyWrapper(clazz, idPropertyName);
}
项目:query-utils    文件:RelationSetAttribute.java   
@SuppressWarnings("unchecked")
public <E2 extends IEntity<?>> RelationSetAttribute(SetAttribute<? super E, ? super E2> attribute, MetaJpaConstructor<? super E2, R, ?> constructor) {
    super((A)(Object)attribute, CollectionType.SET, (Type<R>)attribute.getElementType());
    this.constructor = (MetaJpaConstructor<? extends IEntity<?>, R, ?>) constructor;
}
项目:query-utils    文件:AttributeProxy.java   
@Override
public Type<Y> getType() {
    return proxyTarget == null ? null :  proxyTarget.getType();
}
项目:query-utils    文件:AttributeProxy.java   
PluralAttributeProxy(A proxyTarget, CollectionType ct, Type<Y> et) {
    super(proxyTarget);
    this.ct = ct;
    this.et = et;
}
项目:query-utils    文件:AttributeProxy.java   
@Override
public Type<Y> getElementType() {
    return et;
}
项目:query-utils    文件:RelationCollectionAttribute.java   
@SuppressWarnings("unchecked")
public <E2 extends IEntity<?>> RelationCollectionAttribute(CollectionAttribute<? super E, ? super E2> attribute, MetaJpaConstructor<? super E2, R, ?> constructor) {
    super((A)(Object)attribute, CollectionType.COLLECTION, (Type<R>)attribute.getElementType());
    this.constructor = (MetaJpaConstructor<? extends IEntity<?>, R, ?>) constructor;
}
项目:query-utils    文件:RelationListAttribute.java   
@SuppressWarnings("unchecked")
public <E2 extends IEntity<?>> RelationListAttribute(ListAttribute<? super E, ? super E2> attribute, MetaJpaConstructor<? super E2, R, ?> constructor) {
    super((A)(Object)attribute, CollectionType.LIST, (Type<R>)attribute.getElementType());
    this.constructor = (MetaJpaConstructor<? extends IEntity<?>, R, ?>) constructor;
}
项目:cloud-odata-java    文件:JPAEntityTypeMock.java   
@Override
public Type<?> getIdType() {
  return null;
}
项目:cloud-odata-java    文件:JPAEntityTypeMock.java   
@Override
public javax.persistence.metamodel.Type.PersistenceType getPersistenceType() {
  return null;
}
项目:cloud-odata-java    文件:JPASingularAttributeMock.java   
@Override
public Type<T> getType() {
  return null;
}
项目:cloud-odata-java    文件:JPAPluralAttributeMock.java   
@Override
public Type<String> getElementType() {
  // TODO Auto-generated method stub
  return null;
}
项目:cloud-odata-java    文件:JPAEdmNavigationPropertyTest.java   
@Override
public Type<java.lang.String> getElementType() {
  return new ElementType();
}
项目:cloud-odata-java    文件:JPAEdmNavigationPropertyTest.java   
@Override
public javax.persistence.metamodel.Type.PersistenceType getPersistenceType() {
  return PersistenceType.BASIC;
}